From 241c99b61bf3cc56abf345a81befdc06a0de9a53 Mon Sep 17 00:00:00 2001 From: Shahar Cohen Date: Wed, 10 Jul 2024 10:08:59 -0500 Subject: [PATCH] update docs --- .env.example | 1 + .github/workflows/publish_py.yaml | 37 + .gitignore | 20 + .manifest.json | 2612 +++++++++++++++++ LICENSE | 21 + README.md | 1858 ++++++++++++ .../models/AccountBusinessAddressResource.md | 13 + documentation/models/AccountDeviceUpdate.md | 14 + .../AccountDirectoryProfileImageResource.md | 10 + documentation/models/AccountHistoryPaging.md | 12 + .../models/AccountHistoryPublicRecord.md | 19 + .../AccountHistoryRecordDetailsParameters.md | 10 + .../AccountHistoryRecordPublicDetails.md | 9 + .../AccountHistoryRecordPublicInitiator.md | 14 + .../models/AccountHistoryRecordTarget.md | 28 + .../AccountHistorySearchPublicRequest.md | 36 + .../AccountHistorySearchPublicResponse.md | 10 + documentation/models/AccountInfo.md | 31 + documentation/models/AccountLimits.md | 17 + .../AccountLockSettingRecordResponse.md | 15 + .../models/AccountLockedSettingResponse.md | 10 + documentation/models/AccountOperatorInfo.md | 15 + .../models/AccountPhoneNumberInfo.md | 27 + .../models/AccountPhoneNumberList.md | 10 + documentation/models/AccountPhoneNumbers.md | 12 + documentation/models/AccountPresenceInfo.md | 12 + .../models/AccountRegionalSettings.md | 28 + documentation/models/AccountResource.md | 12 + documentation/models/AccountServiceInfo.md | 19 + documentation/models/AccountStatusInfo.md | 26 + .../models/ActionAdaptiveCardInfo.md | 18 + documentation/models/ActionCardBody.md | 20 + documentation/models/ActiveCallInfo.md | 47 + .../models/ActivePermissionResource.md | 25 + documentation/models/AdaptiveCardAction.md | 23 + .../models/AdaptiveCardColumnInfo.md | 11 + .../models/AdaptiveCardColumnItemInfo.md | 16 + documentation/models/AdaptiveCardCreator.md | 9 + documentation/models/AdaptiveCardInfo.md | 49 + .../models/AdaptiveCardInfoRequest.md | 18 + .../models/AdaptiveCardInfoRequestItem.md | 24 + documentation/models/AdaptiveCardRequest.md | 46 + .../models/AdaptiveCardSelectAction.md | 21 + documentation/models/AdaptiveCardShortInfo.md | 24 + .../models/AddBlockedAllowedPhoneNumber.md | 13 + .../models/AddDeviceToInventoryRequest.md | 29 + .../models/AddDeviceToInventoryResponse.md | 18 + documentation/models/AddInviteeRequest.md | 16 + documentation/models/AddPartyRequest.md | 10 + .../models/AddPhoneNumberRequestItem.md | 23 + .../models/AddPhoneNumbersRequest.md | 9 + .../models/AddPhoneNumbersResponse.md | 9 + .../models/AddPhoneNumbersResponseItem.md | 12 + documentation/models/AddPhoneNumbersTask.md | 11 + documentation/models/AdditionalCqInfo.md | 28 + documentation/models/AddonInfo.md | 11 + .../AddressBookBulkContactAddressInfo.md | 13 + .../models/AddressBookBulkContactResource.md | 35 + .../models/AddressBookBulkUploadRequest.md | 9 + .../models/AddressBookBulkUploadResource.md | 10 + .../models/AddressBookBulkUploadResponse.md | 29 + .../models/AddressBookBulkUploadTaskResult.md | 10 + documentation/models/AddressBookSync.md | 13 + documentation/models/AddressStatus.md | 13 + documentation/models/AdvancedTimeSettings.md | 12 + documentation/models/AggregationInterval.md | 14 + documentation/models/AggregationRequest.md | 12 + documentation/models/AggregationResponse.md | 10 + .../models/AggregationResponseData.md | 12 + .../models/AggregationResponseOptions.md | 12 + .../AggregationResponseOptionsCounters.md | 143 + .../AggregationResponseOptionsTimers.md | 121 + .../models/AggregationResponseRecord.md | 12 + documentation/models/AggregationType.md | 15 + documentation/models/AllCalls.md | 12 + documentation/models/AnswerTarget.md | 9 + documentation/models/AnsweringRuleInfo.md | 67 + .../models/AnsweringRuleQueryRequest.md | 9 + documentation/models/ApiErrorWithParameter.md | 12 + documentation/models/ApiVersionInfo.md | 12 + documentation/models/ApiVersionsList.md | 12 + documentation/models/ArchiveInfo.md | 10 + documentation/models/AsrInput.md | 52 + ...MultipleDevicesAutomaticLocationUpdates.md | 10 + .../models/AssignPhoneNumberRequest.md | 33 + documentation/models/AssignedCountryInfo.md | 14 + documentation/models/AssignedRoleResource.md | 14 + documentation/models/AssignedRolesResource.md | 10 + documentation/models/AssigneeStatus.md | 10 + documentation/models/AssignmentStatus.md | 10 + documentation/models/AssistantResource.md | 10 + documentation/models/AssistantsResource.md | 9 + documentation/models/AssistedUserResource.md | 10 + documentation/models/AssistedUsersResource.md | 9 + documentation/models/AudioPromptInfo.md | 12 + .../models/AuthProfileCheckResource.md | 11 + documentation/models/AuthProfileResource.md | 10 + documentation/models/AuthorizationType.md | 10 + documentation/models/AuthorizeRequest.md | 33 + documentation/models/AuthorizeResponseType.md | 9 + documentation/models/AutoShared.md | 12 + .../AutomaticLocationUpdatesDeviceInfo.md | 16 + .../AutomaticLocationUpdatesDeviceType.md | 13 + .../AutomaticLocationUpdatesModelFeature.md | 12 + .../AutomaticLocationUpdatesModelInfo.md | 13 + .../AutomaticLocationUpdatesPhoneLine.md | 10 + .../AutomaticLocationUpdatesPhoneLineType.md | 14 + ...AutomaticLocationUpdatesPhoneNumberInfo.md | 10 + .../AutomaticLocationUpdatesSiteInfo.md | 16 + .../AutomaticLocationUpdatesTaskInfo.md | 40 + .../AutomaticLocationUpdatesUserInfo.md | 26 + .../AutomaticLocationUpdatesUserList.md | 12 + .../models/AutomaticRecordingResource.md | 15 + documentation/models/BackgroundImage.md | 25 + .../models/BasicExtensionInfoResource.md | 11 + documentation/models/BatchListResponse.md | 12 + .../models/BatchProvisionErrorItem.md | 10 + .../models/BatchProvisionUsersRequest.md | 11 + .../models/BatchProvisionUsersRequestItem.md | 63 + .../models/BatchProvisionUsersResponse.md | 11 + .../models/BatchProvisionUsersSuccessItem.md | 28 + documentation/models/BillingInfo.md | 12 + documentation/models/BillingPlanInfo.md | 43 + .../models/BillingStatementCharges.md | 12 + documentation/models/BillingStatementFees.md | 11 + documentation/models/BillingStatementInfo.md | 19 + .../models/BlockedAllowedPhoneNumberInfo.md | 15 + .../models/BlockedAllowedPhoneNumbersList.md | 14 + .../models/BlockedCallerGreetingInfo.md | 10 + .../models/BlockedNumberStatusEnum.md | 12 + documentation/models/BrandInfo.md | 13 + documentation/models/BridgeDiscovery.md | 9 + documentation/models/BridgeJoinPreferences.md | 35 + .../models/BridgeJoinPstnPreferences.md | 10 + documentation/models/BridgePins.md | 10 + documentation/models/BridgePinsWithAliases.md | 11 + documentation/models/BridgePinsWithoutPstn.md | 9 + documentation/models/BridgePreferences.md | 59 + documentation/models/BridgePstnPins.md | 10 + documentation/models/BridgeRequestSecurity.md | 13 + documentation/models/BridgeResponse.md | 35 + .../models/BridgeResponseSecurity.md | 13 + .../models/BridgeResponseSecurityPassword.md | 11 + documentation/models/BridgeTargetRequest.md | 10 + .../BulkAccountCallRecordingsResource.md | 11 + .../models/BulkAddDevicesErrorItem.md | 10 + documentation/models/BulkAddDevicesItem.md | 54 + documentation/models/BulkAddDevicesRequest.md | 9 + .../models/BulkAddDevicesResponse.md | 11 + .../models/BulkAddDevicesSuccessItem.md | 12 + documentation/models/BulkAssignItem.md | 11 + .../models/BulkDeleteUsersRequest.md | 10 + .../models/BulkDeleteUsersResponse.md | 19 + .../models/BulkOperationExtensionReference.md | 11 + .../models/BulkRoleAssignResource.md | 13 + documentation/models/BulkTaskInfo.md | 23 + .../models/BulkUpdateInviteesRequest.md | 26 + .../models/BulkUpdateInviteesResponse.md | 11 + documentation/models/BusinessAddressInfo.md | 15 + .../models/BusinessSiteCollectionRequest.md | 9 + .../models/BusinessSiteCollectionResource.md | 10 + documentation/models/BusinessSiteResource.md | 11 + documentation/models/CaiAsyncApiResponse.md | 9 + documentation/models/CaiErrorCodeResponse.md | 28 + documentation/models/CaiErrorResponse.md | 9 + documentation/models/CallAction.md | 15 + documentation/models/CallActionEnum.md | 45 + documentation/models/CallDirectionEnum.md | 12 + documentation/models/CallDurationFilter.md | 12 + documentation/models/CallFilters.md | 24 + documentation/models/CallInfoCq.md | 12 + documentation/models/CallInternalTypeEnum.md | 23 + documentation/models/CallLegTypeEnum.md | 50 + documentation/models/CallLogDelegateInfo.md | 12 + documentation/models/CallLogFromParty.md | 15 + documentation/models/CallLogRecord.md | 55 + .../models/CallLogRecordDeviceInfo.md | 10 + documentation/models/CallLogRecordLegInfo.md | 51 + documentation/models/CallLogRecordMessage.md | 13 + documentation/models/CallLogRecordingInfo.md | 25 + documentation/models/CallLogResponse.md | 12 + documentation/models/CallLogSyncInfo.md | 11 + documentation/models/CallLogSyncResponse.md | 11 + documentation/models/CallLogSyncTypeEnum.md | 12 + documentation/models/CallLogToParty.md | 15 + .../models/CallMonitoringBulkAssign.md | 11 + .../models/CallMonitoringExtensionInfo.md | 19 + documentation/models/CallMonitoringGroup.md | 11 + .../models/CallMonitoringGroupMemberInfo.md | 26 + .../models/CallMonitoringGroupMemberList.md | 12 + documentation/models/CallMonitoringGroups.md | 12 + documentation/models/CallParty.md | 67 + documentation/models/CallPartyFlip.md | 9 + documentation/models/CallPartyReply.md | 10 + .../models/CallQueueBulkAssignResource.md | 10 + documentation/models/CallQueueDetails.md | 64 + .../models/CallQueueExtensionInfo.md | 16 + documentation/models/CallQueueId.md | 11 + documentation/models/CallQueueIdResource.md | 9 + documentation/models/CallQueueInfo.md | 36 + documentation/models/CallQueueInfoRequest.md | 16 + documentation/models/CallQueueMember.md | 14 + documentation/models/CallQueueMemberId.md | 11 + documentation/models/CallQueueMemberInfo.md | 11 + .../models/CallQueueMemberPresence.md | 11 + documentation/models/CallQueueMembers.md | 12 + .../models/CallQueueOverflowSettings.md | 10 + ...allQueueOverflowSettingsRequestResource.md | 10 + documentation/models/CallQueuePresence.md | 9 + documentation/models/CallQueueResource.md | 10 + .../models/CallQueueServiceLevelSettings.md | 14 + .../models/CallQueueUpdateMemberPresence.md | 10 + .../models/CallQueueUpdatePresence.md | 9 + documentation/models/CallQueues.md | 12 + documentation/models/CallRecording.md | 10 + .../models/CallRecordingCustomGreeting.md | 21 + .../models/CallRecordingCustomGreetingData.md | 12 + .../CallRecordingCustomGreetingLanguage.md | 14 + .../models/CallRecordingCustomGreetings.md | 11 + .../models/CallRecordingExtensionInfo.md | 12 + .../models/CallRecordingExtensionResource.md | 25 + .../models/CallRecordingExtensions.md | 12 + documentation/models/CallRecordingIds.md | 9 + .../models/CallRecordingSettingsResource.md | 11 + documentation/models/CallRecordingUpdate.md | 9 + documentation/models/CallResponse.md | 12 + documentation/models/CallResult.md | 14 + documentation/models/CallResultEnum.md | 53 + documentation/models/CallResultReasonEnum.md | 88 + documentation/models/CallSegmentFilter.md | 10 + .../models/CallSegmentLengthFilter.md | 12 + documentation/models/CallSegmentOptions.md | 19 + documentation/models/CallSession.md | 9 + documentation/models/CallSessionObject.md | 15 + documentation/models/CallStatusInfo.md | 72 + documentation/models/CallTransportEnum.md | 13 + documentation/models/CallType.md | 14 + documentation/models/CallTypeEnum.md | 12 + documentation/models/CalledNumberInfo.md | 9 + .../models/CallerBlockingSettings.md | 48 + .../models/CallerBlockingSettingsUpdate.md | 48 + documentation/models/CallerIdByDevice.md | 12 + documentation/models/CallerIdByDeviceInfo.md | 10 + .../models/CallerIdByDeviceInfoRequest.md | 10 + .../models/CallerIdByDeviceRequest.md | 12 + documentation/models/CallerIdByFeature.md | 28 + documentation/models/CallerIdByFeatureInfo.md | 10 + .../models/CallerIdByFeatureInfoRequest.md | 10 + .../models/CallerIdByFeatureRequest.md | 28 + documentation/models/CallerIdDeviceInfo.md | 11 + .../models/CallerIdDeviceInfoRequest.md | 9 + documentation/models/CallerIdPhoneInfo.md | 11 + .../models/CallerIdPhoneInfoRequest.md | 9 + documentation/models/CallersInfo.md | 10 + documentation/models/CallersInfoRequest.md | 10 + documentation/models/CallsByActions.md | 12 + .../models/CallsByActionsBreakdown.md | 17 + documentation/models/CallsByCompanyHours.md | 12 + .../models/CallsByCompanyHoursBreakdown.md | 12 + documentation/models/CallsByDirection.md | 12 + .../models/CallsByDirectionBreakdown.md | 12 + documentation/models/CallsByOrigin.md | 12 + .../models/CallsByOriginBreakdown.md | 12 + documentation/models/CallsByQueueSla.md | 12 + .../models/CallsByQueueSlaBreakdown.md | 12 + documentation/models/CallsByResponse.md | 12 + .../models/CallsByResponseBreakdown.md | 14 + documentation/models/CallsByResult.md | 12 + .../models/CallsByResultBreakdown.md | 16 + documentation/models/CallsBySegments.md | 12 + .../models/CallsBySegmentsBreakdown.md | 19 + documentation/models/CallsByType.md | 12 + documentation/models/CallsByTypeBreakdown.md | 16 + documentation/models/CallsCounters.md | 21 + documentation/models/CallsTimers.md | 19 + documentation/models/CloudRecording.md | 19 + documentation/models/CloudRecordings.md | 12 + .../models/CodeChallengeMethodEnum.md | 13 + .../CommonEmergencyLocationAddressInfo.md | 3 + .../CommonEmergencyLocationAddressInfoAu.md | 25 + ...mmonEmergencyLocationAddressInfoDefault.md | 21 + .../CommonEmergencyLocationAddressInfoFr.md | 24 + .../models/CommonEmergencyLocationResource.md | 21 + .../CompanyAnsweringRuleCalledNumberInfo.md | 10 + ...anyAnsweringRuleCalledNumberInfoRequest.md | 10 + .../CompanyAnsweringRuleCallersInfoRequest.md | 10 + .../CompanyAnsweringRuleExtensionInfo.md | 9 + ...ompanyAnsweringRuleExtensionInfoRequest.md | 11 + .../models/CompanyAnsweringRuleInfo.md | 43 + .../models/CompanyAnsweringRuleList.md | 12 + .../models/CompanyAnsweringRuleRequest.md | 41 + .../CompanyAnsweringRuleScheduleInfo.md | 24 + ...CompanyAnsweringRuleScheduleInfoRequest.md | 24 + ...CompanyAnsweringRuleTimeIntervalRequest.md | 10 + .../models/CompanyAnsweringRuleUpdate.md | 41 + ...yAnsweringRuleWeeklyScheduleInfoRequest.md | 17 + documentation/models/CompanyBusinessHours.md | 10 + .../CompanyBusinessHoursScheduleInfo.md | 11 + .../CompanyBusinessHoursUpdateRequest.md | 9 + documentation/models/CompanyHoursOptions.md | 10 + .../models/CompanyPhoneNumberInfo.md | 75 + .../models/ConferencePhoneNumberInfo.md | 10 + documentation/models/ConferenceType.md | 10 + documentation/models/ContactAddressInfo.md | 13 + .../models/ContactAddressInfoResource.md | 13 + .../models/ContactBusinessAddressInfo.md | 16 + documentation/models/ContactCenterProvider.md | 13 + documentation/models/ContactInfo.md | 22 + .../models/ContactInfoCreationRequest.md | 21 + .../models/ContactInfoUpdateRequest.md | 19 + documentation/models/ContactList.md | 13 + documentation/models/ContactResource.md | 73 + documentation/models/ContactSubTypeEnum.md | 15 + documentation/models/ContentAttachment.md | 17 + documentation/models/ContentBodyFormatted.md | 12 + .../models/ContentBodyInputFormat.md | 12 + documentation/models/ContentComponents.md | 19 + documentation/models/ContentCreatedFrom.md | 16 + documentation/models/ContentDisposition.md | 10 + documentation/models/ContentList.md | 10 + documentation/models/ContentModel.md | 40 + documentation/models/ContentSourceType.md | 24 + documentation/models/ContentStatus.md | 16 + documentation/models/ContentType.md | 43 + .../models/ContractedCountryListResponse.md | 18 + documentation/models/ConversationInfo.md | 12 + .../models/ConversationalInsightsUnit.md | 24 + .../ConversationalInsightsUnitValues.md | 19 + documentation/models/CostCenterInfo.md | 12 + documentation/models/CostCenterResource.md | 11 + documentation/models/CountryInfoBasicModel.md | 11 + .../models/CountryInfoDictionaryModel.md | 19 + .../models/CountryInfoMinimalModel.md | 10 + documentation/models/CountryInfoShortModel.md | 13 + .../models/CountryListDictionaryModel.md | 12 + ...CreateAnsweringRuleForwardingNumberInfo.md | 31 + .../models/CreateAnsweringRuleRequest.md | 58 + documentation/models/CreateBridgeRequest.md | 32 + .../CreateCallMonitoringGroupRequest.md | 9 + documentation/models/CreateContentRequest.md | 25 + .../models/CreateConversationRequest.md | 18 + .../models/CreateDataExportTaskRequest.md | 12 + .../models/CreateFaxMessageRequest.md | 15 + .../CreateForwardingNumberDeviceInfo.md | 12 + .../models/CreateForwardingNumberRequest.md | 27 + .../models/CreateGlipFileNewRequest.md | 9 + .../CreateInternalTextMessageRequest.md | 12 + .../models/CreateIvrPromptRequest.md | 10 + .../models/CreateMessageStoreReportRequest.md | 11 + documentation/models/CreateMmsMessage.md | 13 + .../models/CreateMultipleSwitchesRequest.md | 9 + .../models/CreateMultipleSwitchesResponse.md | 11 + .../CreateMultipleWirelessPointsRequest.md | 9 + .../CreateMultipleWirelessPointsResponse.md | 9 + documentation/models/CreateNetworkRequest.md | 12 + .../models/CreateSipRegistrationRequest.md | 25 + .../models/CreateSipRegistrationResponse.md | 14 + documentation/models/CreateSiteRequest.md | 16 + documentation/models/CreateSmsMessage.md | 12 + .../models/CreateSubscriptionRequest.md | 11 + documentation/models/CreateSwitchInfo.md | 14 + .../CreateUserEmergencyLocationRequest.md | 12 + .../CreateUserMeetingProfileImageRequest.md | 9 + .../models/CreateUserProfileImageRequest.md | 9 + .../CreateWebhookSubscriptionRequest.md | 11 + documentation/models/CreateWirelessPoint.md | 13 + documentation/models/CreatorInfo.md | 13 + documentation/models/CurrencyInfo.md | 15 + documentation/models/CurrencyResource.md | 13 + .../models/CustomAnsweringRuleInfo.md | 66 + .../models/CustomCompanyGreetingInfo.md | 40 + .../CustomCompanyGreetingLanguageInfo.md | 14 + .../models/CustomFieldCreateRequest.md | 20 + documentation/models/CustomFieldInfo.md | 11 + documentation/models/CustomFieldList.md | 9 + documentation/models/CustomFieldModel.md | 21 + documentation/models/CustomFieldResource.md | 11 + .../models/CustomFieldUpdateRequest.md | 9 + .../models/CustomGreetingAnsweringRuleInfo.md | 12 + .../models/CustomGreetingInfoRequest.md | 9 + .../models/CustomUserGreetingInfo.md | 44 + documentation/models/DataExportTask.md | 30 + .../models/DataExportTaskContactInfo.md | 12 + documentation/models/DataExportTaskList.md | 11 + documentation/models/DayOfWeek.md | 15 + documentation/models/DefaultUserRole.md | 11 + .../models/DefaultUserRoleRequest.md | 9 + documentation/models/Delegate.md | 12 + documentation/models/DelegationTypeEnum.md | 12 + documentation/models/DelegatorsListResult.md | 9 + .../DeleteDeviceFromInventoryRequest.md | 17 + .../DeleteDeviceFromInventoryResponse.md | 19 + .../models/DeleteForwardingNumbersRequest.md | 9 + .../models/DeleteMessageByFilterType.md | 14 + .../models/DeletePhoneNumbersRequest.md | 9 + .../models/DeletePhoneNumbersRequestItem.md | 12 + .../models/DeletePhoneNumbersResponse.md | 9 + .../models/DeletePhoneNumbersResponseItem.md | 12 + .../models/DepartmentBulkAssignResource.md | 12 + documentation/models/DepartmentInfo.md | 14 + documentation/models/DepartmentMemberList.md | 15 + documentation/models/DetailedCallInfo.md | 14 + documentation/models/DeviceAddonInfo.md | 11 + documentation/models/DeviceDefinition.md | 52 + documentation/models/DeviceEmergencyInfo.md | 70 + .../models/DeviceEmergencyLocationInfo.md | 13 + ...DeviceEmergencyServiceAddressResourceAu.md | 27 + ...eEmergencyServiceAddressResourceDefault.md | 24 + ...DeviceEmergencyServiceAddressResourceFr.md | 26 + documentation/models/DeviceExtensionInfo.md | 11 + documentation/models/DeviceFeatureEnum.md | 15 + documentation/models/DeviceInfoRequest.md | 14 + documentation/models/DeviceModelInfo.md | 25 + .../DevicePhoneLinesEmergencyAddressInfo.md | 10 + documentation/models/DevicePhoneLinesInfo.md | 25 + .../models/DevicePhoneNumberCountryInfo.md | 13 + documentation/models/DevicePhoneNumberInfo.md | 55 + .../models/DeviceProvisioningExtensionInfo.md | 14 + documentation/models/DeviceResource.md | 58 + documentation/models/DeviceSiteInfo.md | 12 + .../models/DeviceUpdateExtensionInfo.md | 11 + .../models/DeviceUpdatePhoneLinesInfo.md | 11 + documentation/models/DialInNumberResource.md | 12 + documentation/models/DiarizeInput.md | 49 + documentation/models/DiarizeSegment.md | 12 + documentation/models/DiarizedObject.md | 10 + .../models/DictionaryGreetingInfo.md | 51 + .../models/DictionaryGreetingList.md | 12 + documentation/models/DirectGrouping.md | 12 + documentation/models/Direction.md | 10 + documentation/models/DirectoryResource.md | 10 + documentation/models/DirectoryRoleResource.md | 12 + documentation/models/DisabledFilterInfo.md | 11 + documentation/models/DisplayModesEnum.md | 14 + .../models/EditPagingGroupRequest.md | 12 + documentation/models/EmailRecipientInfo.md | 39 + documentation/models/EmergencyAddress.md | 23 + .../EmergencyAddressAutoUpdateSiteInfo.md | 10 + ...ddressAutoUpdateUsersBulkAssignResource.md | 10 + documentation/models/EmergencyAddressInfo.md | 124 + .../models/EmergencyAddressStatus.md | 11 + documentation/models/EmergencyAddressType.md | 10 + documentation/models/EmergencyLocationInfo.md | 13 + .../EmergencyLocationRequestResource.md | 51 + .../EmergencyLocationResponseResource.md | 20 + .../models/EmergencyLocationUsageStatus.md | 10 + .../models/EmergencyLocationsPaging.md | 14 + .../models/EmergencyLocationsResource.md | 10 + .../models/EmergencyServiceAddressResource.md | 61 + .../EmergencyServiceAddressResourceRequest.md | 21 + documentation/models/EmotionSegment.md | 25 + documentation/models/EnrollmentInput.md | 29 + documentation/models/EnrollmentPatchInput.md | 28 + documentation/models/EnrollmentStatus.md | 26 + documentation/models/EnumeratedPagingModel.md | 14 + documentation/models/ErlLocationInfo.md | 13 + documentation/models/ErrorEntity.md | 12 + documentation/models/EventRecurrenceInfo.md | 41 + documentation/models/EveryoneCanControl.md | 12 + documentation/models/EveryoneTeamInfo.md | 24 + documentation/models/ExportTaskResultInfo.md | 11 + .../models/ExtensionBulkUpdateInfo.md | 63 + .../models/ExtensionBulkUpdateRequest.md | 11 + .../models/ExtensionBulkUpdateTaskResource.md | 29 + .../models/ExtensionBulkUpdateTaskResult.md | 12 + .../models/ExtensionCallQueuePresence.md | 10 + .../models/ExtensionCallQueuePresenceList.md | 9 + .../ExtensionCallQueueUpdatePresence.md | 10 + .../ExtensionCallQueueUpdatePresenceList.md | 9 + documentation/models/ExtensionCallerIdInfo.md | 13 + .../models/ExtensionCallerIdInfoRequest.md | 13 + .../models/ExtensionCountryInfoRequest.md | 9 + .../models/ExtensionCreationRequest.md | 59 + .../models/ExtensionCreationResponse.md | 65 + .../models/ExtensionCurrencyInfoRequest.md | 9 + documentation/models/ExtensionFilters.md | 12 + .../ExtensionFormattingLocaleInfoRequest.md | 9 + .../ExtensionGreetingLanguageInfoRequest.md | 9 + documentation/models/ExtensionInfo.md | 16 + documentation/models/ExtensionInfoCallLog.md | 12 + documentation/models/ExtensionInfoGrants.md | 39 + documentation/models/ExtensionInfoIntId.md | 14 + .../models/ExtensionLanguageInfoRequest.md | 9 + documentation/models/ExtensionPermissions.md | 13 + .../models/ExtensionRegionalSettingRequest.md | 26 + .../models/ExtensionServiceFeatureInfo.md | 80 + .../models/ExtensionShortInfoResource.md | 11 + documentation/models/ExtensionStatus.md | 15 + documentation/models/ExtensionStatusInfo.md | 27 + .../models/ExtensionTimezoneInfoRequest.md | 9 + documentation/models/ExtensionType.md | 24 + .../models/ExtensionUpdateRequest.md | 76 + .../models/ExtensionUpdateShortResult.md | 22 + .../ExtensionWithRolesCollectionResource.md | 12 + .../models/ExtensionWithRolesResource.md | 11 + .../models/ExternalIntegrationResource.md | 14 + documentation/models/FavoriteCollection.md | 9 + documentation/models/FavoriteContactList.md | 10 + .../models/FavoriteContactResource.md | 12 + documentation/models/FaxCoverPageInfo.md | 10 + documentation/models/FaxErrorCodeEnum.md | 42 + documentation/models/FaxRequestTo.md | 10 + documentation/models/FaxResolutionEnum.md | 14 + documentation/models/FaxResponse.md | 35 + documentation/models/FaxResponseTo.md | 13 + documentation/models/FeatureInfo.md | 12 + documentation/models/FeatureList.md | 9 + .../models/FederatedAccountResource.md | 14 + documentation/models/FederationResource.md | 14 + documentation/models/FederationType.md | 12 + documentation/models/FederationTypes.md | 13 + documentation/models/FixedAnswerModel.md | 10 + documentation/models/FixedOrderAgents.md | 10 + .../models/FixedOrderAgentsExtensionInfo.md | 12 + documentation/models/FormattingLocaleInfo.md | 13 + documentation/models/ForwardAllCallsReason.md | 22 + .../models/ForwardAllCompanyCallsInfo.md | 13 + .../models/ForwardAllCompanyCallsRequest.md | 9 + .../models/ForwardCallPartyResponse.md | 67 + documentation/models/ForwardTarget.md | 14 + documentation/models/ForwardingInfo.md | 29 + .../models/ForwardingInfoCreateRuleRequest.md | 28 + documentation/models/ForwardingNumberId.md | 9 + documentation/models/ForwardingNumberInfo.md | 56 + ...wardingNumberInfoRulesCreateRuleRequest.md | 30 + .../models/ForwardingNumberResource.md | 39 + .../models/ForwardingRuleCreateRequest.md | 12 + documentation/models/ForwardingRuleInfo.md | 12 + .../models/GetAccountInfoResponse.md | 37 + .../models/GetCallRecordingResponse.md | 12 + .../models/GetConferencingInfoResponse.md | 17 + .../models/GetCountryInfoNumberParser.md | 13 + .../models/GetExtensionAccountInfo.md | 12 + .../models/GetExtensionDevicesResponse.md | 12 + .../GetExtensionEmergencyLocationsOrderBy.md | 20 + ...etExtensionForwardingNumberListResponse.md | 12 + .../models/GetExtensionGrantListResponse.md | 12 + .../models/GetExtensionInfoResponse.md | 97 + .../models/GetExtensionListInfoResponse.md | 85 + .../models/GetExtensionListResponse.md | 12 + .../GetExtensionPhoneNumbersResponse.md | 12 + .../GetInternalTextMessageInfoResponse.md | 39 + .../GetLocationDeletionMultiResponse.md | 30 + .../models/GetLocationListResponse.md | 12 + .../models/GetMessageInfoMultiResponse.md | 11 + .../models/GetMessageInfoResponse.md | 66 + documentation/models/GetMessageList.md | 12 + .../models/GetMessageSyncResponse.md | 11 + .../models/GetPresenceExtensionInfo.md | 13 + documentation/models/GetPresenceInfo.md | 104 + .../models/GetRingOutStatusResponse.md | 11 + .../models/GetSmsMessageInfoResponse.md | 41 + documentation/models/GetStateInfoResponse.md | 13 + documentation/models/GetStateListResponse.md | 12 + .../models/GetTimezoneInfoResponse.md | 13 + .../models/GetTimezoneListResponse.md | 12 + documentation/models/GetTokenRequest.md | 503 ++++ .../models/GetUserBusinessHoursResponse.md | 10 + .../models/GlipDataExportNavigationInfo.md | 12 + .../models/GlipDataExportNavigationInfoUri.md | 9 + .../models/GlipDataExportPagingInfo.md | 14 + .../models/GlobalDialInCountryResponse.md | 12 + documentation/models/GrantInfo.md | 20 + documentation/models/GreetingInfo.md | 11 + documentation/models/GreetingLanguageInfo.md | 13 + documentation/models/GreetingResource.md | 33 + documentation/models/GreetingTypeEnum.md | 26 + .../GreetingsCreateCompanyGreetingRequest1.md | 27 + .../GreetingsCreateCompanyGreetingRequest2.md | 27 + ...eetingsCreateCustomUserGreetingRequest1.md | 28 + ...eetingsCreateCustomUserGreetingRequest2.md | 28 + documentation/models/GroupResource.md | 10 + documentation/models/GroupingByMembers.md | 12 + documentation/models/GroupingOptions.md | 19 + documentation/models/HoldCallPartyRequest.md | 22 + documentation/models/HorizontalAlignment.md | 15 + documentation/models/Host.md | 13 + documentation/models/HostInfoRequest.md | 12 + documentation/models/HostModel.md | 11 + documentation/models/HoursInterval.md | 10 + documentation/models/IdentifyInput.md | 47 + documentation/models/IdentitiesList.md | 10 + documentation/models/IdentityModel.md | 44 + documentation/models/IdentityType.md | 22 + documentation/models/IgnoreRequestBody.md | 9 + documentation/models/ImageFillMode.md | 16 + documentation/models/InboundFaxesInfo.md | 14 + documentation/models/InboundTextsInfo.md | 12 + documentation/models/InsightsEnum.md | 19 + documentation/models/InteractionInput.md | 51 + documentation/models/InteractionObject.md | 11 + documentation/models/Interval.md | 12 + documentation/models/InviteeListResource.md | 10 + documentation/models/InviteeModel.md | 31 + documentation/models/InviteeResource.md | 21 + .../models/IvrCallHandlingActionEnum.md | 18 + documentation/models/IvrMenuActionsInfo.md | 32 + documentation/models/IvrMenuExtensionInfo.md | 13 + documentation/models/IvrMenuInfo.md | 15 + documentation/models/IvrMenuList.md | 10 + documentation/models/IvrMenuListInfo.md | 12 + documentation/models/IvrMenuPromptInfo.md | 25 + documentation/models/IvrMenuSiteInfo.md | 12 + documentation/models/IvrPrompts.md | 12 + documentation/models/KeyInfo.md | 12 + documentation/models/LanguageInfo.md | 20 + documentation/models/LanguageList.md | 12 + documentation/models/LastModifiedByInfo.md | 11 + documentation/models/LinePooling.md | 11 + documentation/models/LinePoolingEnum.md | 17 + documentation/models/ListA2PBatchesStatus.md | 12 + documentation/models/ListA2PsmsView.md | 10 + .../models/ListAccountPhoneNumbersStatus.md | 12 + .../ListAccountPhoneNumbersUsageType.md | 21 + .../models/ListAnsweringRulesType.md | 9 + .../models/ListAnsweringRulesView.md | 10 + .../ListAutomaticLocationUpdatesUsersType.md | 10 + .../ListCallRecordingCustomGreetingsType.md | 11 + .../models/ListChatNotesNewStatus.md | 10 + .../models/ListChatTasksNewStatus.md | 11 + .../models/ListCompanyAnsweringRuleInfo.md | 27 + .../models/ListDataExportTasksNewStatus.md | 13 + .../ListDevicesAutomaticLocationUpdates.md | 12 + .../models/ListDirectoryEntriesType.md | 18 + .../models/ListEmergencyLocationsOrderBy.md | 18 + documentation/models/ListEnrolledSpeakers.md | 10 + .../models/ListExtensionDevicesType.md | 17 + .../models/ListExtensionPhoneNumbersStatus.md | 12 + .../ListExtensionPhoneNumbersUsageType.md | 18 + documentation/models/ListExtensionsStatus.md | 12 + documentation/models/ListExtensionsType.md | 26 + .../models/ListFaxCoverPagesResponse.md | 12 + documentation/models/ListGlipChatsNewType.md | 13 + documentation/models/ListLocationsOrderBy.md | 10 + .../models/ListMeetingRecordingsResponse.md | 11 + .../models/ListRecentChatsNewType.md | 13 + .../models/ListStandardGreetingsType.md | 16 + .../models/ListStandardGreetingsUsageType.md | 16 + documentation/models/ListUserTemplatesType.md | 10 + documentation/models/ListVideoMeetingsType.md | 12 + .../models/LocationDeletionErrorInfo.md | 11 + documentation/models/LocationDeletionInfo.md | 27 + documentation/models/LocationInfo.md | 14 + documentation/models/LocationOwnerInfo.md | 11 + documentation/models/LocationStateInfo.md | 12 + ...ationUpdatesEmergencyAddressInfoRequest.md | 24 + documentation/models/LockedByInfo.md | 11 + .../MakeCallOutCallerInfoRequestFrom.md | 11 + .../models/MakeCallOutCallerInfoRequestTo.md | 12 + documentation/models/MakeCallOutRequest.md | 11 + .../models/MakeRingOutCallerIdInfo.md | 11 + .../MakeRingOutCallerInfoRequestFrom.md | 14 + .../models/MakeRingOutCallerInfoRequestTo.md | 12 + .../models/MakeRingOutCountryInfo.md | 12 + documentation/models/MakeRingOutRequest.md | 13 + documentation/models/Meeting.md | 58 + .../models/MeetingExternalUserInfoResource.md | 18 + documentation/models/MeetingFrequency.md | 13 + documentation/models/MeetingInfo.md | 12 + documentation/models/MeetingLinks.md | 12 + documentation/models/MeetingOccurrenceInfo.md | 12 + documentation/models/MeetingPage.md | 12 + documentation/models/MeetingRecordingInfo.md | 35 + documentation/models/MeetingRecordings.md | 10 + .../models/MeetingRecordingsNavigationInfo.md | 12 + .../MeetingRecordingsNavigationInfoUri.md | 11 + .../models/MeetingRecordingsPagingInfo.md | 14 + .../models/MeetingRequestResource.md | 57 + .../models/MeetingResponseResource.md | 63 + .../models/MeetingScheduleResource.md | 13 + .../models/MeetingServiceInfoRequest.md | 9 + .../models/MeetingServiceInfoResource.md | 13 + .../models/MeetingUserSettingsResponse.md | 12 + .../models/MeetingsCountryResource.md | 16 + .../models/MeetingsNavigationInfo.md | 12 + .../models/MeetingsNavigationInfoUri.md | 9 + documentation/models/MeetingsPagingInfo.md | 14 + documentation/models/MeetingsResource.md | 12 + .../models/MeetingsTimezoneResource.md | 12 + .../models/MembersGroupingOptions.md | 14 + documentation/models/MessageAttachmentInfo.md | 17 + .../models/MessageAttachmentInfoIntId.md | 29 + .../models/MessageAttachmentTypeEnum.md | 16 + .../models/MessageAvailabilityEnum.md | 16 + .../models/MessageBatchCreateRequest.md | 17 + documentation/models/MessageBatchResponse.md | 33 + documentation/models/MessageCreateRequest.md | 12 + .../models/MessageDetailsResponse.md | 22 + documentation/models/MessageDirectionEnum.md | 14 + .../models/MessageListMessageResponse.md | 22 + documentation/models/MessageListResponse.md | 12 + documentation/models/MessagePriorityEnum.md | 12 + documentation/models/MessageReadStatusEnum.md | 12 + documentation/models/MessageStatusCounts.md | 13 + documentation/models/MessageStatusEnum.md | 21 + .../models/MessageStatusesResponse.md | 15 + .../models/MessageStoreCallerInfoRequest.md | 12 + .../MessageStoreCallerInfoResponseFrom.md | 15 + .../MessageStoreCallerInfoResponseTo.md | 17 + .../models/MessageStoreConfiguration.md | 9 + documentation/models/MessageStoreReport.md | 34 + .../models/MessageStoreReportArchive.md | 9 + .../models/MessageTemplateRequest.md | 11 + .../models/MessageTemplateResponse.md | 13 + .../models/MessageTemplatesListResponse.md | 9 + documentation/models/MessageTypeEnum.md | 14 + .../models/MessagingNavigationInfo.md | 14 + .../models/MessagingNavigationInfoUri.md | 11 + documentation/models/MessagingPagingInfo.md | 16 + .../models/MissedCallExtensionInfo.md | 12 + .../MissedCallExtensionInfoExternalNumber.md | 11 + documentation/models/MissedCallInfo.md | 24 + documentation/models/MissedCallsInfo.md | 12 + documentation/models/MobileDeliveryMode.md | 33 + .../models/MobileDeliveryModeRequest.md | 22 + documentation/models/ModelInfo.md | 16 + .../ModifyAccountBusinessAddressRequest.md | 12 + documentation/models/MonthlyWeek.md | 15 + documentation/models/NetworkInfo.md | 14 + documentation/models/NetworksList.md | 12 + .../models/NonEnumeratedPagingModel.md | 13 + .../models/NotificationDeliveryMode.md | 5 + .../models/NotificationDeliveryModeRequest.md | 5 + documentation/models/NotificationSettings.md | 19 + .../NotificationSettingsUpdateRequest.md | 17 + documentation/models/OnDemandResource.md | 10 + documentation/models/OperatorInfo.md | 15 + .../models/OptOutBulkAssignFailedEntry.md | 12 + .../models/OptOutBulkAssignRequest.md | 13 + .../models/OptOutBulkAssignResponse.md | 34 + documentation/models/OptOutListResponse.md | 12 + documentation/models/OptOutResponse.md | 36 + documentation/models/OrderBy.md | 38 + documentation/models/Origin.md | 10 + documentation/models/OriginInfo.md | 28 + documentation/models/OutboundFaxesInfo.md | 12 + documentation/models/OutboundProxyInfo.md | 11 + documentation/models/OwnerInfo.md | 12 + documentation/models/PackageInfo.md | 10 + documentation/models/PageNavigationModel.md | 14 + documentation/models/PageNavigationUri.md | 9 + .../models/PagerCallerInfoRequest.md | 12 + documentation/models/Paging.md | 12 + documentation/models/PagingDeviceInfo.md | 11 + .../models/PagingGroupExtensionInfo.md | 12 + .../models/PagingOnlyGroupDevices.md | 12 + documentation/models/PagingOnlyGroupUsers.md | 12 + documentation/models/PagingResource.md | 15 + documentation/models/PagingSchema.md | 11 + documentation/models/ParamsInfo.md | 10 + documentation/models/ParkInfo.md | 11 + .../models/ParsePhoneNumberRequest.md | 9 + .../models/ParsePhoneNumberResponse.md | 11 + documentation/models/Participant.md | 17 + .../models/ParticipantExtendedModel.md | 35 + .../models/ParticipantListResource.md | 10 + .../models/ParticipantReducedModel.md | 27 + documentation/models/PartyInfo.md | 12 + documentation/models/PartySuperviseRequest.md | 34 + .../models/PartySuperviseResponse.md | 29 + documentation/models/PartyUpdateInfo.md | 12 + documentation/models/PartyUpdateRequest.md | 9 + .../models/PatchMessageBulkRequest.md | 10 + documentation/models/PatchMessageRequest.md | 12 + documentation/models/PeerInfo.md | 13 + .../PermissionCategoryCollectionResource.md | 12 + .../models/PermissionCategoryIdResource.md | 10 + .../models/PermissionCategoryResource.md | 12 + .../models/PermissionCollectionResource.md | 12 + documentation/models/PermissionIdResource.md | 26 + documentation/models/PermissionInfoAdmin.md | 11 + documentation/models/PermissionInfoInt.md | 11 + documentation/models/PermissionResource.md | 29 + .../models/PermissionsCapabilities.md | 13 + .../models/PersonalContactRequest.md | 36 + .../models/PersonalContactResource.md | 53 + documentation/models/PhoneLineTypeEnum.md | 15 + documentation/models/PhoneLinesInfo.md | 12 + .../models/PhoneNumberCountryInfo.md | 13 + ...DefinitionDirectNumberWithReservationId.md | 12 + .../models/PhoneNumberDefinitionNumberId.md | 11 + .../PhoneNumberDefinitionPreferredAreaCode.md | 11 + .../models/PhoneNumberDefinitionTollType.md | 11 + .../models/PhoneNumberInfoConferencing.md | 14 + documentation/models/PhoneNumberInfoIntId.md | 61 + .../models/PhoneNumberInfoNumberParser.md | 21 + documentation/models/PhoneNumberResource.md | 28 + documentation/models/PhoneNumberStatus.md | 15 + documentation/models/PhoneNumberTollType.md | 12 + documentation/models/PhoneNumberType.md | 13 + documentation/models/PhoneNumberUsageType.md | 26 + documentation/models/PicMessageTypeEnum.md | 14 + documentation/models/PickupTarget.md | 9 + documentation/models/PlatformPaymentType.md | 17 + documentation/models/PostalAddress.md | 16 + documentation/models/PresenceCallQueueInfo.md | 14 + documentation/models/PresenceInfoRequest.md | 50 + documentation/models/PresenceInfoResponse.md | 93 + .../models/PresenceNavigationInfo.md | 14 + .../models/PresenceNavigationInfoUri.md | 11 + documentation/models/PresencePagingInfo.md | 16 + documentation/models/PresetInfo.md | 11 + documentation/models/PrimaryCqInfo.md | 28 + documentation/models/PrivateIpRangeInfo.md | 16 + .../models/PrivateIpRangeInfoRequest.md | 15 + documentation/models/ProfileImageInfo.md | 15 + documentation/models/ProfileImageInfoUri.md | 9 + documentation/models/PromptInfo.md | 13 + documentation/models/PromptLanguageInfo.md | 14 + documentation/models/PronouncedNameInfo.md | 27 + .../models/PronouncedNamePromptInfo.md | 22 + documentation/models/ProvisioningSiteInfo.md | 16 + documentation/models/PubNubDeliveryMode.md | 36 + .../models/PubNubDeliveryModeRequest.md | 20 + documentation/models/PublicIpRangeInfo.md | 12 + .../models/PublicMeetingInvitationResponse.md | 9 + documentation/models/PunctuateInput.md | 9 + documentation/models/PunctuateOutput.md | 9 + documentation/models/QueueInfo.md | 93 + documentation/models/QueueOpportunities.md | 12 + .../QueueOpportunitiesAggregationType.md | 11 + .../models/QueueShortInfoResource.md | 10 + documentation/models/QueueSlaOptions.md | 10 + documentation/models/RangesInfo.md | 10 + documentation/models/RcwDomainUserModel.md | 22 + documentation/models/RcwInviteeTypeEnum.md | 12 + documentation/models/RcwLinkedUserModel.md | 11 + documentation/models/RcwPagingForwardModel.md | 12 + documentation/models/RcwPagingModel.md | 12 + documentation/models/RcwResourceIdModel.md | 9 + documentation/models/RcwRoleEnum.md | 15 + documentation/models/RcwSessionStatusModel.md | 13 + .../models/ReadA2PsmsOptOutsStatus.md | 11 + .../models/ReadCompanyCallLogView.md | 10 + documentation/models/ReasonInfo.md | 29 + documentation/models/RecipientInfo.md | 12 + documentation/models/Recording.md | 48 + .../models/RecordingAdminExtendedItemModel.md | 18 + .../models/RecordingAdminListResource.md | 10 + documentation/models/RecordingAdminModel.md | 17 + .../models/RecordingDownloadModel.md | 22 + .../models/RecordingExtendedModel.md | 17 + documentation/models/RecordingInfo.md | 10 + .../models/RecordingItemExtendedModel.md | 18 + documentation/models/RecordingItemModel.md | 17 + documentation/models/RecordingListResource.md | 10 + documentation/models/RecordingMediaType.md | 12 + documentation/models/RecordingModel.md | 16 + documentation/models/RecordingStatusModel.md | 14 + documentation/models/RecordingType.md | 11 + documentation/models/RecordingsPreferences.md | 12 + documentation/models/RecurrenceInfo.md | 16 + documentation/models/ReferenceInfo.md | 22 + documentation/models/RegAnswerModel.md | 3 + documentation/models/RegSessionModel.md | 56 + documentation/models/RegionalLanguageInfo.md | 13 + documentation/models/RegionalSettings.md | 28 + .../RegistrantBaseModelWithQuestionnaire.md | 21 + .../models/RegistrantListResource.md | 10 + ...trantModelResponsePostWithQuestionnaire.md | 25 + .../RegistrantModelWithQuestionnaire.md | 24 + .../RejectedRecipientResponseResource.md | 14 + documentation/models/RemoveLineRequest.md | 9 + documentation/models/RemoveLineResponse.md | 33 + .../models/ReplacePhoneNumberRequest.md | 9 + documentation/models/ReplyParty.md | 28 + documentation/models/ReplyWithPattern.md | 40 + documentation/models/ResponsePaging.md | 14 + documentation/models/RevokeTokenRequest.md | 23 + documentation/models/RingOutStatusInfo.md | 76 + documentation/models/RoleIdResource.md | 10 + documentation/models/RoleResource.md | 35 + documentation/models/Roles.md | 14 + .../models/RolesBusinessSiteResource.md | 18 + .../models/RolesCollectionResource.md | 12 + documentation/models/RolesCountryResource.md | 18 + documentation/models/RolesLanguageResource.md | 11 + .../models/RolesRegionalSettingsResource.md | 24 + documentation/models/RolesTimezoneResource.md | 13 + documentation/models/ScaleSize.md | 12 + documentation/models/ScheduleInfo.md | 24 + .../models/ScheduleInfoUserBusinessHours.md | 11 + .../models/ScheduleMeetingResponse.md | 16 + .../models/ScheduleUserMeetingInfo.md | 47 + .../models/ScimAuthenticationScheme.md | 13 + documentation/models/ScimBulkSupported.md | 11 + documentation/models/ScimEmail.md | 18 + documentation/models/ScimEnterpriseUser.md | 9 + documentation/models/ScimFilterSupported.md | 10 + documentation/models/ScimMeta.md | 25 + documentation/models/ScimName.md | 10 + documentation/models/ScimPatchOperation.md | 21 + documentation/models/ScimPhoneNumber.md | 20 + documentation/models/ScimPhoto.md | 18 + documentation/models/ScimProviderConfig.md | 25 + .../models/ScimResourceTypeResponse.md | 23 + .../models/ScimResourceTypeSearchResponse.md | 21 + documentation/models/ScimSchemaAttribute.md | 72 + documentation/models/ScimSchemaExtension.md | 18 + documentation/models/ScimSchemaResponse.md | 13 + .../models/ScimSchemaSearchResponse.md | 21 + documentation/models/ScimSearchRequest.md | 20 + documentation/models/ScimSupported.md | 9 + documentation/models/ScimUser.md | 28 + documentation/models/ScimUserAddress.md | 22 + documentation/models/ScimUserPatch.md | 18 + documentation/models/ScimUserResponse.md | 29 + .../models/ScimUserSearchResponse.md | 21 + .../models/SearchDirectoryContactType.md | 26 + .../models/SearchDirectoryEntriesRequest.md | 48 + .../models/SearchDirectoryExtensionType.md | 31 + .../models/SendWelcomeEmailV2Request.md | 9 + documentation/models/ServiceFeatureInfo.md | 79 + documentation/models/ServiceInfo.md | 18 + documentation/models/ServiceInfoBrand.md | 12 + .../models/ServiceInfoCountryShortModel.md | 13 + documentation/models/ServiceInfoPackage.md | 22 + documentation/models/ServiceInfoPlan.md | 23 + documentation/models/ServiceInfoUBrand.md | 12 + documentation/models/ServiceInfoV2.md | 15 + documentation/models/ServicePlanInfo.md | 23 + .../models/SessionGlobalListEntry.md | 22 + .../models/SessionGlobalListResource.md | 10 + documentation/models/SessionGlobalResource.md | 33 + .../models/SessionLivestreamMinimalModel.md | 14 + .../models/SessionLivestreamStatusModel.md | 22 + documentation/models/SessionRefAdminModel.md | 15 + documentation/models/SessionRefModel.md | 15 + documentation/models/SessionResource.md | 32 + .../models/SessionRuntimeStatusModel.md | 17 + documentation/models/SetupWizardStateEnum.md | 14 + .../models/SetupWizardStateForUpdateEnum.md | 13 + documentation/models/SharedLinesInfo.md | 11 + documentation/models/ShippingAddressInfo.md | 32 + documentation/models/ShippingInfo.md | 17 + documentation/models/ShippingMethodInfo.md | 38 + documentation/models/ShippingStatus.md | 15 + documentation/models/ShortSiteInfo.md | 10 + documentation/models/SignupInfoResource.md | 50 + documentation/models/SipFlagsResponse.md | 17 + documentation/models/SipInfoRequest.md | 22 + documentation/models/SipInfoResource.md | 13 + documentation/models/SipInfoResponse.md | 34 + .../SipRegistrationDeviceEmergencyInfo.md | 72 + .../models/SipRegistrationDeviceInfo.md | 52 + .../SipRegistrationDeviceLocationInfo.md | 13 + documentation/models/Site.md | 13 + documentation/models/SiteBasicInfo.md | 10 + documentation/models/SiteInfo.md | 18 + documentation/models/SiteIvrActions.md | 45 + .../models/SiteIvrActionsExtensionInfo.md | 13 + .../SiteIvrActionsExtensionInfoUpdate.md | 11 + documentation/models/SiteIvrActionsUpdate.md | 47 + documentation/models/SiteIvrSettings.md | 10 + documentation/models/SiteIvrSettingsUpdate.md | 10 + documentation/models/SiteIvrTopMenu.md | 13 + documentation/models/SiteIvrTopMenuUpdate.md | 11 + documentation/models/SiteMemberInfo.md | 13 + documentation/models/SiteMembersBulkUpdate.md | 10 + documentation/models/SiteMembersList.md | 12 + documentation/models/SiteOperatorReference.md | 12 + documentation/models/SiteReference.md | 9 + documentation/models/SiteResource.md | 12 + documentation/models/SiteUpdateRequest.md | 15 + documentation/models/SitesList.md | 12 + documentation/models/SmsDirectionEnum.md | 12 + documentation/models/SmsRequestCountryInfo.md | 12 + documentation/models/SmsStatusEnum.md | 15 + .../models/SocMsgCreationTimeOrder.md | 13 + documentation/models/SocMsgGender.md | 12 + documentation/models/SortBy.md | 11 + .../models/SpeakerIdentificationObject.md | 9 + documentation/models/SpeakerInsightsObject.md | 10 + documentation/models/SpeakerInsightsUnit.md | 21 + .../models/SpeakerInsightsValuesItems.md | 10 + documentation/models/SpecificInfo.md | 14 + .../models/SpeechContextPhrasesInput.md | 9 + documentation/models/StatusGroup.md | 10 + documentation/models/SubscriptionInfo.md | 40 + .../models/SubscriptionListResource.md | 10 + documentation/models/SummaryInput.md | 24 + documentation/models/SummaryOutput.md | 9 + documentation/models/SummaryOutputUnit.md | 21 + documentation/models/SummaryTimingsUnit.md | 12 + documentation/models/SummaryUnit.md | 12 + .../models/SuperviseCallSessionRequest.md | 34 + .../models/SuperviseCallSessionResponse.md | 29 + documentation/models/SwapDeviceRequest.md | 11 + documentation/models/SwitchInfo.md | 16 + documentation/models/SwitchSiteInfo.md | 10 + documentation/models/SwitchValidated.md | 24 + documentation/models/SwitchesList.md | 11 + .../models/SyncAccountCallLogSyncType.md | 12 + .../models/SyncAddressBookSyncType.md | 10 + documentation/models/SyncInfo.md | 21 + documentation/models/SyncInfoMessages.md | 14 + documentation/models/SyncStatus.md | 18 + documentation/models/SyncTypeEnum.md | 15 + documentation/models/SystemUserContactInfo.md | 14 + documentation/models/TargetServicePlanInfo.md | 23 + documentation/models/TaskAttachment.md | 22 + documentation/models/TaskRecurrenceInfo.md | 41 + documentation/models/TaskResultInfo.md | 11 + documentation/models/TaskResultRecord.md | 14 + .../models/TaskResultRecordErrorsInfo.md | 12 + .../models/TelephonyUserMeetingSettings.md | 11 + documentation/models/TemplateInfo.md | 11 + documentation/models/TemporaryNumberInfo.md | 12 + documentation/models/TimeInterval.md | 10 + documentation/models/TimeRange.md | 12 + documentation/models/TimeSettings.md | 13 + documentation/models/TimeSpentFilter.md | 12 + documentation/models/TimelineRequest.md | 12 + documentation/models/TimelineResponse.md | 10 + documentation/models/TimelineResponseData.md | 12 + .../models/TimelineResponseOptions.md | 12 + .../models/TimelineResponseOptionsCounters.md | 21 + .../models/TimelineResponseOptionsTimers.md | 19 + documentation/models/TimelineResponsePoint.md | 11 + .../models/TimelineResponseRecord.md | 11 + documentation/models/TimezoneInfo.md | 15 + documentation/models/TmAddFileRequest.md | 11 + .../models/TmAddTeamMembersRequest.md | 20 + .../models/TmAttachmentAuthorInfo.md | 11 + .../models/TmAttachmentFieldsInfo.md | 22 + .../models/TmAttachmentFootnoteInfo.md | 11 + documentation/models/TmAttachmentInfo.md | 23 + documentation/models/TmChatInfo.md | 42 + documentation/models/TmChatList.md | 10 + .../models/TmChatListWithoutNavigation.md | 9 + documentation/models/TmChatMemberInfo.md | 9 + documentation/models/TmCompanyInfo.md | 13 + documentation/models/TmCompleteTaskRequest.md | 30 + documentation/models/TmConversationInfo.md | 25 + documentation/models/TmConversationList.md | 10 + documentation/models/TmCreateEventRequest.md | 35 + documentation/models/TmCreateNoteRequest.md | 10 + documentation/models/TmCreatePostRequest.md | 12 + documentation/models/TmCreateTaskRequest.md | 51 + documentation/models/TmCreateTeamRequest.md | 21 + documentation/models/TmCreatorInfo.md | 11 + documentation/models/TmEventInfo.md | 35 + documentation/models/TmEventList.md | 10 + documentation/models/TmMentionsInfo.md | 28 + .../models/TmMessageAttachmentInfo.md | 58 + documentation/models/TmNavigationInfo.md | 10 + documentation/models/TmNoteInfo.md | 38 + documentation/models/TmNoteList.md | 10 + documentation/models/TmNoteWithBodyInfo.md | 39 + documentation/models/TmPersonInfo.md | 16 + documentation/models/TmPostInfo.md | 34 + documentation/models/TmPostsList.md | 10 + .../models/TmRemoveTeamMembersRequest.md | 17 + documentation/models/TmTaskInfo.md | 105 + documentation/models/TmTaskList.md | 10 + documentation/models/TmTeamInfo.md | 37 + documentation/models/TmTeamList.md | 10 + documentation/models/TmUpdatePostRequest.md | 9 + documentation/models/TmUpdateTaskRequest.md | 51 + documentation/models/TmUpdateTeamRequest.md | 11 + documentation/models/TmWebhookInfo.md | 27 + documentation/models/TmWebhookList.md | 9 + documentation/models/TokenInfo.md | 31 + documentation/models/TranscribedObject.md | 13 + documentation/models/TransferExtensionInfo.md | 12 + documentation/models/TransferInfo.md | 22 + documentation/models/TransferTarget.md | 14 + documentation/models/TransferredExtension.md | 12 + .../models/TransferredExtensionInfo.md | 9 + documentation/models/TypeGroup.md | 10 + documentation/models/UBrandInfo.md | 12 + .../models/UnconditionalForwardingInfo.md | 25 + documentation/models/UnifiedPresence.md | 25 + documentation/models/UnifiedPresenceGlip.md | 46 + .../models/UnifiedPresenceListEntry.md | 11 + .../models/UnifiedPresenceMeeting.md | 22 + .../models/UnifiedPresenceTelephony.md | 50 + .../models/UpdateAnsweringRuleRequest.md | 72 + documentation/models/UpdateBridgeRequest.md | 12 + .../models/UpdateConferencingInfoRequest.md | 10 + documentation/models/UpdateDevicePhoneInfo.md | 9 + .../models/UpdateEveryoneTeamRequest.md | 10 + .../models/UpdateForwardingNumberRequest.md | 29 + documentation/models/UpdateInviteeRequest.md | 15 + .../models/UpdateIvrPromptRequest.md | 9 + .../models/UpdateMessageBulkRequest.md | 10 + documentation/models/UpdateMessageRequest.md | 9 + .../models/UpdateMultipleSwitchesRequest.md | 9 + .../models/UpdateMultipleSwitchesResponse.md | 9 + .../UpdateMultipleWirelessPointsRequest.md | 9 + .../UpdateMultipleWirelessPointsResponse.md | 9 + documentation/models/UpdateNetworkRequest.md | 13 + .../models/UpdateSubscriptionRequest.md | 10 + documentation/models/UpdateSwitchInfo.md | 14 + documentation/models/UpdateUnifiedPresence.md | 10 + .../models/UpdateUnifiedPresenceGlip.md | 32 + .../models/UpdateUnifiedPresenceTelephony.md | 21 + .../models/UpdateUserProfileImageRequest.md | 9 + documentation/models/UpdateWirelessPoint.md | 13 + documentation/models/UsageStatus.md | 12 + documentation/models/User.md | 10 + documentation/models/UserAnsweringRuleList.md | 12 + .../models/UserBusinessHoursScheduleInfo.md | 11 + .../models/UserBusinessHoursUpdateRequest.md | 9 + .../models/UserBusinessHoursUpdateResponse.md | 10 + documentation/models/UserCallQueues.md | 9 + .../models/UserContactsGroupsInfo.md | 11 + .../models/UserContactsNavigationInfo.md | 14 + .../models/UserContactsNavigationInfoUri.md | 11 + .../models/UserContactsPagingInfo.md | 16 + documentation/models/UserInMeetingResponse.md | 16 + .../models/UserMeetingRecordingSetting.md | 32 + .../models/UserPhoneNumberExtensionInfo.md | 41 + documentation/models/UserPhoneNumberInfo.md | 99 + documentation/models/UserTemplates.md | 12 + documentation/models/UserTransitionInfo.md | 12 + .../models/UserVideoConfiguration.md | 33 + .../models/UtteranceInsightsObject.md | 15 + documentation/models/UtteranceInsightsUnit.md | 19 + documentation/models/UtteranceObject.md | 14 + .../models/ValidateMultipleSwitchesRequest.md | 9 + .../ValidateMultipleSwitchesResponse.md | 9 + .../ValidateMultipleWirelessPointsRequest.md | 9 + .../ValidateMultipleWirelessPointsResponse.md | 9 + documentation/models/ValidationError.md | 11 + documentation/models/ValueType.md | 13 + documentation/models/VariableAnswerModel.md | 10 + documentation/models/VerticalAlignment.md | 15 + .../models/VerticalContentAlignment.md | 15 + documentation/models/Visibility.md | 14 + documentation/models/VisibilityType.md | 12 + documentation/models/VoicemailInfo.md | 12 + documentation/models/VoicemailsInfo.md | 15 + documentation/models/WcsHostModel.md | 11 + .../models/WcsInviteeListResource.md | 10 + .../models/WcsSessionGlobalListResource.md | 10 + documentation/models/WcsSessionResource.md | 26 + documentation/models/WcsSessionStatusModel.md | 13 + .../models/WcsSessionWithLocaleCodeModel.md | 18 + documentation/models/WcsWebinarRefModel.md | 12 + documentation/models/WcsWebinarResource.md | 15 + .../models/WcsWebinarSettingsModel.md | 70 + documentation/models/WebSocketDeliveryMode.md | 19 + documentation/models/WebhookDeliveryMode.md | 31 + .../models/WebhookDeliveryModeRequest.md | 21 + documentation/models/WebinarBaseModel.md | 11 + .../models/WebinarCreationRequest.md | 12 + documentation/models/WebinarListResource.md | 10 + documentation/models/WebinarRefModel.md | 12 + documentation/models/WebinarResource.md | 15 + documentation/models/WebinarSettingsModel.md | 70 + documentation/models/WeekDay.md | 17 + documentation/models/WeeklyScheduleInfo.md | 17 + documentation/models/WirelessPointInfo.md | 16 + .../models/WirelessPointValidated.md | 23 + documentation/models/WirelessPointsList.md | 12 + documentation/models/WordSegment.md | 13 + documentation/models/WordTimingsUnit.md | 11 + .../services/AdaptiveCardsService.md | 275 ++ documentation/services/ApiInfoService.md | 68 + documentation/services/AudioService.md | 357 +++ documentation/services/AuditTrailService.md | 67 + .../AutomaticLocationUpdatesService.md | 2017 +++++++++++++ .../services/BridgeManagementService.md | 354 +++ .../services/BusinessAnalyticsService.md | 373 +++ .../services/BusinessHoursService.md | 254 ++ .../services/CalendarEventsService.md | 307 ++ documentation/services/CallBlockingService.md | 313 ++ documentation/services/CallControlService.md | 1045 +++++++ .../services/CallForwardingService.md | 266 ++ .../services/CallHandlingRulesService.md | 1001 +++++++ documentation/services/CallLogService.md | 516 ++++ .../services/CallMonitoringGroupsService.md | 272 ++ documentation/services/CallQueuesService.md | 364 +++ .../services/CallRecordingSettingsService.md | 298 ++ .../services/CallRecordingsService.md | 127 + documentation/services/ChatsService.md | 214 ++ documentation/services/CompanyService.md | 332 +++ .../services/ComplianceExportsService.md | 129 + documentation/services/ContentsService.md | 186 ++ .../services/ConversationsService.md | 121 + documentation/services/CustomFieldsService.md | 161 + .../services/DelegationManagementService.md | 45 + .../services/DeviceSipRegistrationService.md | 57 + documentation/services/DevicesService.md | 563 ++++ documentation/services/ExtensionsService.md | 505 ++++ .../services/ExternalContactsService.md | 687 +++++ documentation/services/FaxService.md | 100 + documentation/services/FeaturesService.md | 52 + documentation/services/GreetingsService.md | 305 ++ .../services/HighVolumeSmsService.md | 381 +++ .../services/HistoricalRecordingsService.md | 211 ++ .../services/HistoricalWebinarsService.md | 355 +++ documentation/services/IdentitiesService.md | 92 + .../services/IncomingWebhooksService.md | 224 ++ documentation/services/InsightsService.md | 70 + .../services/InternalContactsService.md | 218 ++ documentation/services/InviteesService.md | 251 ++ documentation/services/IvrService.md | 462 +++ .../services/MeetingRecordingsService.md | 88 + .../services/MeetingsHistoryService.md | 87 + .../services/MessageExportsService.md | 128 + documentation/services/MessageStoreService.md | 497 ++++ documentation/services/MultiSiteService.md | 465 +++ documentation/services/NotesService.md | 297 ++ .../services/OAuth2_0OpenIdConnectService.md | 202 ++ .../services/PagerMessagesService.md | 63 + .../services/PagingOnlyGroupsService.md | 141 + documentation/services/PhoneNumbersService.md | 473 +++ documentation/services/PostsService.md | 253 ++ documentation/services/PresenceService.md | 407 +++ documentation/services/ProfileService.md | 74 + .../services/RcmMeetingsLegacyService.md | 8 + .../services/RegionalSettingsService.md | 336 +++ documentation/services/RegistrantsService.md | 182 ++ .../services/RegistrationManagementService.md | 99 + documentation/services/RingOutService.md | 139 + .../services/RoleManagementService.md | 654 +++++ documentation/services/ScimService.md | 514 ++++ .../services/SiteAdministrationService.md | 155 + documentation/services/SmsService.md | 123 + documentation/services/SmsTemplatesService.md | 441 +++ documentation/services/StatusService.md | 41 + .../services/SubscriptionsService.md | 221 ++ documentation/services/TasksService.md | 307 ++ documentation/services/TeamsService.md | 464 +++ documentation/services/TextService.md | 102 + .../services/UserPermissionsService.md | 234 ++ documentation/services/UserSettingsService.md | 885 ++++++ .../services/VideoConfigurationService.md | 45 + .../services/WebinarSubscriptionsService.md | 221 ++ .../services/WebinarsAndSessionsService.md | 511 ++++ examples/.env.example | 1 + examples/install.cmd | 5 + examples/install.sh | 5 + examples/sample.py | 9 + install.cmd | 22 + install.sh | 26 + pyproject.toml | 16 + src/ring_central/__init__.py | 4 + src/ring_central/hooks/__init__.py | 1 + src/ring_central/hooks/hook.py | 38 + src/ring_central/models/__init__.py | 1258 ++++++++ .../account_business_address_resource.py | 44 + .../models/account_device_update.py | 62 + ...ccount_directory_profile_image_resource.py | 21 + .../models/account_history_paging.py | 35 + .../models/account_history_public_record.py | 88 + ...count_history_record_details_parameters.py | 19 + .../account_history_record_public_details.py | 24 + ...account_history_record_public_initiator.py | 35 + .../models/account_history_record_target.py | 77 + .../account_history_search_public_request.py | 123 + .../account_history_search_public_response.py | 29 + src/ring_central/models/account_info.py | 109 + src/ring_central/models/account_limits.py | 62 + .../account_lock_setting_record_response.py | 60 + .../models/account_locked_setting_response.py | 32 + .../models/account_operator_info.py | 39 + .../models/account_phone_number_info.py | 90 + .../models/account_phone_number_list.py | 25 + .../models/account_phone_numbers.py | 40 + .../models/account_presence_info.py | 40 + .../models/account_regional_settings.py | 98 + src/ring_central/models/account_resource.py | 43 + .../models/account_service_info.py | 97 + .../models/account_status_info.py | 62 + .../models/action_adaptive_card_info.py | 51 + src/ring_central/models/action_card_body.py | 54 + src/ring_central/models/active_call_info.py | 177 ++ .../models/active_permission_resource.py | 71 + .../models/adaptive_card_action.py | 69 + .../models/adaptive_card_column_info.py | 33 + .../models/adaptive_card_column_item_info.py | 55 + .../models/adaptive_card_creator.py | 17 + src/ring_central/models/adaptive_card_info.py | 185 ++ .../models/adaptive_card_info_request.py | 51 + .../models/adaptive_card_info_request_item.py | 77 + .../models/adaptive_card_request.py | 151 + .../models/adaptive_card_select_action.py | 45 + .../models/adaptive_card_short_info.py | 90 + .../add_blocked_allowed_phone_number.py | 34 + .../models/add_device_to_inventory_request.py | 66 + .../add_device_to_inventory_response.py | 36 + .../models/add_invitee_request.py | 67 + src/ring_central/models/add_party_request.py | 19 + .../models/add_phone_number_request_item.py | 53 + .../models/add_phone_numbers_request.py | 19 + .../models/add_phone_numbers_response.py | 19 + .../models/add_phone_numbers_response_item.py | 43 + .../models/add_phone_numbers_task.py | 25 + src/ring_central/models/additional_cq_info.py | 60 + src/ring_central/models/addon_info.py | 25 + .../address_book_bulk_contact_address_info.py | 40 + .../address_book_bulk_contact_resource.py | 182 ++ .../address_book_bulk_upload_request.py | 19 + .../address_book_bulk_upload_resource.py | 24 + .../address_book_bulk_upload_response.py | 84 + .../address_book_bulk_upload_task_result.py | 31 + src/ring_central/models/address_book_sync.py | 50 + src/ring_central/models/address_status.py | 27 + .../models/advanced_time_settings.py | 29 + .../models/aggregation_interval.py | 30 + .../models/aggregation_request.py | 47 + .../models/aggregation_response.py | 22 + .../models/aggregation_response_data.py | 30 + .../models/aggregation_response_options.py | 30 + .../aggregation_response_options_counters.py | 418 +++ .../aggregation_response_options_timers.py | 357 +++ .../models/aggregation_response_record.py | 38 + src/ring_central/models/aggregation_type.py | 33 + src/ring_central/models/all_calls.py | 23 + src/ring_central/models/answer_target.py | 17 + .../models/answering_rule_info.py | 233 ++ .../models/answering_rule_query_request.py | 17 + .../models/api_error_with_parameter.py | 39 + src/ring_central/models/api_version_info.py | 41 + src/ring_central/models/api_versions_list.py | 44 + src/ring_central/models/archive_info.py | 21 + src/ring_central/models/asr_input.py | 170 ++ ...iple_devices_automatic_location_updates.py | 31 + .../models/assign_phone_number_request.py | 85 + .../models/assigned_country_info.py | 31 + .../models/assigned_role_resource.py | 53 + .../models/assigned_roles_resource.py | 24 + src/ring_central/models/assignee_status.py | 24 + src/ring_central/models/assignment_status.py | 24 + src/ring_central/models/assistant_resource.py | 21 + .../models/assistants_resource.py | 20 + .../models/assisted_user_resource.py | 21 + .../models/assisted_users_resource.py | 20 + src/ring_central/models/audio_prompt_info.py | 21 + .../models/auth_profile_check_resource.py | 32 + .../models/auth_profile_resource.py | 26 + src/ring_central/models/authorization_type.py | 24 + src/ring_central/models/authorize_request.py | 120 + .../models/authorize_response_type.py | 21 + src/ring_central/models/auto_shared.py | 21 + .../automatic_location_updates_device_info.py | 72 + .../automatic_location_updates_device_type.py | 32 + ...utomatic_location_updates_model_feature.py | 35 + .../automatic_location_updates_model_info.py | 37 + .../automatic_location_updates_phone_line.py | 36 + ...omatic_location_updates_phone_line_type.py | 41 + ...atic_location_updates_phone_number_info.py | 21 + .../automatic_location_updates_site_info.py | 34 + .../automatic_location_updates_task_info.py | 123 + .../automatic_location_updates_user_info.py | 89 + .../automatic_location_updates_user_list.py | 40 + .../models/automatic_recording_resource.py | 59 + src/ring_central/models/background_image.py | 73 + src/ring_central/models/base.py | 277 ++ .../models/basic_extension_info_resource.py | 25 + .../models/batch_list_response.py | 27 + .../models/batch_provision_error_item.py | 22 + .../models/batch_provision_users_request.py | 19 + .../batch_provision_users_request_item.py | 168 ++ .../models/batch_provision_users_response.py | 34 + .../batch_provision_users_success_item.py | 56 + src/ring_central/models/billing_info.py | 21 + src/ring_central/models/billing_plan_info.py | 112 + .../models/billing_statement_charges.py | 35 + .../models/billing_statement_fees.py | 30 + .../models/billing_statement_info.py | 68 + .../blocked_allowed_phone_number_info.py | 44 + .../blocked_allowed_phone_numbers_list.py | 40 + .../models/blocked_caller_greeting_info.py | 23 + .../models/blocked_number_status_enum.py | 26 + src/ring_central/models/brand_info.py | 32 + src/ring_central/models/bridge_discovery.py | 17 + .../models/bridge_join_preferences.py | 75 + .../models/bridge_join_pstn_preferences.py | 28 + src/ring_central/models/bridge_pins.py | 23 + .../models/bridge_pins_with_aliases.py | 30 + .../models/bridge_pins_without_pstn.py | 17 + src/ring_central/models/bridge_preferences.py | 155 + src/ring_central/models/bridge_pstn_pins.py | 21 + .../models/bridge_request_security.py | 46 + src/ring_central/models/bridge_response.py | 86 + .../models/bridge_response_security.py | 50 + .../bridge_response_security_password.py | 27 + .../models/bridge_target_request.py | 19 + .../bulk_account_call_recordings_resource.py | 45 + .../models/bulk_add_devices_error_item.py | 22 + .../models/bulk_add_devices_item.py | 133 + .../models/bulk_add_devices_request.py | 19 + .../models/bulk_add_devices_response.py | 34 + .../models/bulk_add_devices_success_item.py | 35 + src/ring_central/models/bulk_assign_item.py | 37 + .../models/bulk_delete_users_request.py | 27 + .../models/bulk_delete_users_response.py | 48 + .../bulk_operation_extension_reference.py | 16 + .../models/bulk_role_assign_resource.py | 48 + src/ring_central/models/bulk_task_info.py | 65 + .../models/bulk_update_invitees_request.py | 103 + .../models/bulk_update_invitees_response.py | 42 + .../models/business_address_info.py | 40 + .../business_site_collection_request.py | 20 + .../business_site_collection_resource.py | 26 + .../models/business_site_resource.py | 25 + .../models/cai_async_api_response.py | 17 + .../models/cai_error_code_response.py | 71 + src/ring_central/models/cai_error_response.py | 20 + src/ring_central/models/call_action.py | 39 + src/ring_central/models/call_action_enum.py | 123 + .../models/call_direction_enum.py | 24 + .../models/call_duration_filter.py | 21 + src/ring_central/models/call_filters.py | 115 + src/ring_central/models/call_info_cq.py | 26 + .../models/call_internal_type_enum.py | 57 + src/ring_central/models/call_leg_type_enum.py | 138 + .../models/call_log_delegate_info.py | 20 + .../models/call_log_from_party.py | 59 + src/ring_central/models/call_log_record.py | 235 ++ .../models/call_log_record_device_info.py | 19 + .../models/call_log_record_leg_info.py | 218 ++ .../models/call_log_record_message.py | 22 + .../models/call_log_recording_info.py | 53 + src/ring_central/models/call_log_response.py | 37 + src/ring_central/models/call_log_sync_info.py | 26 + .../models/call_log_sync_response.py | 28 + .../models/call_log_sync_type_enum.py | 24 + src/ring_central/models/call_log_to_party.py | 59 + .../models/call_monitoring_bulk_assign.py | 45 + .../models/call_monitoring_extension_info.py | 55 + .../models/call_monitoring_group.py | 25 + .../call_monitoring_group_member_info.py | 65 + .../call_monitoring_group_member_list.py | 36 + .../models/call_monitoring_groups.py | 36 + src/ring_central/models/call_party.py | 191 ++ src/ring_central/models/call_party_flip.py | 17 + src/ring_central/models/call_party_reply.py | 27 + .../models/call_queue_bulk_assign_resource.py | 31 + src/ring_central/models/call_queue_details.py | 189 ++ .../models/call_queue_extension_info.py | 45 + src/ring_central/models/call_queue_id.py | 17 + .../models/call_queue_id_resource.py | 17 + src/ring_central/models/call_queue_info.py | 92 + .../models/call_queue_info_request.py | 45 + src/ring_central/models/call_queue_member.py | 37 + .../models/call_queue_member_id.py | 17 + .../models/call_queue_member_info.py | 25 + .../models/call_queue_member_presence.py | 37 + src/ring_central/models/call_queue_members.py | 36 + .../models/call_queue_overflow_settings.py | 24 + ...ueue_overflow_settings_request_resource.py | 24 + .../models/call_queue_presence.py | 20 + .../models/call_queue_resource.py | 21 + .../call_queue_service_level_settings.py | 42 + .../call_queue_update_member_presence.py | 25 + .../models/call_queue_update_presence.py | 20 + src/ring_central/models/call_queues.py | 36 + src/ring_central/models/call_recording.py | 21 + .../models/call_recording_custom_greeting.py | 66 + .../call_recording_custom_greeting_data.py | 21 + ...call_recording_custom_greeting_language.py | 35 + .../models/call_recording_custom_greetings.py | 20 + .../models/call_recording_extension_info.py | 35 + .../call_recording_extension_resource.py | 74 + .../models/call_recording_extensions.py | 40 + src/ring_central/models/call_recording_ids.py | 17 + .../call_recording_settings_resource.py | 35 + .../models/call_recording_update.py | 17 + src/ring_central/models/call_response.py | 30 + src/ring_central/models/call_result.py | 36 + src/ring_central/models/call_result_enum.py | 147 + .../models/call_result_reason_enum.py | 135 + .../models/call_segment_filter.py | 27 + .../models/call_segment_length_filter.py | 21 + .../models/call_segment_options.py | 45 + src/ring_central/models/call_session.py | 19 + .../models/call_session_object.py | 46 + src/ring_central/models/call_status_info.py | 190 ++ .../models/call_transport_enum.py | 24 + src/ring_central/models/call_type.py | 36 + src/ring_central/models/call_type_enum.py | 24 + src/ring_central/models/called_number_info.py | 17 + .../models/caller_blocking_settings.py | 122 + .../models/caller_blocking_settings_update.py | 128 + .../models/caller_id_by_device.py | 26 + .../models/caller_id_by_device_info.py | 23 + .../caller_id_by_device_info_request.py | 23 + .../models/caller_id_by_device_request.py | 28 + .../models/caller_id_by_feature.py | 74 + .../models/caller_id_by_feature_info.py | 23 + .../caller_id_by_feature_info_request.py | 23 + .../models/caller_id_by_feature_request.py | 78 + .../models/caller_id_device_info.py | 25 + .../models/caller_id_device_info_request.py | 17 + .../models/caller_id_phone_info.py | 25 + .../models/caller_id_phone_info_request.py | 17 + src/ring_central/models/callers_info.py | 21 + .../models/callers_info_request.py | 21 + src/ring_central/models/calls_by_actions.py | 24 + .../models/calls_by_actions_breakdown.py | 53 + .../models/calls_by_company_hours.py | 24 + .../calls_by_company_hours_breakdown.py | 19 + src/ring_central/models/calls_by_direction.py | 24 + .../models/calls_by_direction_breakdown.py | 19 + src/ring_central/models/calls_by_origin.py | 24 + .../models/calls_by_origin_breakdown.py | 19 + src/ring_central/models/calls_by_queue_sla.py | 24 + .../models/calls_by_queue_sla_breakdown.py | 19 + src/ring_central/models/calls_by_response.py | 24 + .../models/calls_by_response_breakdown.py | 31 + src/ring_central/models/calls_by_result.py | 24 + .../models/calls_by_result_breakdown.py | 39 + src/ring_central/models/calls_by_segments.py | 24 + .../models/calls_by_segments_breakdown.py | 53 + src/ring_central/models/calls_by_type.py | 24 + .../models/calls_by_type_breakdown.py | 39 + src/ring_central/models/calls_counters.py | 106 + src/ring_central/models/calls_timers.py | 90 + src/ring_central/models/cloud_recording.py | 65 + src/ring_central/models/cloud_recordings.py | 23 + .../models/code_challenge_method_enum.py | 26 + .../common_emergency_location_address_info.py | 29 + ...mmon_emergency_location_address_info_au.py | 114 + ...emergency_location_address_info_default.py | 90 + ...mmon_emergency_location_address_info_fr.py | 108 + .../common_emergency_location_resource.py | 113 + ...mpany_answering_rule_called_number_info.py | 21 + ...swering_rule_called_number_info_request.py | 21 + ...any_answering_rule_callers_info_request.py | 21 + .../company_answering_rule_extension_info.py | 17 + ...y_answering_rule_extension_info_request.py | 17 + .../models/company_answering_rule_info.py | 160 + .../models/company_answering_rule_list.py | 40 + .../models/company_answering_rule_request.py | 153 + .../company_answering_rule_schedule_info.py | 67 + ...ny_answering_rule_schedule_info_request.py | 67 + ...ny_answering_rule_time_interval_request.py | 21 + .../models/company_answering_rule_update.py | 148 + ...ering_rule_weekly_schedule_info_request.py | 69 + .../models/company_business_hours.py | 27 + .../company_business_hours_schedule_info.py | 19 + .../company_business_hours_update_request.py | 21 + .../models/company_hours_options.py | 24 + .../models/company_phone_number_info.py | 236 ++ .../models/conference_phone_number_info.py | 21 + src/ring_central/models/conference_type.py | 24 + .../models/contact_address_info.py | 40 + .../models/contact_address_info_resource.py | 40 + .../models/contact_business_address_info.py | 42 + .../models/contact_center_provider.py | 23 + src/ring_central/models/contact_info.py | 93 + .../models/contact_info_creation_request.py | 88 + .../models/contact_info_update_request.py | 88 + src/ring_central/models/contact_list.py | 48 + src/ring_central/models/contact_resource.py | 268 ++ .../models/contact_sub_type_enum.py | 33 + src/ring_central/models/content_attachment.py | 67 + .../models/content_body_formatted.py | 21 + .../models/content_body_input_format.py | 26 + src/ring_central/models/content_components.py | 39 + .../models/content_created_from.py | 36 + .../models/content_disposition.py | 24 + src/ring_central/models/content_list.py | 23 + src/ring_central/models/content_model.py | 187 ++ .../models/content_source_type.py | 60 + src/ring_central/models/content_status.py | 36 + src/ring_central/models/content_type.py | 117 + .../contracted_country_list_response.py | 34 + src/ring_central/models/conversation_info.py | 21 + .../models/conversational_insights_unit.py | 67 + .../conversational_insights_unit_values.py | 67 + src/ring_central/models/cost_center_info.py | 21 + .../models/cost_center_resource.py | 25 + .../models/country_info_basic_model.py | 25 + .../models/country_info_dictionary_model.py | 82 + .../models/country_info_minimal_model.py | 21 + .../models/country_info_short_model.py | 40 + .../models/country_list_dictionary_model.py | 37 + ...e_answering_rule_forwarding_number_info.py | 90 + .../models/create_answering_rule_request.py | 190 ++ .../models/create_bridge_request.py | 73 + .../create_call_monitoring_group_request.py | 16 + .../models/create_content_request.py | 113 + .../models/create_conversation_request.py | 34 + .../models/create_data_export_task_request.py | 38 + .../models/create_fax_message_request.py | 62 + .../create_forwarding_number_device_info.py | 19 + .../create_forwarding_number_request.py | 80 + .../models/create_glip_file_new_request.py | 16 + .../create_internal_text_message_request.py | 37 + .../models/create_ivr_prompt_request.py | 20 + .../create_message_store_report_request.py | 35 + src/ring_central/models/create_mms_message.py | 41 + .../create_multiple_switches_request.py | 20 + .../create_multiple_switches_response.py | 20 + ...create_multiple_wireless_points_request.py | 20 + ...reate_multiple_wireless_points_response.py | 19 + .../models/create_network_request.py | 39 + .../models/create_sip_registration_request.py | 67 + .../create_sip_registration_response.py | 55 + .../models/create_site_request.py | 70 + src/ring_central/models/create_sms_message.py | 36 + .../models/create_subscription_request.py | 45 + src/ring_central/models/create_switch_info.py | 58 + .../create_user_emergency_location_request.py | 51 + ...eate_user_meeting_profile_image_request.py | 16 + .../create_user_profile_image_request.py | 16 + .../create_webhook_subscription_request.py | 39 + .../models/create_wireless_point.py | 48 + src/ring_central/models/creator_info.py | 25 + src/ring_central/models/currency_info.py | 40 + src/ring_central/models/currency_resource.py | 40 + .../models/custom_answering_rule_info.py | 231 ++ .../models/custom_company_greeting_info.py | 130 + .../custom_company_greeting_language_info.py | 35 + .../models/custom_field_create_request.py | 51 + src/ring_central/models/custom_field_info.py | 25 + src/ring_central/models/custom_field_list.py | 20 + src/ring_central/models/custom_field_model.py | 53 + .../models/custom_field_resource.py | 25 + .../models/custom_field_update_request.py | 17 + .../custom_greeting_answering_rule_info.py | 21 + .../models/custom_greeting_info_request.py | 17 + .../models/custom_user_greeting_info.py | 135 + src/ring_central/models/data_export_task.py | 99 + .../models/data_export_task_contact_info.py | 21 + .../models/data_export_task_list.py | 37 + src/ring_central/models/day_of_week.py | 39 + src/ring_central/models/default_user_role.py | 27 + .../models/default_user_role_request.py | 17 + src/ring_central/models/delegate.py | 34 + .../models/delegation_type_enum.py | 24 + .../models/delegators_list_result.py | 20 + .../delete_device_from_inventory_request.py | 32 + .../delete_device_from_inventory_response.py | 51 + .../delete_forwarding_numbers_request.py | 20 + .../models/delete_message_by_filter_type.py | 38 + .../models/delete_phone_numbers_request.py | 19 + .../delete_phone_numbers_request_item.py | 23 + .../models/delete_phone_numbers_response.py | 19 + .../delete_phone_numbers_response_item.py | 44 + .../models/department_bulk_assign_resource.py | 22 + src/ring_central/models/department_info.py | 27 + .../models/department_member_list.py | 42 + src/ring_central/models/detailed_call_info.py | 54 + src/ring_central/models/device_addon_info.py | 25 + src/ring_central/models/device_definition.py | 121 + .../models/device_emergency_info.py | 190 ++ .../models/device_emergency_location_info.py | 27 + ...e_emergency_service_address_resource_au.py | 114 + ...rgency_service_address_resource_default.py | 96 + ...e_emergency_service_address_resource_fr.py | 108 + .../models/device_extension_info.py | 25 + .../models/device_feature_enum.py | 33 + .../models/device_info_request.py | 37 + src/ring_central/models/device_model_info.py | 67 + ...vice_phone_lines_emergency_address_info.py | 21 + .../models/device_phone_lines_info.py | 79 + .../device_phone_number_country_info.py | 25 + .../models/device_phone_number_info.py | 158 + .../device_provisioning_extension_info.py | 37 + src/ring_central/models/device_resource.py | 220 ++ src/ring_central/models/device_site_info.py | 21 + .../models/device_update_extension_info.py | 17 + .../models/device_update_phone_lines_info.py | 20 + .../models/dial_in_number_resource.py | 37 + src/ring_central/models/diarize_input.py | 148 + src/ring_central/models/diarize_segment.py | 28 + src/ring_central/models/diarized_object.py | 22 + .../models/dictionary_greeting_info.py | 162 + .../models/dictionary_greeting_list.py | 40 + src/ring_central/models/direct_grouping.py | 25 + src/ring_central/models/direction.py | 24 + src/ring_central/models/directory_resource.py | 23 + .../models/directory_role_resource.py | 30 + .../models/disabled_filter_info.py | 23 + src/ring_central/models/display_modes_enum.py | 30 + .../models/edit_paging_group_request.py | 43 + .../models/email_recipient_info.py | 111 + src/ring_central/models/emergency_address.py | 66 + ...emergency_address_auto_update_site_info.py | 21 + ..._auto_update_users_bulk_assign_resource.py | 24 + .../models/emergency_address_info.py | 455 +++ .../models/emergency_address_status.py | 29 + .../models/emergency_address_type.py | 24 + .../models/emergency_location_info.py | 24 + .../emergency_location_request_resource.py | 172 ++ .../emergency_location_response_resource.py | 118 + .../models/emergency_location_usage_status.py | 26 + .../models/emergency_locations_paging.py | 47 + .../models/emergency_locations_resource.py | 29 + .../emergency_service_address_resource.py | 222 ++ ...rgency_service_address_resource_request.py | 65 + src/ring_central/models/emotion_segment.py | 62 + src/ring_central/models/enrollment_input.py | 77 + .../models/enrollment_patch_input.py | 72 + src/ring_central/models/enrollment_status.py | 75 + .../models/enumerated_paging_model.py | 52 + src/ring_central/models/erl_location_info.py | 27 + src/ring_central/models/error_entity.py | 41 + .../models/event_recurrence_info.py | 112 + .../models/everyone_can_control.py | 21 + src/ring_central/models/everyone_team_info.py | 73 + .../models/export_task_result_info.py | 25 + .../models/extension_bulk_update_info.py | 239 ++ .../models/extension_bulk_update_request.py | 19 + .../extension_bulk_update_task_resource.py | 84 + .../extension_bulk_update_task_result.py | 31 + .../models/extension_call_queue_presence.py | 25 + .../extension_call_queue_presence_list.py | 20 + .../extension_call_queue_update_presence.py | 23 + ...tension_call_queue_update_presence_list.py | 20 + .../models/extension_caller_id_info.py | 53 + .../extension_caller_id_info_request.py | 53 + .../models/extension_country_info_request.py | 17 + .../models/extension_creation_request.py | 205 ++ .../models/extension_creation_response.py | 243 ++ .../models/extension_currency_info_request.py | 17 + src/ring_central/models/extension_filters.py | 22 + ...xtension_formatting_locale_info_request.py | 17 + ...xtension_greeting_language_info_request.py | 17 + src/ring_central/models/extension_info.py | 44 + .../models/extension_info_call_log.py | 19 + .../models/extension_info_grants.py | 99 + .../models/extension_info_int_id.py | 37 + .../models/extension_language_info_request.py | 17 + .../models/extension_permissions.py | 32 + .../extension_regional_setting_request.py | 105 + .../models/extension_service_feature_info.py | 235 ++ .../models/extension_short_info_resource.py | 25 + src/ring_central/models/extension_status.py | 33 + .../models/extension_status_info.py | 64 + .../models/extension_timezone_info_request.py | 17 + src/ring_central/models/extension_type.py | 66 + .../models/extension_update_request.py | 257 ++ .../models/extension_update_short_result.py | 62 + ...xtension_with_roles_collection_resource.py | 40 + .../models/extension_with_roles_resource.py | 33 + .../models/external_integration_resource.py | 54 + .../models/favorite_collection.py | 20 + .../models/favorite_contact_list.py | 24 + .../models/favorite_contact_resource.py | 42 + .../models/fax_cover_page_info.py | 21 + .../models/fax_error_code_enum.py | 120 + src/ring_central/models/fax_request_to.py | 21 + .../models/fax_resolution_enum.py | 24 + src/ring_central/models/fax_response.py | 158 + src/ring_central/models/fax_response_to.py | 50 + src/ring_central/models/feature_info.py | 39 + src/ring_central/models/feature_list.py | 20 + .../models/federated_account_resource.py | 55 + .../models/federation_resource.py | 57 + src/ring_central/models/federation_type.py | 24 + src/ring_central/models/federation_types.py | 27 + src/ring_central/models/fixed_answer_model.py | 20 + src/ring_central/models/fixed_order_agents.py | 27 + .../fixed_order_agents_extension_info.py | 35 + .../models/formatting_locale_info.py | 26 + .../models/forward_all_calls_reason.py | 47 + .../models/forward_all_company_calls_info.py | 50 + .../forward_all_company_calls_request.py | 16 + .../models/forward_call_party_response.py | 213 ++ src/ring_central/models/forward_target.py | 32 + src/ring_central/models/forwarding_info.py | 94 + .../forwarding_info_create_rule_request.py | 93 + .../models/forwarding_number_id.py | 17 + .../models/forwarding_number_info.py | 163 + ...g_number_info_rules_create_rule_request.py | 85 + .../models/forwarding_number_resource.py | 126 + .../models/forwarding_rule_create_request.py | 42 + .../models/forwarding_rule_info.py | 42 + .../models/get_account_info_response.py | 151 + ...et_bulk_add_task_results_v2_ok_response.py | 17 + .../models/get_call_recording_response.py | 25 + .../models/get_conferencing_info_response.py | 75 + .../models/get_country_info_number_parser.py | 42 + .../models/get_extension_account_info.py | 21 + .../models/get_extension_devices_response.py | 37 + ..._extension_emergency_locations_order_by.py | 59 + ...tension_forwarding_number_list_response.py | 40 + .../get_extension_grant_list_response.py | 37 + .../models/get_extension_info_response.py | 346 +++ .../get_extension_list_info_response.py | 270 ++ .../models/get_extension_list_response.py | 39 + .../get_extension_phone_numbers_response.py | 37 + ...get_internal_text_message_info_response.py | 171 ++ .../get_location_deletion_multi_response.py | 90 + .../models/get_location_list_response.py | 38 + .../models/get_message_info_multi_response.py | 24 + .../models/get_message_info_response.py | 265 ++ src/ring_central/models/get_message_list.py | 37 + .../models/get_message_sync_response.py | 32 + .../models/get_presence_extension_info.py | 25 + src/ring_central/models/get_presence_info.py | 279 ++ .../models/get_ring_out_status_response.py | 29 + .../models/get_sms_message_info_response.py | 180 ++ .../models/get_state_info_response.py | 42 + .../models/get_state_list_response.py | 40 + .../models/get_timezone_info_response.py | 40 + .../models/get_timezone_list_response.py | 37 + src/ring_central/models/get_token_request.py | 1514 ++++++++++ .../get_user_business_hours_response.py | 23 + .../glip_data_export_navigation_info.py | 52 + .../glip_data_export_navigation_info_uri.py | 17 + .../models/glip_data_export_paging_info.py | 53 + .../models/global_dial_in_country_response.py | 35 + src/ring_central/models/grant_info.py | 90 + src/ring_central/models/greeting_info.py | 34 + .../models/greeting_language_info.py | 26 + src/ring_central/models/greeting_resource.py | 71 + src/ring_central/models/greeting_type_enum.py | 66 + ...tings_create_company_greeting_request_1.py | 77 + ...tings_create_company_greeting_request_2.py | 77 + ...s_create_custom_user_greeting_request_1.py | 78 + ...s_create_custom_user_greeting_request_2.py | 74 + src/ring_central/models/group_resource.py | 21 + src/ring_central/models/grouping.py | 17 + .../models/grouping_by_members.py | 27 + src/ring_central/models/grouping_options.py | 45 + .../models/hold_call_party_request.py | 45 + .../models/horizontal_alignment.py | 36 + src/ring_central/models/host.py | 33 + src/ring_central/models/host_info_request.py | 21 + src/ring_central/models/host_model.py | 34 + src/ring_central/models/hours_interval.py | 19 + src/ring_central/models/identify_input.py | 138 + src/ring_central/models/identities_list.py | 23 + src/ring_central/models/identity_model.py | 227 ++ src/ring_central/models/identity_type.py | 54 + .../models/ignore_request_body.py | 16 + src/ring_central/models/image_fill_mode.py | 39 + src/ring_central/models/inbound_faxes_info.py | 55 + src/ring_central/models/inbound_texts_info.py | 43 + src/ring_central/models/insights_enum.py | 51 + src/ring_central/models/interaction_input.py | 168 ++ src/ring_central/models/interaction_object.py | 47 + src/ring_central/models/interval.py | 30 + .../models/invitee_list_resource.py | 23 + src/ring_central/models/invitee_model.py | 109 + src/ring_central/models/invitee_resource.py | 95 + .../models/ivr_call_handling_action_enum.py | 29 + .../models/ivr_menu_actions_info.py | 90 + .../models/ivr_menu_extension_info.py | 25 + src/ring_central/models/ivr_menu_info.py | 55 + src/ring_central/models/ivr_menu_list.py | 24 + src/ring_central/models/ivr_menu_list_info.py | 35 + .../models/ivr_menu_prompt_info.py | 60 + src/ring_central/models/ivr_menu_site_info.py | 21 + src/ring_central/models/ivr_prompts.py | 40 + .../models/job_status_response.py | 603 ++++ src/ring_central/models/key_info.py | 21 + src/ring_central/models/language_info.py | 74 + src/ring_central/models/language_list.py | 40 + .../models/last_modified_by_info.py | 17 + src/ring_central/models/line_pooling.py | 27 + src/ring_central/models/line_pooling_enum.py | 27 + .../models/list_a2_p_batches_status.py | 30 + src/ring_central/models/list_a2_psms_view.py | 24 + .../list_account_phone_numbers_status.py | 32 + .../list_account_phone_numbers_usage_type.py | 62 + .../models/list_answering_rules_type.py | 23 + .../models/list_answering_rules_view.py | 26 + ...t_automatic_location_updates_users_type.py | 29 + ...st_call_recording_custom_greetings_type.py | 32 + .../models/list_chat_notes_new_status.py | 26 + .../models/list_chat_tasks_new_status.py | 29 + .../list_company_answering_rule_info.py | 88 + .../list_data_export_tasks_new_status.py | 35 + ...list_devices_automatic_location_updates.py | 42 + .../models/list_directory_entries_type.py | 50 + .../list_emergency_locations_order_by.py | 50 + .../models/list_enrolled_speakers.py | 23 + .../models/list_extension_devices_type.py | 47 + .../list_extension_phone_numbers_status.py | 34 + ...list_extension_phone_numbers_usage_type.py | 53 + .../models/list_extensions_status.py | 30 + .../models/list_extensions_type.py | 72 + .../models/list_fax_cover_pages_response.py | 40 + .../models/list_glip_chats_new_type.py | 33 + .../models/list_locations_order_by.py | 24 + .../list_meeting_recordings_response.py | 37 + .../models/list_recent_chats_new_type.py | 35 + .../models/list_standard_greetings_type.py | 44 + .../list_standard_greetings_usage_type.py | 44 + .../models/list_user_templates_type.py | 24 + .../models/list_video_meetings_type.py | 30 + .../models/location_deletion_error_info.py | 27 + .../models/location_deletion_info.py | 72 + src/ring_central/models/location_info.py | 47 + .../models/location_owner_info.py | 25 + .../models/location_state_info.py | 21 + ..._updates_emergency_address_info_request.py | 92 + src/ring_central/models/locked_by_info.py | 17 + .../make_call_out_caller_info_request_from.py | 17 + .../make_call_out_caller_info_request_to.py | 21 + .../models/make_call_out_request.py | 31 + .../models/make_ring_out_caller_id_info.py | 17 + .../make_ring_out_caller_info_request_from.py | 24 + .../make_ring_out_caller_info_request_to.py | 19 + .../models/make_ring_out_country_info.py | 19 + .../models/make_ring_out_request.py | 43 + src/ring_central/models/meeting.py | 169 ++ .../meeting_external_user_info_resource.py | 77 + src/ring_central/models/meeting_frequency.py | 27 + src/ring_central/models/meeting_info.py | 35 + src/ring_central/models/meeting_links.py | 21 + .../models/meeting_occurrence_info.py | 37 + src/ring_central/models/meeting_page.py | 23 + .../models/meeting_recording_info.py | 119 + src/ring_central/models/meeting_recordings.py | 27 + .../meeting_recordings_navigation_info.py | 52 + .../meeting_recordings_navigation_info_uri.py | 17 + .../models/meeting_recordings_paging_info.py | 53 + .../models/meeting_request_resource.py | 216 ++ .../models/meeting_response_resource.py | 249 ++ .../models/meeting_schedule_resource.py | 38 + .../models/meeting_service_info_request.py | 21 + .../models/meeting_service_info_resource.py | 55 + .../models/meeting_user_settings_response.py | 44 + .../models/meetings_country_resource.py | 64 + .../models/meetings_navigation_info.py | 46 + .../models/meetings_navigation_info_uri.py | 17 + .../models/meetings_paging_info.py | 53 + src/ring_central/models/meetings_resource.py | 40 + .../models/meetings_timezone_resource.py | 35 + .../models/members_grouping_options.py | 32 + .../models/message_attachment_info.py | 72 + .../models/message_attachment_info_int_id.py | 83 + .../models/message_attachment_type_enum.py | 38 + .../models/message_availability_enum.py | 29 + .../models/message_batch_create_request.py | 33 + .../models/message_batch_response.py | 104 + .../models/message_create_request.py | 21 + .../models/message_details_response.py | 94 + .../models/message_direction_enum.py | 24 + .../models/message_list_message_response.py | 94 + .../models/message_list_response.py | 29 + .../models/message_priority_enum.py | 24 + .../models/message_read_status_enum.py | 24 + .../models/message_status_counts.py | 27 + .../models/message_status_enum.py | 36 + .../models/message_statuses_response.py | 46 + .../message_store_caller_info_request.py | 18 + ...message_store_caller_info_response_from.py | 46 + .../message_store_caller_info_response_to.py | 76 + .../models/message_store_configuration.py | 17 + .../models/message_store_report.py | 120 + .../models/message_store_report_archive.py | 20 + .../models/message_template_request.py | 27 + .../models/message_template_response.py | 44 + .../models/message_templates_list_response.py | 20 + src/ring_central/models/message_type_enum.py | 30 + .../models/messaging_navigation_info.py | 48 + .../models/messaging_navigation_info_uri.py | 17 + .../models/messaging_paging_info.py | 53 + .../models/missed_call_extension_info.py | 31 + ...sed_call_extension_info_external_number.py | 17 + src/ring_central/models/missed_call_info.py | 52 + src/ring_central/models/missed_calls_info.py | 43 + .../models/mobile_delivery_mode.py | 87 + .../models/mobile_delivery_mode_request.py | 64 + src/ring_central/models/model_info.py | 49 + ...modify_account_business_address_request.py | 39 + src/ring_central/models/monthly_week.py | 33 + src/ring_central/models/network_info.py | 60 + src/ring_central/models/networks_list.py | 40 + .../models/non_enumerated_paging_model.py | 47 + .../models/notification_delivery_mode.py | 23 + .../notification_delivery_mode_request.py | 21 + .../models/notification_settings.py | 92 + .../notification_settings_update_request.py | 78 + src/ring_central/models/on_demand_resource.py | 21 + src/ring_central/models/operator_info.py | 37 + .../opt_out_bulk_assign_failed_entry.py | 21 + .../models/opt_out_bulk_assign_request.py | 27 + .../models/opt_out_bulk_assign_response.py | 66 + .../models/opt_out_list_response.py | 27 + src/ring_central/models/opt_out_response.py | 86 + src/ring_central/models/order_by.py | 92 + src/ring_central/models/origin.py | 24 + src/ring_central/models/origin_info.py | 57 + .../models/outbound_faxes_info.py | 43 + .../models/outbound_proxy_info.py | 25 + src/ring_central/models/owner_info.py | 21 + src/ring_central/models/package_info.py | 21 + .../models/page_navigation_model.py | 44 + .../models/page_navigation_uri.py | 17 + .../models/pager_caller_info_request.py | 21 + src/ring_central/models/paging.py | 20 + src/ring_central/models/paging_device_info.py | 25 + .../models/paging_group_extension_info.py | 35 + .../models/paging_only_group_devices.py | 40 + .../models/paging_only_group_users.py | 40 + src/ring_central/models/paging_resource.py | 48 + src/ring_central/models/paging_schema.py | 22 + src/ring_central/models/params_info.py | 21 + src/ring_central/models/park_info.py | 17 + .../models/parse_phone_number_request.py | 18 + .../models/parse_phone_number_response.py | 36 + src/ring_central/models/participant.py | 58 + .../models/participant_extended_model.py | 140 + .../models/participant_list_resource.py | 23 + .../models/participant_reduced_model.py | 93 + src/ring_central/models/party_info.py | 41 + .../models/party_supervise_request.py | 90 + .../models/party_supervise_response.py | 105 + src/ring_central/models/party_update_info.py | 21 + .../models/party_update_request.py | 19 + .../models/patch_message_bulk_request.py | 22 + .../models/patch_message_request.py | 32 + src/ring_central/models/peer_info.py | 36 + src/ring_central/models/per_page.py | 33 + ...permission_category_collection_resource.py | 40 + .../models/permission_category_id_resource.py | 21 + .../models/permission_category_resource.py | 35 + .../models/permission_collection_resource.py | 40 + .../models/permission_id_resource.py | 90 + .../models/permission_info_admin.py | 17 + .../models/permission_info_int.py | 17 + .../models/permission_resource.py | 108 + .../models/permissions_capabilities.py | 30 + .../models/personal_contact_request.py | 184 ++ .../models/personal_contact_resource.py | 232 ++ .../models/phone_line_type_enum.py | 33 + src/ring_central/models/phone_lines_info.py | 50 + .../models/phone_number_country_info.py | 25 + ...ition_direct_number_with_reservation_id.py | 20 + .../phone_number_definition_number_id.py | 16 + ...e_number_definition_preferred_area_code.py | 18 + .../phone_number_definition_toll_type.py | 20 + .../models/phone_number_info_conferencing.py | 47 + .../models/phone_number_info_int_id.py | 177 ++ .../models/phone_number_info_number_parser.py | 93 + .../models/phone_number_resource.py | 89 + .../models/phone_number_status.py | 33 + .../models/phone_number_toll_type.py | 24 + src/ring_central/models/phone_number_type.py | 27 + .../models/phone_number_usage_type.py | 66 + .../models/pic_message_type_enum.py | 30 + src/ring_central/models/pickup_target.py | 16 + .../models/platform_payment_type.py | 36 + src/ring_central/models/postal_address.py | 41 + .../models/presence_call_queue_info.py | 41 + .../models/presence_info_request.py | 155 + .../models/presence_info_response.py | 295 ++ .../models/presence_navigation_info.py | 46 + .../models/presence_navigation_info_uri.py | 17 + .../models/presence_paging_info.py | 53 + src/ring_central/models/preset_info.py | 25 + src/ring_central/models/primary_cq_info.py | 58 + .../models/private_ip_range_info.py | 83 + .../models/private_ip_range_info_request.py | 68 + src/ring_central/models/profile_image_info.py | 42 + .../models/profile_image_info_uri.py | 17 + src/ring_central/models/prompt_info.py | 40 + .../models/prompt_language_info.py | 35 + .../models/pronounced_name_info.py | 61 + .../models/pronounced_name_prompt_info.py | 59 + .../models/provisioning_site_info.py | 34 + .../models/pub_nub_delivery_mode.py | 98 + .../models/pub_nub_delivery_mode_request.py | 52 + .../models/public_ip_range_info.py | 35 + .../public_meeting_invitation_response.py | 17 + .../models/punctuate_api_response.py | 17 + src/ring_central/models/punctuate_input.py | 17 + src/ring_central/models/punctuate_output.py | 17 + src/ring_central/models/queue_info.py | 254 ++ .../models/queue_opportunities.py | 23 + .../queue_opportunities_aggregation_type.py | 26 + .../models/queue_short_info_resource.py | 21 + src/ring_central/models/queue_sla_options.py | 24 + src/ring_central/models/ranges_info.py | 21 + .../models/rcw_domain_user_model.py | 44 + .../models/rcw_invitee_type_enum.py | 24 + .../models/rcw_linked_user_model.py | 19 + .../models/rcw_paging_forward_model.py | 40 + src/ring_central/models/rcw_paging_model.py | 40 + .../models/rcw_resource_id_model.py | 17 + src/ring_central/models/rcw_role_enum.py | 30 + .../models/rcw_session_status_model.py | 27 + .../models/read_a2_psms_opt_outs_status.py | 29 + .../models/read_company_call_log_view.py | 26 + src/ring_central/models/reason_info.py | 63 + src/ring_central/models/recipient_info.py | 21 + src/ring_central/models/recording.py | 133 + .../recording_admin_extended_item_model.py | 73 + .../models/recording_admin_list_resource.py | 23 + .../models/recording_admin_model.py | 68 + .../models/recording_download_model.py | 57 + .../models/recording_extended_model.py | 67 + src/ring_central/models/recording_info.py | 21 + .../models/recording_item_extended_model.py | 73 + .../models/recording_item_model.py | 68 + .../models/recording_list_resource.py | 23 + .../models/recording_media_type.py | 24 + src/ring_central/models/recording_model.py | 62 + .../models/recording_status_model.py | 30 + src/ring_central/models/recording_type.py | 27 + .../models/recordings_preferences.py | 30 + src/ring_central/models/recurrence_info.py | 73 + src/ring_central/models/reference_info.py | 49 + src/ring_central/models/reg_answer_model.py | 17 + src/ring_central/models/reg_session_model.py | 179 ++ .../models/regional_language_info.py | 25 + src/ring_central/models/regional_settings.py | 90 + ...egistrant_base_model_with_questionnaire.py | 95 + .../models/registrant_list_resource.py | 27 + ..._model_response_post_with_questionnaire.py | 117 + .../registrant_model_with_questionnaire.py | 111 + .../rejected_recipient_response_resource.py | 36 + .../models/remove_line_request.py | 16 + .../models/remove_line_response.py | 82 + .../models/replace_phone_number_request.py | 19 + src/ring_central/models/reply_party.py | 89 + src/ring_central/models/reply_with_pattern.py | 93 + src/ring_central/models/response_paging.py | 31 + .../models/revoke_token_request.py | 59 + .../models/ring_out_status_info.py | 196 ++ src/ring_central/models/role_id_resource.py | 21 + src/ring_central/models/role_resource.py | 119 + src/ring_central/models/roles.py | 53 + .../models/roles_business_site_resource.py | 80 + .../models/roles_collection_resource.py | 40 + .../models/roles_country_resource.py | 76 + .../models/roles_language_resource.py | 25 + .../roles_regional_settings_resource.py | 97 + .../models/roles_timezone_resource.py | 40 + src/ring_central/models/scale_size.py | 30 + src/ring_central/models/schedule_info.py | 56 + .../schedule_info_user_business_hours.py | 19 + .../models/schedule_meeting_response.py | 70 + .../models/schedule_user_meeting_info.py | 179 ++ .../models/scim_authentication_scheme.py | 40 + .../models/scim_bulk_supported.py | 30 + src/ring_central/models/scim_email.py | 38 + .../models/scim_enterprise_user.py | 17 + .../models/scim_filter_supported.py | 21 + src/ring_central/models/scim_meta.py | 65 + src/ring_central/models/scim_name.py | 19 + .../models/scim_patch_operation.py | 49 + src/ring_central/models/scim_phone_number.py | 44 + src/ring_central/models/scim_photo.py | 38 + .../models/scim_provider_config.py | 97 + .../models/scim_resource_type_response.py | 78 + .../scim_resource_type_search_response.py | 78 + .../models/scim_schema_attribute.py | 200 ++ .../models/scim_schema_extension.py | 44 + .../models/scim_schema_response.py | 43 + .../models/scim_schema_search_response.py | 75 + .../models/scim_search_request.py | 59 + src/ring_central/models/scim_supported.py | 17 + src/ring_central/models/scim_user.py | 113 + src/ring_central/models/scim_user_address.py | 65 + src/ring_central/models/scim_user_patch.py | 45 + src/ring_central/models/scim_user_response.py | 121 + .../models/scim_user_search_response.py | 73 + .../models/search_directory_contact_type.py | 68 + .../search_directory_entries_request.py | 181 ++ .../models/search_directory_extension_type.py | 83 + .../models/send_welcome_email_v2_request.py | 17 + .../models/service_feature_info.py | 223 ++ src/ring_central/models/service_info.py | 71 + src/ring_central/models/service_info_brand.py | 19 + .../service_info_country_short_model.py | 40 + .../models/service_info_package.py | 38 + src/ring_central/models/service_info_plan.py | 66 + .../models/service_info_u_brand.py | 21 + src/ring_central/models/service_info_v2.py | 53 + src/ring_central/models/service_plan_info.py | 66 + .../models/session_global_list_entry.py | 97 + .../models/session_global_list_resource.py | 23 + .../models/session_global_resource.py | 171 ++ .../session_livestream_minimal_model.py | 58 + .../models/session_livestream_status_model.py | 50 + .../models/session_ref_admin_model.py | 52 + src/ring_central/models/session_ref_model.py | 52 + src/ring_central/models/session_resource.py | 166 ++ .../models/session_runtime_status_model.py | 38 + .../models/setup_wizard_state_enum.py | 30 + .../setup_wizard_state_for_update_enum.py | 29 + src/ring_central/models/shared_lines_info.py | 17 + .../models/shipping_address_info.py | 130 + src/ring_central/models/shipping_info.py | 47 + .../models/shipping_method_info.py | 71 + src/ring_central/models/shipping_status.py | 27 + src/ring_central/models/short_site_info.py | 21 + .../models/signup_info_resource.py | 145 + src/ring_central/models/sip_flags_response.py | 60 + src/ring_central/models/sip_info_request.py | 49 + src/ring_central/models/sip_info_resource.py | 51 + src/ring_central/models/sip_info_response.py | 128 + .../sip_registration_device_emergency_info.py | 235 ++ .../models/sip_registration_device_info.py | 211 ++ .../sip_registration_device_location_info.py | 27 + src/ring_central/models/site.py | 23 + src/ring_central/models/site_basic_info.py | 19 + src/ring_central/models/site_info.py | 81 + src/ring_central/models/site_ivr_actions.py | 95 + .../models/site_ivr_actions_extension_info.py | 25 + .../site_ivr_actions_extension_info_update.py | 17 + .../models/site_ivr_actions_update.py | 109 + src/ring_central/models/site_ivr_settings.py | 27 + .../models/site_ivr_settings_update.py | 29 + src/ring_central/models/site_ivr_top_menu.py | 26 + .../models/site_ivr_top_menu_update.py | 17 + src/ring_central/models/site_member_info.py | 40 + .../models/site_members_bulk_update.py | 31 + src/ring_central/models/site_members_list.py | 40 + .../models/site_operator_reference.py | 19 + src/ring_central/models/site_reference.py | 17 + src/ring_central/models/site_resource.py | 21 + .../models/site_update_request.py | 64 + src/ring_central/models/sites_list.py | 40 + src/ring_central/models/sms_direction_enum.py | 24 + .../models/sms_request_country_info.py | 21 + src/ring_central/models/sms_status_enum.py | 33 + .../models/soc_msg_creation_time_order.py | 29 + src/ring_central/models/soc_msg_gender.py | 24 + src/ring_central/models/sort_by.py | 27 + .../models/speaker_identification_object.py | 19 + .../models/speaker_insights_object.py | 26 + .../models/speaker_insights_unit.py | 54 + .../models/speaker_insights_values_items.py | 19 + src/ring_central/models/specific_info.py | 38 + .../models/speech_context_phrases_input.py | 17 + src/ring_central/models/status_group.py | 24 + src/ring_central/models/subscription_info.py | 127 + .../models/subscription_list_resource.py | 22 + .../models/summary_api_response.py | 14 + src/ring_central/models/summary_input.py | 55 + src/ring_central/models/summary_output.py | 20 + .../models/summary_output_unit.py | 56 + .../models/summary_timings_unit.py | 34 + src/ring_central/models/summary_unit.py | 25 + .../models/supervise_call_session_request.py | 98 + .../models/supervise_call_session_response.py | 106 + .../models/swap_device_request.py | 17 + src/ring_central/models/switch_info.py | 70 + src/ring_central/models/switch_site_info.py | 21 + src/ring_central/models/switch_validated.py | 67 + src/ring_central/models/switches_list.py | 35 + .../models/sync_account_call_log_sync_type.py | 26 + .../models/sync_address_book_sync_type.py | 26 + src/ring_central/models/sync_info.py | 66 + src/ring_central/models/sync_info_messages.py | 46 + src/ring_central/models/sync_status.py | 39 + src/ring_central/models/sync_type_enum.py | 24 + .../models/system_user_contact_info.py | 51 + .../models/target_service_plan_info.py | 66 + src/ring_central/models/task_attachment.py | 54 + .../models/task_recurrence_info.py | 112 + src/ring_central/models/task_result_info.py | 20 + src/ring_central/models/task_result_record.py | 48 + .../models/task_result_record_errors_info.py | 35 + .../models/telephony_user_meeting_settings.py | 41 + src/ring_central/models/template_info.py | 16 + .../models/temporary_number_info.py | 22 + src/ring_central/models/time_interval.py | 21 + src/ring_central/models/time_range.py | 19 + src/ring_central/models/time_settings.py | 39 + src/ring_central/models/time_spent_filter.py | 21 + src/ring_central/models/timeline_request.py | 47 + src/ring_central/models/timeline_response.py | 22 + .../models/timeline_response_data.py | 28 + .../models/timeline_response_options.py | 30 + .../timeline_response_options_counters.py | 84 + .../timeline_response_options_timers.py | 72 + .../models/timeline_response_point.py | 29 + .../models/timeline_response_record.py | 30 + src/ring_central/models/timezone_info.py | 40 + .../models/tm_add_file_request.py | 23 + .../models/tm_add_team_members_request.py | 34 + .../models/tm_attachment_author_info.py | 25 + .../models/tm_attachment_fields_info.py | 47 + .../models/tm_attachment_footnote_info.py | 25 + src/ring_central/models/tm_attachment_info.py | 51 + src/ring_central/models/tm_chat_info.py | 122 + src/ring_central/models/tm_chat_list.py | 24 + .../models/tm_chat_list_without_navigation.py | 19 + .../models/tm_chat_member_info.py | 17 + src/ring_central/models/tm_company_info.py | 43 + .../models/tm_complete_task_request.py | 72 + .../models/tm_conversation_info.py | 79 + .../models/tm_conversation_list.py | 26 + .../models/tm_create_event_request.py | 116 + .../models/tm_create_note_request.py | 20 + .../models/tm_create_post_request.py | 24 + .../models/tm_create_task_request.py | 163 + .../models/tm_create_team_request.py | 52 + src/ring_central/models/tm_creator_info.py | 17 + src/ring_central/models/tm_event_info.py | 115 + src/ring_central/models/tm_event_list.py | 27 + src/ring_central/models/tm_mentions_info.py | 67 + .../models/tm_message_attachment_info.py | 205 ++ src/ring_central/models/tm_navigation_info.py | 21 + src/ring_central/models/tm_note_info.py | 127 + src/ring_central/models/tm_note_list.py | 27 + .../models/tm_note_with_body_info.py | 140 + src/ring_central/models/tm_person_info.py | 63 + src/ring_central/models/tm_post_info.py | 126 + src/ring_central/models/tm_posts_list.py | 24 + .../models/tm_remove_team_members_request.py | 30 + src/ring_central/models/tm_task_info.py | 286 ++ src/ring_central/models/tm_task_list.py | 27 + src/ring_central/models/tm_team_info.py | 102 + src/ring_central/models/tm_team_list.py | 24 + .../models/tm_update_post_request.py | 17 + .../models/tm_update_task_request.py | 165 ++ .../models/tm_update_team_request.py | 25 + src/ring_central/models/tm_webhook_info.py | 86 + src/ring_central/models/tm_webhook_list.py | 20 + src/ring_central/models/token_info.py | 97 + src/ring_central/models/transcribed_object.py | 42 + .../models/transfer_extension_info.py | 35 + src/ring_central/models/transfer_info.py | 52 + src/ring_central/models/transfer_target.py | 41 + .../models/transferred_extension.py | 21 + .../models/transferred_extension_info.py | 19 + src/ring_central/models/type_group.py | 24 + src/ring_central/models/u_brand_info.py | 21 + .../models/unconditional_forwarding_info.py | 57 + src/ring_central/models/unified_presence.py | 69 + .../models/unified_presence_glip.py | 108 + .../models/unified_presence_list_entry.py | 29 + .../models/unified_presence_meeting.py | 43 + .../models/unified_presence_telephony.py | 126 + .../models/update_answering_rule_request.py | 234 ++ .../models/update_bridge_request.py | 39 + .../update_conferencing_info_request.py | 32 + .../models/update_device_phone_info.py | 17 + .../models/update_everyone_team_request.py | 21 + .../update_forwarding_number_request.py | 82 + .../models/update_invitee_request.py | 60 + .../models/update_ivr_prompt_request.py | 17 + .../models/update_message_bulk_request.py | 22 + .../models/update_message_request.py | 20 + .../update_multiple_switches_request.py | 20 + .../update_multiple_switches_response.py | 19 + ...update_multiple_wireless_points_request.py | 20 + ...pdate_multiple_wireless_points_response.py | 19 + .../models/update_network_request.py | 50 + .../models/update_subscription_request.py | 21 + src/ring_central/models/update_switch_info.py | 52 + .../models/update_unified_presence.py | 30 + .../models/update_unified_presence_glip.py | 84 + .../update_unified_presence_telephony.py | 51 + .../update_user_profile_image_request.py | 17 + .../models/update_wireless_point.py | 45 + src/ring_central/models/usage_status.py | 24 + src/ring_central/models/user.py | 19 + .../models/user_answering_rule_list.py | 40 + .../user_business_hours_schedule_info.py | 19 + .../user_business_hours_update_request.py | 18 + .../user_business_hours_update_response.py | 23 + src/ring_central/models/user_call_queues.py | 20 + .../models/user_contacts_groups_info.py | 17 + .../models/user_contacts_navigation_info.py | 52 + .../user_contacts_navigation_info_uri.py | 17 + .../models/user_contacts_paging_info.py | 53 + .../models/user_in_meeting_response.py | 63 + .../models/user_meeting_recording_setting.py | 105 + .../user_phone_number_extension_info.py | 126 + .../models/user_phone_number_info.py | 299 ++ src/ring_central/models/user_templates.py | 37 + .../models/user_transition_info.py | 29 + .../models/user_video_configuration.py | 71 + src/ring_central/models/utils/cast_models.py | 83 + src/ring_central/models/utils/json_map.py | 82 + .../models/utterance_insights_object.py | 51 + .../models/utterance_insights_unit.py | 46 + src/ring_central/models/utterance_object.py | 45 + .../validate_multiple_switches_request.py | 20 + .../validate_multiple_switches_response.py | 20 + ...lidate_multiple_wireless_points_request.py | 20 + ...idate_multiple_wireless_points_response.py | 20 + src/ring_central/models/validation_error.py | 27 + src/ring_central/models/value_type.py | 27 + .../models/variable_answer_model.py | 19 + src/ring_central/models/vertical_alignment.py | 36 + .../models/vertical_content_alignment.py | 38 + src/ring_central/models/visibility.py | 24 + src/ring_central/models/visibility_type.py | 24 + src/ring_central/models/voicemail_info.py | 23 + src/ring_central/models/voicemails_info.py | 61 + src/ring_central/models/wcs_host_model.py | 27 + .../models/wcs_invitee_list_resource.py | 23 + .../wcs_session_global_list_resource.py | 23 + .../models/wcs_session_resource.py | 122 + .../models/wcs_session_status_model.py | 27 + .../wcs_session_with_locale_code_model.py | 76 + .../models/wcs_webinar_ref_model.py | 36 + .../models/wcs_webinar_resource.py | 56 + .../models/wcs_webinar_settings_model.py | 255 ++ .../models/web_socket_delivery_mode.py | 42 + .../models/webhook_delivery_mode.py | 75 + .../models/webhook_delivery_mode_request.py | 56 + src/ring_central/models/webinar_base_model.py | 32 + .../models/webinar_creation_request.py | 37 + .../models/webinar_list_resource.py | 23 + src/ring_central/models/webinar_ref_model.py | 31 + src/ring_central/models/webinar_resource.py | 55 + .../models/webinar_settings_model.py | 255 ++ src/ring_central/models/week_day.py | 39 + .../models/weekly_schedule_info.py | 53 + .../models/wireless_point_info.py | 67 + .../models/wireless_point_validated.py | 64 + .../models/wireless_points_list.py | 40 + src/ring_central/models/word_segment.py | 37 + src/ring_central/models/word_timings_unit.py | 25 + src/ring_central/net/__init__.py | 1 + src/ring_central/net/environment/__init__.py | 3 + .../net/environment/environment.py | 12 + src/ring_central/net/headers/__init__.py | 1 + .../net/headers/access_token_auth.py | 43 + src/ring_central/net/headers/base_header.py | 11 + .../net/request_chain/__init__.py | 1 + .../net/request_chain/handlers/__init__.py | 1 + .../request_chain/handlers/base_handler.py | 41 + .../request_chain/handlers/hook_handler.py | 49 + .../request_chain/handlers/http_handler.py | 85 + .../request_chain/handlers/retry_handler.py | 67 + .../net/request_chain/request_chain.py | 59 + src/ring_central/net/transport/__init__.py | 1 + src/ring_central/net/transport/request.py | 91 + .../net/transport/request_error.py | 55 + src/ring_central/net/transport/response.py | 61 + src/ring_central/net/transport/serializer.py | 255 ++ src/ring_central/net/transport/utils.py | 30 + src/ring_central/sdk.py | 330 +++ src/ring_central/services/__init__.py | 1 + src/ring_central/services/adaptive_cards.py | 139 + src/ring_central/services/api_info.py | 60 + src/ring_central/services/audio.py | 280 ++ src/ring_central/services/audit_trail.py | 54 + .../services/automatic_location_updates.py | 1761 +++++++++++ .../services/bridge_management.py | 260 ++ .../services/business_analytics.py | 115 + src/ring_central/services/business_hours.py | 163 + src/ring_central/services/calendar_events.py | 230 ++ src/ring_central/services/call_blocking.py | 326 ++ src/ring_central/services/call_control.py | 1092 +++++++ src/ring_central/services/call_forwarding.py | 280 ++ .../services/call_handling_rules.py | 519 ++++ src/ring_central/services/call_log.py | 716 +++++ .../services/call_monitoring_groups.py | 260 ++ src/ring_central/services/call_queues.py | 443 +++ .../services/call_recording_settings.py | 248 ++ src/ring_central/services/call_recordings.py | 133 + src/ring_central/services/chats.py | 219 ++ src/ring_central/services/company.py | 318 ++ .../services/compliance_exports.py | 115 + src/ring_central/services/contents.py | 183 ++ src/ring_central/services/conversations.py | 107 + src/ring_central/services/custom_fields.py | 151 + .../services/delegation_management.py | 45 + .../services/device_sip_registration.py | 42 + src/ring_central/services/devices.py | 477 +++ src/ring_central/services/extensions.py | 280 ++ .../services/external_contacts.py | 553 ++++ src/ring_central/services/fax.py | 91 + src/ring_central/services/features.py | 87 + src/ring_central/services/greetings.py | 329 +++ src/ring_central/services/high_volume_sms.py | 425 +++ .../services/historical_recordings.py | 242 ++ .../services/historical_webinars.py | 400 +++ src/ring_central/services/identities.py | 114 + .../services/incoming_webhooks.py | 204 ++ src/ring_central/services/insights.py | 46 + .../services/internal_contacts.py | 230 ++ src/ring_central/services/invitees.py | 241 ++ src/ring_central/services/ivr.py | 377 +++ .../services/meeting_recordings.py | 101 + src/ring_central/services/meetings_history.py | 104 + src/ring_central/services/message_exports.py | 121 + src/ring_central/services/message_store.py | 631 ++++ src/ring_central/services/multi_site.py | 333 +++ src/ring_central/services/notes.py | 294 ++ .../services/o_auth_2_0_open_id_connect.py | 243 ++ src/ring_central/services/pager_messages.py | 59 + .../services/paging_only_groups.py | 151 + src/ring_central/services/phone_numbers.py | 552 ++++ src/ring_central/services/posts.py | 230 ++ src/ring_central/services/presence.py | 408 +++ src/ring_central/services/profile.py | 69 + .../services/rcm_meetings_legacy.py | 788 +++++ .../services/regional_settings.py | 366 +++ src/ring_central/services/registrants.py | 189 ++ .../services/registration_management.py | 84 + src/ring_central/services/ring_out.py | 130 + src/ring_central/services/role_management.py | 603 ++++ src/ring_central/services/scim.py | 362 +++ .../services/site_administration.py | 93 + src/ring_central/services/sms.py | 101 + src/ring_central/services/sms_templates.py | 417 +++ src/ring_central/services/status.py | 39 + src/ring_central/services/subscriptions.py | 233 ++ src/ring_central/services/tasks.py | 255 ++ src/ring_central/services/teams.py | 399 +++ src/ring_central/services/text.py | 83 + src/ring_central/services/user_permissions.py | 256 ++ src/ring_central/services/user_settings.py | 761 +++++ .../services/utils/base_service.py | 86 + .../services/utils/default_headers.py | 59 + src/ring_central/services/utils/validator.py | 218 ++ .../services/video_configuration.py | 47 + .../services/webinar_subscriptions.py | 196 ++ .../services/webinars_and_sessions.py | 453 +++ 2502 files changed, 139561 insertions(+) create mode 100644 .env.example create mode 100644 .github/workflows/publish_py.yaml create mode 100644 .gitignore create mode 100644 .manifest.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 documentation/models/AccountBusinessAddressResource.md create mode 100644 documentation/models/AccountDeviceUpdate.md create mode 100644 documentation/models/AccountDirectoryProfileImageResource.md create mode 100644 documentation/models/AccountHistoryPaging.md create mode 100644 documentation/models/AccountHistoryPublicRecord.md create mode 100644 documentation/models/AccountHistoryRecordDetailsParameters.md create mode 100644 documentation/models/AccountHistoryRecordPublicDetails.md create mode 100644 documentation/models/AccountHistoryRecordPublicInitiator.md create mode 100644 documentation/models/AccountHistoryRecordTarget.md create mode 100644 documentation/models/AccountHistorySearchPublicRequest.md create mode 100644 documentation/models/AccountHistorySearchPublicResponse.md create mode 100644 documentation/models/AccountInfo.md create mode 100644 documentation/models/AccountLimits.md create mode 100644 documentation/models/AccountLockSettingRecordResponse.md create mode 100644 documentation/models/AccountLockedSettingResponse.md create mode 100644 documentation/models/AccountOperatorInfo.md create mode 100644 documentation/models/AccountPhoneNumberInfo.md create mode 100644 documentation/models/AccountPhoneNumberList.md create mode 100644 documentation/models/AccountPhoneNumbers.md create mode 100644 documentation/models/AccountPresenceInfo.md create mode 100644 documentation/models/AccountRegionalSettings.md create mode 100644 documentation/models/AccountResource.md create mode 100644 documentation/models/AccountServiceInfo.md create mode 100644 documentation/models/AccountStatusInfo.md create mode 100644 documentation/models/ActionAdaptiveCardInfo.md create mode 100644 documentation/models/ActionCardBody.md create mode 100644 documentation/models/ActiveCallInfo.md create mode 100644 documentation/models/ActivePermissionResource.md create mode 100644 documentation/models/AdaptiveCardAction.md create mode 100644 documentation/models/AdaptiveCardColumnInfo.md create mode 100644 documentation/models/AdaptiveCardColumnItemInfo.md create mode 100644 documentation/models/AdaptiveCardCreator.md create mode 100644 documentation/models/AdaptiveCardInfo.md create mode 100644 documentation/models/AdaptiveCardInfoRequest.md create mode 100644 documentation/models/AdaptiveCardInfoRequestItem.md create mode 100644 documentation/models/AdaptiveCardRequest.md create mode 100644 documentation/models/AdaptiveCardSelectAction.md create mode 100644 documentation/models/AdaptiveCardShortInfo.md create mode 100644 documentation/models/AddBlockedAllowedPhoneNumber.md create mode 100644 documentation/models/AddDeviceToInventoryRequest.md create mode 100644 documentation/models/AddDeviceToInventoryResponse.md create mode 100644 documentation/models/AddInviteeRequest.md create mode 100644 documentation/models/AddPartyRequest.md create mode 100644 documentation/models/AddPhoneNumberRequestItem.md create mode 100644 documentation/models/AddPhoneNumbersRequest.md create mode 100644 documentation/models/AddPhoneNumbersResponse.md create mode 100644 documentation/models/AddPhoneNumbersResponseItem.md create mode 100644 documentation/models/AddPhoneNumbersTask.md create mode 100644 documentation/models/AdditionalCqInfo.md create mode 100644 documentation/models/AddonInfo.md create mode 100644 documentation/models/AddressBookBulkContactAddressInfo.md create mode 100644 documentation/models/AddressBookBulkContactResource.md create mode 100644 documentation/models/AddressBookBulkUploadRequest.md create mode 100644 documentation/models/AddressBookBulkUploadResource.md create mode 100644 documentation/models/AddressBookBulkUploadResponse.md create mode 100644 documentation/models/AddressBookBulkUploadTaskResult.md create mode 100644 documentation/models/AddressBookSync.md create mode 100644 documentation/models/AddressStatus.md create mode 100644 documentation/models/AdvancedTimeSettings.md create mode 100644 documentation/models/AggregationInterval.md create mode 100644 documentation/models/AggregationRequest.md create mode 100644 documentation/models/AggregationResponse.md create mode 100644 documentation/models/AggregationResponseData.md create mode 100644 documentation/models/AggregationResponseOptions.md create mode 100644 documentation/models/AggregationResponseOptionsCounters.md create mode 100644 documentation/models/AggregationResponseOptionsTimers.md create mode 100644 documentation/models/AggregationResponseRecord.md create mode 100644 documentation/models/AggregationType.md create mode 100644 documentation/models/AllCalls.md create mode 100644 documentation/models/AnswerTarget.md create mode 100644 documentation/models/AnsweringRuleInfo.md create mode 100644 documentation/models/AnsweringRuleQueryRequest.md create mode 100644 documentation/models/ApiErrorWithParameter.md create mode 100644 documentation/models/ApiVersionInfo.md create mode 100644 documentation/models/ApiVersionsList.md create mode 100644 documentation/models/ArchiveInfo.md create mode 100644 documentation/models/AsrInput.md create mode 100644 documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md create mode 100644 documentation/models/AssignPhoneNumberRequest.md create mode 100644 documentation/models/AssignedCountryInfo.md create mode 100644 documentation/models/AssignedRoleResource.md create mode 100644 documentation/models/AssignedRolesResource.md create mode 100644 documentation/models/AssigneeStatus.md create mode 100644 documentation/models/AssignmentStatus.md create mode 100644 documentation/models/AssistantResource.md create mode 100644 documentation/models/AssistantsResource.md create mode 100644 documentation/models/AssistedUserResource.md create mode 100644 documentation/models/AssistedUsersResource.md create mode 100644 documentation/models/AudioPromptInfo.md create mode 100644 documentation/models/AuthProfileCheckResource.md create mode 100644 documentation/models/AuthProfileResource.md create mode 100644 documentation/models/AuthorizationType.md create mode 100644 documentation/models/AuthorizeRequest.md create mode 100644 documentation/models/AuthorizeResponseType.md create mode 100644 documentation/models/AutoShared.md create mode 100644 documentation/models/AutomaticLocationUpdatesDeviceInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesDeviceType.md create mode 100644 documentation/models/AutomaticLocationUpdatesModelFeature.md create mode 100644 documentation/models/AutomaticLocationUpdatesModelInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesPhoneLine.md create mode 100644 documentation/models/AutomaticLocationUpdatesPhoneLineType.md create mode 100644 documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesSiteInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesTaskInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesUserInfo.md create mode 100644 documentation/models/AutomaticLocationUpdatesUserList.md create mode 100644 documentation/models/AutomaticRecordingResource.md create mode 100644 documentation/models/BackgroundImage.md create mode 100644 documentation/models/BasicExtensionInfoResource.md create mode 100644 documentation/models/BatchListResponse.md create mode 100644 documentation/models/BatchProvisionErrorItem.md create mode 100644 documentation/models/BatchProvisionUsersRequest.md create mode 100644 documentation/models/BatchProvisionUsersRequestItem.md create mode 100644 documentation/models/BatchProvisionUsersResponse.md create mode 100644 documentation/models/BatchProvisionUsersSuccessItem.md create mode 100644 documentation/models/BillingInfo.md create mode 100644 documentation/models/BillingPlanInfo.md create mode 100644 documentation/models/BillingStatementCharges.md create mode 100644 documentation/models/BillingStatementFees.md create mode 100644 documentation/models/BillingStatementInfo.md create mode 100644 documentation/models/BlockedAllowedPhoneNumberInfo.md create mode 100644 documentation/models/BlockedAllowedPhoneNumbersList.md create mode 100644 documentation/models/BlockedCallerGreetingInfo.md create mode 100644 documentation/models/BlockedNumberStatusEnum.md create mode 100644 documentation/models/BrandInfo.md create mode 100644 documentation/models/BridgeDiscovery.md create mode 100644 documentation/models/BridgeJoinPreferences.md create mode 100644 documentation/models/BridgeJoinPstnPreferences.md create mode 100644 documentation/models/BridgePins.md create mode 100644 documentation/models/BridgePinsWithAliases.md create mode 100644 documentation/models/BridgePinsWithoutPstn.md create mode 100644 documentation/models/BridgePreferences.md create mode 100644 documentation/models/BridgePstnPins.md create mode 100644 documentation/models/BridgeRequestSecurity.md create mode 100644 documentation/models/BridgeResponse.md create mode 100644 documentation/models/BridgeResponseSecurity.md create mode 100644 documentation/models/BridgeResponseSecurityPassword.md create mode 100644 documentation/models/BridgeTargetRequest.md create mode 100644 documentation/models/BulkAccountCallRecordingsResource.md create mode 100644 documentation/models/BulkAddDevicesErrorItem.md create mode 100644 documentation/models/BulkAddDevicesItem.md create mode 100644 documentation/models/BulkAddDevicesRequest.md create mode 100644 documentation/models/BulkAddDevicesResponse.md create mode 100644 documentation/models/BulkAddDevicesSuccessItem.md create mode 100644 documentation/models/BulkAssignItem.md create mode 100644 documentation/models/BulkDeleteUsersRequest.md create mode 100644 documentation/models/BulkDeleteUsersResponse.md create mode 100644 documentation/models/BulkOperationExtensionReference.md create mode 100644 documentation/models/BulkRoleAssignResource.md create mode 100644 documentation/models/BulkTaskInfo.md create mode 100644 documentation/models/BulkUpdateInviteesRequest.md create mode 100644 documentation/models/BulkUpdateInviteesResponse.md create mode 100644 documentation/models/BusinessAddressInfo.md create mode 100644 documentation/models/BusinessSiteCollectionRequest.md create mode 100644 documentation/models/BusinessSiteCollectionResource.md create mode 100644 documentation/models/BusinessSiteResource.md create mode 100644 documentation/models/CaiAsyncApiResponse.md create mode 100644 documentation/models/CaiErrorCodeResponse.md create mode 100644 documentation/models/CaiErrorResponse.md create mode 100644 documentation/models/CallAction.md create mode 100644 documentation/models/CallActionEnum.md create mode 100644 documentation/models/CallDirectionEnum.md create mode 100644 documentation/models/CallDurationFilter.md create mode 100644 documentation/models/CallFilters.md create mode 100644 documentation/models/CallInfoCq.md create mode 100644 documentation/models/CallInternalTypeEnum.md create mode 100644 documentation/models/CallLegTypeEnum.md create mode 100644 documentation/models/CallLogDelegateInfo.md create mode 100644 documentation/models/CallLogFromParty.md create mode 100644 documentation/models/CallLogRecord.md create mode 100644 documentation/models/CallLogRecordDeviceInfo.md create mode 100644 documentation/models/CallLogRecordLegInfo.md create mode 100644 documentation/models/CallLogRecordMessage.md create mode 100644 documentation/models/CallLogRecordingInfo.md create mode 100644 documentation/models/CallLogResponse.md create mode 100644 documentation/models/CallLogSyncInfo.md create mode 100644 documentation/models/CallLogSyncResponse.md create mode 100644 documentation/models/CallLogSyncTypeEnum.md create mode 100644 documentation/models/CallLogToParty.md create mode 100644 documentation/models/CallMonitoringBulkAssign.md create mode 100644 documentation/models/CallMonitoringExtensionInfo.md create mode 100644 documentation/models/CallMonitoringGroup.md create mode 100644 documentation/models/CallMonitoringGroupMemberInfo.md create mode 100644 documentation/models/CallMonitoringGroupMemberList.md create mode 100644 documentation/models/CallMonitoringGroups.md create mode 100644 documentation/models/CallParty.md create mode 100644 documentation/models/CallPartyFlip.md create mode 100644 documentation/models/CallPartyReply.md create mode 100644 documentation/models/CallQueueBulkAssignResource.md create mode 100644 documentation/models/CallQueueDetails.md create mode 100644 documentation/models/CallQueueExtensionInfo.md create mode 100644 documentation/models/CallQueueId.md create mode 100644 documentation/models/CallQueueIdResource.md create mode 100644 documentation/models/CallQueueInfo.md create mode 100644 documentation/models/CallQueueInfoRequest.md create mode 100644 documentation/models/CallQueueMember.md create mode 100644 documentation/models/CallQueueMemberId.md create mode 100644 documentation/models/CallQueueMemberInfo.md create mode 100644 documentation/models/CallQueueMemberPresence.md create mode 100644 documentation/models/CallQueueMembers.md create mode 100644 documentation/models/CallQueueOverflowSettings.md create mode 100644 documentation/models/CallQueueOverflowSettingsRequestResource.md create mode 100644 documentation/models/CallQueuePresence.md create mode 100644 documentation/models/CallQueueResource.md create mode 100644 documentation/models/CallQueueServiceLevelSettings.md create mode 100644 documentation/models/CallQueueUpdateMemberPresence.md create mode 100644 documentation/models/CallQueueUpdatePresence.md create mode 100644 documentation/models/CallQueues.md create mode 100644 documentation/models/CallRecording.md create mode 100644 documentation/models/CallRecordingCustomGreeting.md create mode 100644 documentation/models/CallRecordingCustomGreetingData.md create mode 100644 documentation/models/CallRecordingCustomGreetingLanguage.md create mode 100644 documentation/models/CallRecordingCustomGreetings.md create mode 100644 documentation/models/CallRecordingExtensionInfo.md create mode 100644 documentation/models/CallRecordingExtensionResource.md create mode 100644 documentation/models/CallRecordingExtensions.md create mode 100644 documentation/models/CallRecordingIds.md create mode 100644 documentation/models/CallRecordingSettingsResource.md create mode 100644 documentation/models/CallRecordingUpdate.md create mode 100644 documentation/models/CallResponse.md create mode 100644 documentation/models/CallResult.md create mode 100644 documentation/models/CallResultEnum.md create mode 100644 documentation/models/CallResultReasonEnum.md create mode 100644 documentation/models/CallSegmentFilter.md create mode 100644 documentation/models/CallSegmentLengthFilter.md create mode 100644 documentation/models/CallSegmentOptions.md create mode 100644 documentation/models/CallSession.md create mode 100644 documentation/models/CallSessionObject.md create mode 100644 documentation/models/CallStatusInfo.md create mode 100644 documentation/models/CallTransportEnum.md create mode 100644 documentation/models/CallType.md create mode 100644 documentation/models/CallTypeEnum.md create mode 100644 documentation/models/CalledNumberInfo.md create mode 100644 documentation/models/CallerBlockingSettings.md create mode 100644 documentation/models/CallerBlockingSettingsUpdate.md create mode 100644 documentation/models/CallerIdByDevice.md create mode 100644 documentation/models/CallerIdByDeviceInfo.md create mode 100644 documentation/models/CallerIdByDeviceInfoRequest.md create mode 100644 documentation/models/CallerIdByDeviceRequest.md create mode 100644 documentation/models/CallerIdByFeature.md create mode 100644 documentation/models/CallerIdByFeatureInfo.md create mode 100644 documentation/models/CallerIdByFeatureInfoRequest.md create mode 100644 documentation/models/CallerIdByFeatureRequest.md create mode 100644 documentation/models/CallerIdDeviceInfo.md create mode 100644 documentation/models/CallerIdDeviceInfoRequest.md create mode 100644 documentation/models/CallerIdPhoneInfo.md create mode 100644 documentation/models/CallerIdPhoneInfoRequest.md create mode 100644 documentation/models/CallersInfo.md create mode 100644 documentation/models/CallersInfoRequest.md create mode 100644 documentation/models/CallsByActions.md create mode 100644 documentation/models/CallsByActionsBreakdown.md create mode 100644 documentation/models/CallsByCompanyHours.md create mode 100644 documentation/models/CallsByCompanyHoursBreakdown.md create mode 100644 documentation/models/CallsByDirection.md create mode 100644 documentation/models/CallsByDirectionBreakdown.md create mode 100644 documentation/models/CallsByOrigin.md create mode 100644 documentation/models/CallsByOriginBreakdown.md create mode 100644 documentation/models/CallsByQueueSla.md create mode 100644 documentation/models/CallsByQueueSlaBreakdown.md create mode 100644 documentation/models/CallsByResponse.md create mode 100644 documentation/models/CallsByResponseBreakdown.md create mode 100644 documentation/models/CallsByResult.md create mode 100644 documentation/models/CallsByResultBreakdown.md create mode 100644 documentation/models/CallsBySegments.md create mode 100644 documentation/models/CallsBySegmentsBreakdown.md create mode 100644 documentation/models/CallsByType.md create mode 100644 documentation/models/CallsByTypeBreakdown.md create mode 100644 documentation/models/CallsCounters.md create mode 100644 documentation/models/CallsTimers.md create mode 100644 documentation/models/CloudRecording.md create mode 100644 documentation/models/CloudRecordings.md create mode 100644 documentation/models/CodeChallengeMethodEnum.md create mode 100644 documentation/models/CommonEmergencyLocationAddressInfo.md create mode 100644 documentation/models/CommonEmergencyLocationAddressInfoAu.md create mode 100644 documentation/models/CommonEmergencyLocationAddressInfoDefault.md create mode 100644 documentation/models/CommonEmergencyLocationAddressInfoFr.md create mode 100644 documentation/models/CommonEmergencyLocationResource.md create mode 100644 documentation/models/CompanyAnsweringRuleCalledNumberInfo.md create mode 100644 documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleCallersInfoRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleExtensionInfo.md create mode 100644 documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleInfo.md create mode 100644 documentation/models/CompanyAnsweringRuleList.md create mode 100644 documentation/models/CompanyAnsweringRuleRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleScheduleInfo.md create mode 100644 documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md create mode 100644 documentation/models/CompanyAnsweringRuleUpdate.md create mode 100644 documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md create mode 100644 documentation/models/CompanyBusinessHours.md create mode 100644 documentation/models/CompanyBusinessHoursScheduleInfo.md create mode 100644 documentation/models/CompanyBusinessHoursUpdateRequest.md create mode 100644 documentation/models/CompanyHoursOptions.md create mode 100644 documentation/models/CompanyPhoneNumberInfo.md create mode 100644 documentation/models/ConferencePhoneNumberInfo.md create mode 100644 documentation/models/ConferenceType.md create mode 100644 documentation/models/ContactAddressInfo.md create mode 100644 documentation/models/ContactAddressInfoResource.md create mode 100644 documentation/models/ContactBusinessAddressInfo.md create mode 100644 documentation/models/ContactCenterProvider.md create mode 100644 documentation/models/ContactInfo.md create mode 100644 documentation/models/ContactInfoCreationRequest.md create mode 100644 documentation/models/ContactInfoUpdateRequest.md create mode 100644 documentation/models/ContactList.md create mode 100644 documentation/models/ContactResource.md create mode 100644 documentation/models/ContactSubTypeEnum.md create mode 100644 documentation/models/ContentAttachment.md create mode 100644 documentation/models/ContentBodyFormatted.md create mode 100644 documentation/models/ContentBodyInputFormat.md create mode 100644 documentation/models/ContentComponents.md create mode 100644 documentation/models/ContentCreatedFrom.md create mode 100644 documentation/models/ContentDisposition.md create mode 100644 documentation/models/ContentList.md create mode 100644 documentation/models/ContentModel.md create mode 100644 documentation/models/ContentSourceType.md create mode 100644 documentation/models/ContentStatus.md create mode 100644 documentation/models/ContentType.md create mode 100644 documentation/models/ContractedCountryListResponse.md create mode 100644 documentation/models/ConversationInfo.md create mode 100644 documentation/models/ConversationalInsightsUnit.md create mode 100644 documentation/models/ConversationalInsightsUnitValues.md create mode 100644 documentation/models/CostCenterInfo.md create mode 100644 documentation/models/CostCenterResource.md create mode 100644 documentation/models/CountryInfoBasicModel.md create mode 100644 documentation/models/CountryInfoDictionaryModel.md create mode 100644 documentation/models/CountryInfoMinimalModel.md create mode 100644 documentation/models/CountryInfoShortModel.md create mode 100644 documentation/models/CountryListDictionaryModel.md create mode 100644 documentation/models/CreateAnsweringRuleForwardingNumberInfo.md create mode 100644 documentation/models/CreateAnsweringRuleRequest.md create mode 100644 documentation/models/CreateBridgeRequest.md create mode 100644 documentation/models/CreateCallMonitoringGroupRequest.md create mode 100644 documentation/models/CreateContentRequest.md create mode 100644 documentation/models/CreateConversationRequest.md create mode 100644 documentation/models/CreateDataExportTaskRequest.md create mode 100644 documentation/models/CreateFaxMessageRequest.md create mode 100644 documentation/models/CreateForwardingNumberDeviceInfo.md create mode 100644 documentation/models/CreateForwardingNumberRequest.md create mode 100644 documentation/models/CreateGlipFileNewRequest.md create mode 100644 documentation/models/CreateInternalTextMessageRequest.md create mode 100644 documentation/models/CreateIvrPromptRequest.md create mode 100644 documentation/models/CreateMessageStoreReportRequest.md create mode 100644 documentation/models/CreateMmsMessage.md create mode 100644 documentation/models/CreateMultipleSwitchesRequest.md create mode 100644 documentation/models/CreateMultipleSwitchesResponse.md create mode 100644 documentation/models/CreateMultipleWirelessPointsRequest.md create mode 100644 documentation/models/CreateMultipleWirelessPointsResponse.md create mode 100644 documentation/models/CreateNetworkRequest.md create mode 100644 documentation/models/CreateSipRegistrationRequest.md create mode 100644 documentation/models/CreateSipRegistrationResponse.md create mode 100644 documentation/models/CreateSiteRequest.md create mode 100644 documentation/models/CreateSmsMessage.md create mode 100644 documentation/models/CreateSubscriptionRequest.md create mode 100644 documentation/models/CreateSwitchInfo.md create mode 100644 documentation/models/CreateUserEmergencyLocationRequest.md create mode 100644 documentation/models/CreateUserMeetingProfileImageRequest.md create mode 100644 documentation/models/CreateUserProfileImageRequest.md create mode 100644 documentation/models/CreateWebhookSubscriptionRequest.md create mode 100644 documentation/models/CreateWirelessPoint.md create mode 100644 documentation/models/CreatorInfo.md create mode 100644 documentation/models/CurrencyInfo.md create mode 100644 documentation/models/CurrencyResource.md create mode 100644 documentation/models/CustomAnsweringRuleInfo.md create mode 100644 documentation/models/CustomCompanyGreetingInfo.md create mode 100644 documentation/models/CustomCompanyGreetingLanguageInfo.md create mode 100644 documentation/models/CustomFieldCreateRequest.md create mode 100644 documentation/models/CustomFieldInfo.md create mode 100644 documentation/models/CustomFieldList.md create mode 100644 documentation/models/CustomFieldModel.md create mode 100644 documentation/models/CustomFieldResource.md create mode 100644 documentation/models/CustomFieldUpdateRequest.md create mode 100644 documentation/models/CustomGreetingAnsweringRuleInfo.md create mode 100644 documentation/models/CustomGreetingInfoRequest.md create mode 100644 documentation/models/CustomUserGreetingInfo.md create mode 100644 documentation/models/DataExportTask.md create mode 100644 documentation/models/DataExportTaskContactInfo.md create mode 100644 documentation/models/DataExportTaskList.md create mode 100644 documentation/models/DayOfWeek.md create mode 100644 documentation/models/DefaultUserRole.md create mode 100644 documentation/models/DefaultUserRoleRequest.md create mode 100644 documentation/models/Delegate.md create mode 100644 documentation/models/DelegationTypeEnum.md create mode 100644 documentation/models/DelegatorsListResult.md create mode 100644 documentation/models/DeleteDeviceFromInventoryRequest.md create mode 100644 documentation/models/DeleteDeviceFromInventoryResponse.md create mode 100644 documentation/models/DeleteForwardingNumbersRequest.md create mode 100644 documentation/models/DeleteMessageByFilterType.md create mode 100644 documentation/models/DeletePhoneNumbersRequest.md create mode 100644 documentation/models/DeletePhoneNumbersRequestItem.md create mode 100644 documentation/models/DeletePhoneNumbersResponse.md create mode 100644 documentation/models/DeletePhoneNumbersResponseItem.md create mode 100644 documentation/models/DepartmentBulkAssignResource.md create mode 100644 documentation/models/DepartmentInfo.md create mode 100644 documentation/models/DepartmentMemberList.md create mode 100644 documentation/models/DetailedCallInfo.md create mode 100644 documentation/models/DeviceAddonInfo.md create mode 100644 documentation/models/DeviceDefinition.md create mode 100644 documentation/models/DeviceEmergencyInfo.md create mode 100644 documentation/models/DeviceEmergencyLocationInfo.md create mode 100644 documentation/models/DeviceEmergencyServiceAddressResourceAu.md create mode 100644 documentation/models/DeviceEmergencyServiceAddressResourceDefault.md create mode 100644 documentation/models/DeviceEmergencyServiceAddressResourceFr.md create mode 100644 documentation/models/DeviceExtensionInfo.md create mode 100644 documentation/models/DeviceFeatureEnum.md create mode 100644 documentation/models/DeviceInfoRequest.md create mode 100644 documentation/models/DeviceModelInfo.md create mode 100644 documentation/models/DevicePhoneLinesEmergencyAddressInfo.md create mode 100644 documentation/models/DevicePhoneLinesInfo.md create mode 100644 documentation/models/DevicePhoneNumberCountryInfo.md create mode 100644 documentation/models/DevicePhoneNumberInfo.md create mode 100644 documentation/models/DeviceProvisioningExtensionInfo.md create mode 100644 documentation/models/DeviceResource.md create mode 100644 documentation/models/DeviceSiteInfo.md create mode 100644 documentation/models/DeviceUpdateExtensionInfo.md create mode 100644 documentation/models/DeviceUpdatePhoneLinesInfo.md create mode 100644 documentation/models/DialInNumberResource.md create mode 100644 documentation/models/DiarizeInput.md create mode 100644 documentation/models/DiarizeSegment.md create mode 100644 documentation/models/DiarizedObject.md create mode 100644 documentation/models/DictionaryGreetingInfo.md create mode 100644 documentation/models/DictionaryGreetingList.md create mode 100644 documentation/models/DirectGrouping.md create mode 100644 documentation/models/Direction.md create mode 100644 documentation/models/DirectoryResource.md create mode 100644 documentation/models/DirectoryRoleResource.md create mode 100644 documentation/models/DisabledFilterInfo.md create mode 100644 documentation/models/DisplayModesEnum.md create mode 100644 documentation/models/EditPagingGroupRequest.md create mode 100644 documentation/models/EmailRecipientInfo.md create mode 100644 documentation/models/EmergencyAddress.md create mode 100644 documentation/models/EmergencyAddressAutoUpdateSiteInfo.md create mode 100644 documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md create mode 100644 documentation/models/EmergencyAddressInfo.md create mode 100644 documentation/models/EmergencyAddressStatus.md create mode 100644 documentation/models/EmergencyAddressType.md create mode 100644 documentation/models/EmergencyLocationInfo.md create mode 100644 documentation/models/EmergencyLocationRequestResource.md create mode 100644 documentation/models/EmergencyLocationResponseResource.md create mode 100644 documentation/models/EmergencyLocationUsageStatus.md create mode 100644 documentation/models/EmergencyLocationsPaging.md create mode 100644 documentation/models/EmergencyLocationsResource.md create mode 100644 documentation/models/EmergencyServiceAddressResource.md create mode 100644 documentation/models/EmergencyServiceAddressResourceRequest.md create mode 100644 documentation/models/EmotionSegment.md create mode 100644 documentation/models/EnrollmentInput.md create mode 100644 documentation/models/EnrollmentPatchInput.md create mode 100644 documentation/models/EnrollmentStatus.md create mode 100644 documentation/models/EnumeratedPagingModel.md create mode 100644 documentation/models/ErlLocationInfo.md create mode 100644 documentation/models/ErrorEntity.md create mode 100644 documentation/models/EventRecurrenceInfo.md create mode 100644 documentation/models/EveryoneCanControl.md create mode 100644 documentation/models/EveryoneTeamInfo.md create mode 100644 documentation/models/ExportTaskResultInfo.md create mode 100644 documentation/models/ExtensionBulkUpdateInfo.md create mode 100644 documentation/models/ExtensionBulkUpdateRequest.md create mode 100644 documentation/models/ExtensionBulkUpdateTaskResource.md create mode 100644 documentation/models/ExtensionBulkUpdateTaskResult.md create mode 100644 documentation/models/ExtensionCallQueuePresence.md create mode 100644 documentation/models/ExtensionCallQueuePresenceList.md create mode 100644 documentation/models/ExtensionCallQueueUpdatePresence.md create mode 100644 documentation/models/ExtensionCallQueueUpdatePresenceList.md create mode 100644 documentation/models/ExtensionCallerIdInfo.md create mode 100644 documentation/models/ExtensionCallerIdInfoRequest.md create mode 100644 documentation/models/ExtensionCountryInfoRequest.md create mode 100644 documentation/models/ExtensionCreationRequest.md create mode 100644 documentation/models/ExtensionCreationResponse.md create mode 100644 documentation/models/ExtensionCurrencyInfoRequest.md create mode 100644 documentation/models/ExtensionFilters.md create mode 100644 documentation/models/ExtensionFormattingLocaleInfoRequest.md create mode 100644 documentation/models/ExtensionGreetingLanguageInfoRequest.md create mode 100644 documentation/models/ExtensionInfo.md create mode 100644 documentation/models/ExtensionInfoCallLog.md create mode 100644 documentation/models/ExtensionInfoGrants.md create mode 100644 documentation/models/ExtensionInfoIntId.md create mode 100644 documentation/models/ExtensionLanguageInfoRequest.md create mode 100644 documentation/models/ExtensionPermissions.md create mode 100644 documentation/models/ExtensionRegionalSettingRequest.md create mode 100644 documentation/models/ExtensionServiceFeatureInfo.md create mode 100644 documentation/models/ExtensionShortInfoResource.md create mode 100644 documentation/models/ExtensionStatus.md create mode 100644 documentation/models/ExtensionStatusInfo.md create mode 100644 documentation/models/ExtensionTimezoneInfoRequest.md create mode 100644 documentation/models/ExtensionType.md create mode 100644 documentation/models/ExtensionUpdateRequest.md create mode 100644 documentation/models/ExtensionUpdateShortResult.md create mode 100644 documentation/models/ExtensionWithRolesCollectionResource.md create mode 100644 documentation/models/ExtensionWithRolesResource.md create mode 100644 documentation/models/ExternalIntegrationResource.md create mode 100644 documentation/models/FavoriteCollection.md create mode 100644 documentation/models/FavoriteContactList.md create mode 100644 documentation/models/FavoriteContactResource.md create mode 100644 documentation/models/FaxCoverPageInfo.md create mode 100644 documentation/models/FaxErrorCodeEnum.md create mode 100644 documentation/models/FaxRequestTo.md create mode 100644 documentation/models/FaxResolutionEnum.md create mode 100644 documentation/models/FaxResponse.md create mode 100644 documentation/models/FaxResponseTo.md create mode 100644 documentation/models/FeatureInfo.md create mode 100644 documentation/models/FeatureList.md create mode 100644 documentation/models/FederatedAccountResource.md create mode 100644 documentation/models/FederationResource.md create mode 100644 documentation/models/FederationType.md create mode 100644 documentation/models/FederationTypes.md create mode 100644 documentation/models/FixedAnswerModel.md create mode 100644 documentation/models/FixedOrderAgents.md create mode 100644 documentation/models/FixedOrderAgentsExtensionInfo.md create mode 100644 documentation/models/FormattingLocaleInfo.md create mode 100644 documentation/models/ForwardAllCallsReason.md create mode 100644 documentation/models/ForwardAllCompanyCallsInfo.md create mode 100644 documentation/models/ForwardAllCompanyCallsRequest.md create mode 100644 documentation/models/ForwardCallPartyResponse.md create mode 100644 documentation/models/ForwardTarget.md create mode 100644 documentation/models/ForwardingInfo.md create mode 100644 documentation/models/ForwardingInfoCreateRuleRequest.md create mode 100644 documentation/models/ForwardingNumberId.md create mode 100644 documentation/models/ForwardingNumberInfo.md create mode 100644 documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md create mode 100644 documentation/models/ForwardingNumberResource.md create mode 100644 documentation/models/ForwardingRuleCreateRequest.md create mode 100644 documentation/models/ForwardingRuleInfo.md create mode 100644 documentation/models/GetAccountInfoResponse.md create mode 100644 documentation/models/GetCallRecordingResponse.md create mode 100644 documentation/models/GetConferencingInfoResponse.md create mode 100644 documentation/models/GetCountryInfoNumberParser.md create mode 100644 documentation/models/GetExtensionAccountInfo.md create mode 100644 documentation/models/GetExtensionDevicesResponse.md create mode 100644 documentation/models/GetExtensionEmergencyLocationsOrderBy.md create mode 100644 documentation/models/GetExtensionForwardingNumberListResponse.md create mode 100644 documentation/models/GetExtensionGrantListResponse.md create mode 100644 documentation/models/GetExtensionInfoResponse.md create mode 100644 documentation/models/GetExtensionListInfoResponse.md create mode 100644 documentation/models/GetExtensionListResponse.md create mode 100644 documentation/models/GetExtensionPhoneNumbersResponse.md create mode 100644 documentation/models/GetInternalTextMessageInfoResponse.md create mode 100644 documentation/models/GetLocationDeletionMultiResponse.md create mode 100644 documentation/models/GetLocationListResponse.md create mode 100644 documentation/models/GetMessageInfoMultiResponse.md create mode 100644 documentation/models/GetMessageInfoResponse.md create mode 100644 documentation/models/GetMessageList.md create mode 100644 documentation/models/GetMessageSyncResponse.md create mode 100644 documentation/models/GetPresenceExtensionInfo.md create mode 100644 documentation/models/GetPresenceInfo.md create mode 100644 documentation/models/GetRingOutStatusResponse.md create mode 100644 documentation/models/GetSmsMessageInfoResponse.md create mode 100644 documentation/models/GetStateInfoResponse.md create mode 100644 documentation/models/GetStateListResponse.md create mode 100644 documentation/models/GetTimezoneInfoResponse.md create mode 100644 documentation/models/GetTimezoneListResponse.md create mode 100644 documentation/models/GetTokenRequest.md create mode 100644 documentation/models/GetUserBusinessHoursResponse.md create mode 100644 documentation/models/GlipDataExportNavigationInfo.md create mode 100644 documentation/models/GlipDataExportNavigationInfoUri.md create mode 100644 documentation/models/GlipDataExportPagingInfo.md create mode 100644 documentation/models/GlobalDialInCountryResponse.md create mode 100644 documentation/models/GrantInfo.md create mode 100644 documentation/models/GreetingInfo.md create mode 100644 documentation/models/GreetingLanguageInfo.md create mode 100644 documentation/models/GreetingResource.md create mode 100644 documentation/models/GreetingTypeEnum.md create mode 100644 documentation/models/GreetingsCreateCompanyGreetingRequest1.md create mode 100644 documentation/models/GreetingsCreateCompanyGreetingRequest2.md create mode 100644 documentation/models/GreetingsCreateCustomUserGreetingRequest1.md create mode 100644 documentation/models/GreetingsCreateCustomUserGreetingRequest2.md create mode 100644 documentation/models/GroupResource.md create mode 100644 documentation/models/GroupingByMembers.md create mode 100644 documentation/models/GroupingOptions.md create mode 100644 documentation/models/HoldCallPartyRequest.md create mode 100644 documentation/models/HorizontalAlignment.md create mode 100644 documentation/models/Host.md create mode 100644 documentation/models/HostInfoRequest.md create mode 100644 documentation/models/HostModel.md create mode 100644 documentation/models/HoursInterval.md create mode 100644 documentation/models/IdentifyInput.md create mode 100644 documentation/models/IdentitiesList.md create mode 100644 documentation/models/IdentityModel.md create mode 100644 documentation/models/IdentityType.md create mode 100644 documentation/models/IgnoreRequestBody.md create mode 100644 documentation/models/ImageFillMode.md create mode 100644 documentation/models/InboundFaxesInfo.md create mode 100644 documentation/models/InboundTextsInfo.md create mode 100644 documentation/models/InsightsEnum.md create mode 100644 documentation/models/InteractionInput.md create mode 100644 documentation/models/InteractionObject.md create mode 100644 documentation/models/Interval.md create mode 100644 documentation/models/InviteeListResource.md create mode 100644 documentation/models/InviteeModel.md create mode 100644 documentation/models/InviteeResource.md create mode 100644 documentation/models/IvrCallHandlingActionEnum.md create mode 100644 documentation/models/IvrMenuActionsInfo.md create mode 100644 documentation/models/IvrMenuExtensionInfo.md create mode 100644 documentation/models/IvrMenuInfo.md create mode 100644 documentation/models/IvrMenuList.md create mode 100644 documentation/models/IvrMenuListInfo.md create mode 100644 documentation/models/IvrMenuPromptInfo.md create mode 100644 documentation/models/IvrMenuSiteInfo.md create mode 100644 documentation/models/IvrPrompts.md create mode 100644 documentation/models/KeyInfo.md create mode 100644 documentation/models/LanguageInfo.md create mode 100644 documentation/models/LanguageList.md create mode 100644 documentation/models/LastModifiedByInfo.md create mode 100644 documentation/models/LinePooling.md create mode 100644 documentation/models/LinePoolingEnum.md create mode 100644 documentation/models/ListA2PBatchesStatus.md create mode 100644 documentation/models/ListA2PsmsView.md create mode 100644 documentation/models/ListAccountPhoneNumbersStatus.md create mode 100644 documentation/models/ListAccountPhoneNumbersUsageType.md create mode 100644 documentation/models/ListAnsweringRulesType.md create mode 100644 documentation/models/ListAnsweringRulesView.md create mode 100644 documentation/models/ListAutomaticLocationUpdatesUsersType.md create mode 100644 documentation/models/ListCallRecordingCustomGreetingsType.md create mode 100644 documentation/models/ListChatNotesNewStatus.md create mode 100644 documentation/models/ListChatTasksNewStatus.md create mode 100644 documentation/models/ListCompanyAnsweringRuleInfo.md create mode 100644 documentation/models/ListDataExportTasksNewStatus.md create mode 100644 documentation/models/ListDevicesAutomaticLocationUpdates.md create mode 100644 documentation/models/ListDirectoryEntriesType.md create mode 100644 documentation/models/ListEmergencyLocationsOrderBy.md create mode 100644 documentation/models/ListEnrolledSpeakers.md create mode 100644 documentation/models/ListExtensionDevicesType.md create mode 100644 documentation/models/ListExtensionPhoneNumbersStatus.md create mode 100644 documentation/models/ListExtensionPhoneNumbersUsageType.md create mode 100644 documentation/models/ListExtensionsStatus.md create mode 100644 documentation/models/ListExtensionsType.md create mode 100644 documentation/models/ListFaxCoverPagesResponse.md create mode 100644 documentation/models/ListGlipChatsNewType.md create mode 100644 documentation/models/ListLocationsOrderBy.md create mode 100644 documentation/models/ListMeetingRecordingsResponse.md create mode 100644 documentation/models/ListRecentChatsNewType.md create mode 100644 documentation/models/ListStandardGreetingsType.md create mode 100644 documentation/models/ListStandardGreetingsUsageType.md create mode 100644 documentation/models/ListUserTemplatesType.md create mode 100644 documentation/models/ListVideoMeetingsType.md create mode 100644 documentation/models/LocationDeletionErrorInfo.md create mode 100644 documentation/models/LocationDeletionInfo.md create mode 100644 documentation/models/LocationInfo.md create mode 100644 documentation/models/LocationOwnerInfo.md create mode 100644 documentation/models/LocationStateInfo.md create mode 100644 documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md create mode 100644 documentation/models/LockedByInfo.md create mode 100644 documentation/models/MakeCallOutCallerInfoRequestFrom.md create mode 100644 documentation/models/MakeCallOutCallerInfoRequestTo.md create mode 100644 documentation/models/MakeCallOutRequest.md create mode 100644 documentation/models/MakeRingOutCallerIdInfo.md create mode 100644 documentation/models/MakeRingOutCallerInfoRequestFrom.md create mode 100644 documentation/models/MakeRingOutCallerInfoRequestTo.md create mode 100644 documentation/models/MakeRingOutCountryInfo.md create mode 100644 documentation/models/MakeRingOutRequest.md create mode 100644 documentation/models/Meeting.md create mode 100644 documentation/models/MeetingExternalUserInfoResource.md create mode 100644 documentation/models/MeetingFrequency.md create mode 100644 documentation/models/MeetingInfo.md create mode 100644 documentation/models/MeetingLinks.md create mode 100644 documentation/models/MeetingOccurrenceInfo.md create mode 100644 documentation/models/MeetingPage.md create mode 100644 documentation/models/MeetingRecordingInfo.md create mode 100644 documentation/models/MeetingRecordings.md create mode 100644 documentation/models/MeetingRecordingsNavigationInfo.md create mode 100644 documentation/models/MeetingRecordingsNavigationInfoUri.md create mode 100644 documentation/models/MeetingRecordingsPagingInfo.md create mode 100644 documentation/models/MeetingRequestResource.md create mode 100644 documentation/models/MeetingResponseResource.md create mode 100644 documentation/models/MeetingScheduleResource.md create mode 100644 documentation/models/MeetingServiceInfoRequest.md create mode 100644 documentation/models/MeetingServiceInfoResource.md create mode 100644 documentation/models/MeetingUserSettingsResponse.md create mode 100644 documentation/models/MeetingsCountryResource.md create mode 100644 documentation/models/MeetingsNavigationInfo.md create mode 100644 documentation/models/MeetingsNavigationInfoUri.md create mode 100644 documentation/models/MeetingsPagingInfo.md create mode 100644 documentation/models/MeetingsResource.md create mode 100644 documentation/models/MeetingsTimezoneResource.md create mode 100644 documentation/models/MembersGroupingOptions.md create mode 100644 documentation/models/MessageAttachmentInfo.md create mode 100644 documentation/models/MessageAttachmentInfoIntId.md create mode 100644 documentation/models/MessageAttachmentTypeEnum.md create mode 100644 documentation/models/MessageAvailabilityEnum.md create mode 100644 documentation/models/MessageBatchCreateRequest.md create mode 100644 documentation/models/MessageBatchResponse.md create mode 100644 documentation/models/MessageCreateRequest.md create mode 100644 documentation/models/MessageDetailsResponse.md create mode 100644 documentation/models/MessageDirectionEnum.md create mode 100644 documentation/models/MessageListMessageResponse.md create mode 100644 documentation/models/MessageListResponse.md create mode 100644 documentation/models/MessagePriorityEnum.md create mode 100644 documentation/models/MessageReadStatusEnum.md create mode 100644 documentation/models/MessageStatusCounts.md create mode 100644 documentation/models/MessageStatusEnum.md create mode 100644 documentation/models/MessageStatusesResponse.md create mode 100644 documentation/models/MessageStoreCallerInfoRequest.md create mode 100644 documentation/models/MessageStoreCallerInfoResponseFrom.md create mode 100644 documentation/models/MessageStoreCallerInfoResponseTo.md create mode 100644 documentation/models/MessageStoreConfiguration.md create mode 100644 documentation/models/MessageStoreReport.md create mode 100644 documentation/models/MessageStoreReportArchive.md create mode 100644 documentation/models/MessageTemplateRequest.md create mode 100644 documentation/models/MessageTemplateResponse.md create mode 100644 documentation/models/MessageTemplatesListResponse.md create mode 100644 documentation/models/MessageTypeEnum.md create mode 100644 documentation/models/MessagingNavigationInfo.md create mode 100644 documentation/models/MessagingNavigationInfoUri.md create mode 100644 documentation/models/MessagingPagingInfo.md create mode 100644 documentation/models/MissedCallExtensionInfo.md create mode 100644 documentation/models/MissedCallExtensionInfoExternalNumber.md create mode 100644 documentation/models/MissedCallInfo.md create mode 100644 documentation/models/MissedCallsInfo.md create mode 100644 documentation/models/MobileDeliveryMode.md create mode 100644 documentation/models/MobileDeliveryModeRequest.md create mode 100644 documentation/models/ModelInfo.md create mode 100644 documentation/models/ModifyAccountBusinessAddressRequest.md create mode 100644 documentation/models/MonthlyWeek.md create mode 100644 documentation/models/NetworkInfo.md create mode 100644 documentation/models/NetworksList.md create mode 100644 documentation/models/NonEnumeratedPagingModel.md create mode 100644 documentation/models/NotificationDeliveryMode.md create mode 100644 documentation/models/NotificationDeliveryModeRequest.md create mode 100644 documentation/models/NotificationSettings.md create mode 100644 documentation/models/NotificationSettingsUpdateRequest.md create mode 100644 documentation/models/OnDemandResource.md create mode 100644 documentation/models/OperatorInfo.md create mode 100644 documentation/models/OptOutBulkAssignFailedEntry.md create mode 100644 documentation/models/OptOutBulkAssignRequest.md create mode 100644 documentation/models/OptOutBulkAssignResponse.md create mode 100644 documentation/models/OptOutListResponse.md create mode 100644 documentation/models/OptOutResponse.md create mode 100644 documentation/models/OrderBy.md create mode 100644 documentation/models/Origin.md create mode 100644 documentation/models/OriginInfo.md create mode 100644 documentation/models/OutboundFaxesInfo.md create mode 100644 documentation/models/OutboundProxyInfo.md create mode 100644 documentation/models/OwnerInfo.md create mode 100644 documentation/models/PackageInfo.md create mode 100644 documentation/models/PageNavigationModel.md create mode 100644 documentation/models/PageNavigationUri.md create mode 100644 documentation/models/PagerCallerInfoRequest.md create mode 100644 documentation/models/Paging.md create mode 100644 documentation/models/PagingDeviceInfo.md create mode 100644 documentation/models/PagingGroupExtensionInfo.md create mode 100644 documentation/models/PagingOnlyGroupDevices.md create mode 100644 documentation/models/PagingOnlyGroupUsers.md create mode 100644 documentation/models/PagingResource.md create mode 100644 documentation/models/PagingSchema.md create mode 100644 documentation/models/ParamsInfo.md create mode 100644 documentation/models/ParkInfo.md create mode 100644 documentation/models/ParsePhoneNumberRequest.md create mode 100644 documentation/models/ParsePhoneNumberResponse.md create mode 100644 documentation/models/Participant.md create mode 100644 documentation/models/ParticipantExtendedModel.md create mode 100644 documentation/models/ParticipantListResource.md create mode 100644 documentation/models/ParticipantReducedModel.md create mode 100644 documentation/models/PartyInfo.md create mode 100644 documentation/models/PartySuperviseRequest.md create mode 100644 documentation/models/PartySuperviseResponse.md create mode 100644 documentation/models/PartyUpdateInfo.md create mode 100644 documentation/models/PartyUpdateRequest.md create mode 100644 documentation/models/PatchMessageBulkRequest.md create mode 100644 documentation/models/PatchMessageRequest.md create mode 100644 documentation/models/PeerInfo.md create mode 100644 documentation/models/PermissionCategoryCollectionResource.md create mode 100644 documentation/models/PermissionCategoryIdResource.md create mode 100644 documentation/models/PermissionCategoryResource.md create mode 100644 documentation/models/PermissionCollectionResource.md create mode 100644 documentation/models/PermissionIdResource.md create mode 100644 documentation/models/PermissionInfoAdmin.md create mode 100644 documentation/models/PermissionInfoInt.md create mode 100644 documentation/models/PermissionResource.md create mode 100644 documentation/models/PermissionsCapabilities.md create mode 100644 documentation/models/PersonalContactRequest.md create mode 100644 documentation/models/PersonalContactResource.md create mode 100644 documentation/models/PhoneLineTypeEnum.md create mode 100644 documentation/models/PhoneLinesInfo.md create mode 100644 documentation/models/PhoneNumberCountryInfo.md create mode 100644 documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md create mode 100644 documentation/models/PhoneNumberDefinitionNumberId.md create mode 100644 documentation/models/PhoneNumberDefinitionPreferredAreaCode.md create mode 100644 documentation/models/PhoneNumberDefinitionTollType.md create mode 100644 documentation/models/PhoneNumberInfoConferencing.md create mode 100644 documentation/models/PhoneNumberInfoIntId.md create mode 100644 documentation/models/PhoneNumberInfoNumberParser.md create mode 100644 documentation/models/PhoneNumberResource.md create mode 100644 documentation/models/PhoneNumberStatus.md create mode 100644 documentation/models/PhoneNumberTollType.md create mode 100644 documentation/models/PhoneNumberType.md create mode 100644 documentation/models/PhoneNumberUsageType.md create mode 100644 documentation/models/PicMessageTypeEnum.md create mode 100644 documentation/models/PickupTarget.md create mode 100644 documentation/models/PlatformPaymentType.md create mode 100644 documentation/models/PostalAddress.md create mode 100644 documentation/models/PresenceCallQueueInfo.md create mode 100644 documentation/models/PresenceInfoRequest.md create mode 100644 documentation/models/PresenceInfoResponse.md create mode 100644 documentation/models/PresenceNavigationInfo.md create mode 100644 documentation/models/PresenceNavigationInfoUri.md create mode 100644 documentation/models/PresencePagingInfo.md create mode 100644 documentation/models/PresetInfo.md create mode 100644 documentation/models/PrimaryCqInfo.md create mode 100644 documentation/models/PrivateIpRangeInfo.md create mode 100644 documentation/models/PrivateIpRangeInfoRequest.md create mode 100644 documentation/models/ProfileImageInfo.md create mode 100644 documentation/models/ProfileImageInfoUri.md create mode 100644 documentation/models/PromptInfo.md create mode 100644 documentation/models/PromptLanguageInfo.md create mode 100644 documentation/models/PronouncedNameInfo.md create mode 100644 documentation/models/PronouncedNamePromptInfo.md create mode 100644 documentation/models/ProvisioningSiteInfo.md create mode 100644 documentation/models/PubNubDeliveryMode.md create mode 100644 documentation/models/PubNubDeliveryModeRequest.md create mode 100644 documentation/models/PublicIpRangeInfo.md create mode 100644 documentation/models/PublicMeetingInvitationResponse.md create mode 100644 documentation/models/PunctuateInput.md create mode 100644 documentation/models/PunctuateOutput.md create mode 100644 documentation/models/QueueInfo.md create mode 100644 documentation/models/QueueOpportunities.md create mode 100644 documentation/models/QueueOpportunitiesAggregationType.md create mode 100644 documentation/models/QueueShortInfoResource.md create mode 100644 documentation/models/QueueSlaOptions.md create mode 100644 documentation/models/RangesInfo.md create mode 100644 documentation/models/RcwDomainUserModel.md create mode 100644 documentation/models/RcwInviteeTypeEnum.md create mode 100644 documentation/models/RcwLinkedUserModel.md create mode 100644 documentation/models/RcwPagingForwardModel.md create mode 100644 documentation/models/RcwPagingModel.md create mode 100644 documentation/models/RcwResourceIdModel.md create mode 100644 documentation/models/RcwRoleEnum.md create mode 100644 documentation/models/RcwSessionStatusModel.md create mode 100644 documentation/models/ReadA2PsmsOptOutsStatus.md create mode 100644 documentation/models/ReadCompanyCallLogView.md create mode 100644 documentation/models/ReasonInfo.md create mode 100644 documentation/models/RecipientInfo.md create mode 100644 documentation/models/Recording.md create mode 100644 documentation/models/RecordingAdminExtendedItemModel.md create mode 100644 documentation/models/RecordingAdminListResource.md create mode 100644 documentation/models/RecordingAdminModel.md create mode 100644 documentation/models/RecordingDownloadModel.md create mode 100644 documentation/models/RecordingExtendedModel.md create mode 100644 documentation/models/RecordingInfo.md create mode 100644 documentation/models/RecordingItemExtendedModel.md create mode 100644 documentation/models/RecordingItemModel.md create mode 100644 documentation/models/RecordingListResource.md create mode 100644 documentation/models/RecordingMediaType.md create mode 100644 documentation/models/RecordingModel.md create mode 100644 documentation/models/RecordingStatusModel.md create mode 100644 documentation/models/RecordingType.md create mode 100644 documentation/models/RecordingsPreferences.md create mode 100644 documentation/models/RecurrenceInfo.md create mode 100644 documentation/models/ReferenceInfo.md create mode 100644 documentation/models/RegAnswerModel.md create mode 100644 documentation/models/RegSessionModel.md create mode 100644 documentation/models/RegionalLanguageInfo.md create mode 100644 documentation/models/RegionalSettings.md create mode 100644 documentation/models/RegistrantBaseModelWithQuestionnaire.md create mode 100644 documentation/models/RegistrantListResource.md create mode 100644 documentation/models/RegistrantModelResponsePostWithQuestionnaire.md create mode 100644 documentation/models/RegistrantModelWithQuestionnaire.md create mode 100644 documentation/models/RejectedRecipientResponseResource.md create mode 100644 documentation/models/RemoveLineRequest.md create mode 100644 documentation/models/RemoveLineResponse.md create mode 100644 documentation/models/ReplacePhoneNumberRequest.md create mode 100644 documentation/models/ReplyParty.md create mode 100644 documentation/models/ReplyWithPattern.md create mode 100644 documentation/models/ResponsePaging.md create mode 100644 documentation/models/RevokeTokenRequest.md create mode 100644 documentation/models/RingOutStatusInfo.md create mode 100644 documentation/models/RoleIdResource.md create mode 100644 documentation/models/RoleResource.md create mode 100644 documentation/models/Roles.md create mode 100644 documentation/models/RolesBusinessSiteResource.md create mode 100644 documentation/models/RolesCollectionResource.md create mode 100644 documentation/models/RolesCountryResource.md create mode 100644 documentation/models/RolesLanguageResource.md create mode 100644 documentation/models/RolesRegionalSettingsResource.md create mode 100644 documentation/models/RolesTimezoneResource.md create mode 100644 documentation/models/ScaleSize.md create mode 100644 documentation/models/ScheduleInfo.md create mode 100644 documentation/models/ScheduleInfoUserBusinessHours.md create mode 100644 documentation/models/ScheduleMeetingResponse.md create mode 100644 documentation/models/ScheduleUserMeetingInfo.md create mode 100644 documentation/models/ScimAuthenticationScheme.md create mode 100644 documentation/models/ScimBulkSupported.md create mode 100644 documentation/models/ScimEmail.md create mode 100644 documentation/models/ScimEnterpriseUser.md create mode 100644 documentation/models/ScimFilterSupported.md create mode 100644 documentation/models/ScimMeta.md create mode 100644 documentation/models/ScimName.md create mode 100644 documentation/models/ScimPatchOperation.md create mode 100644 documentation/models/ScimPhoneNumber.md create mode 100644 documentation/models/ScimPhoto.md create mode 100644 documentation/models/ScimProviderConfig.md create mode 100644 documentation/models/ScimResourceTypeResponse.md create mode 100644 documentation/models/ScimResourceTypeSearchResponse.md create mode 100644 documentation/models/ScimSchemaAttribute.md create mode 100644 documentation/models/ScimSchemaExtension.md create mode 100644 documentation/models/ScimSchemaResponse.md create mode 100644 documentation/models/ScimSchemaSearchResponse.md create mode 100644 documentation/models/ScimSearchRequest.md create mode 100644 documentation/models/ScimSupported.md create mode 100644 documentation/models/ScimUser.md create mode 100644 documentation/models/ScimUserAddress.md create mode 100644 documentation/models/ScimUserPatch.md create mode 100644 documentation/models/ScimUserResponse.md create mode 100644 documentation/models/ScimUserSearchResponse.md create mode 100644 documentation/models/SearchDirectoryContactType.md create mode 100644 documentation/models/SearchDirectoryEntriesRequest.md create mode 100644 documentation/models/SearchDirectoryExtensionType.md create mode 100644 documentation/models/SendWelcomeEmailV2Request.md create mode 100644 documentation/models/ServiceFeatureInfo.md create mode 100644 documentation/models/ServiceInfo.md create mode 100644 documentation/models/ServiceInfoBrand.md create mode 100644 documentation/models/ServiceInfoCountryShortModel.md create mode 100644 documentation/models/ServiceInfoPackage.md create mode 100644 documentation/models/ServiceInfoPlan.md create mode 100644 documentation/models/ServiceInfoUBrand.md create mode 100644 documentation/models/ServiceInfoV2.md create mode 100644 documentation/models/ServicePlanInfo.md create mode 100644 documentation/models/SessionGlobalListEntry.md create mode 100644 documentation/models/SessionGlobalListResource.md create mode 100644 documentation/models/SessionGlobalResource.md create mode 100644 documentation/models/SessionLivestreamMinimalModel.md create mode 100644 documentation/models/SessionLivestreamStatusModel.md create mode 100644 documentation/models/SessionRefAdminModel.md create mode 100644 documentation/models/SessionRefModel.md create mode 100644 documentation/models/SessionResource.md create mode 100644 documentation/models/SessionRuntimeStatusModel.md create mode 100644 documentation/models/SetupWizardStateEnum.md create mode 100644 documentation/models/SetupWizardStateForUpdateEnum.md create mode 100644 documentation/models/SharedLinesInfo.md create mode 100644 documentation/models/ShippingAddressInfo.md create mode 100644 documentation/models/ShippingInfo.md create mode 100644 documentation/models/ShippingMethodInfo.md create mode 100644 documentation/models/ShippingStatus.md create mode 100644 documentation/models/ShortSiteInfo.md create mode 100644 documentation/models/SignupInfoResource.md create mode 100644 documentation/models/SipFlagsResponse.md create mode 100644 documentation/models/SipInfoRequest.md create mode 100644 documentation/models/SipInfoResource.md create mode 100644 documentation/models/SipInfoResponse.md create mode 100644 documentation/models/SipRegistrationDeviceEmergencyInfo.md create mode 100644 documentation/models/SipRegistrationDeviceInfo.md create mode 100644 documentation/models/SipRegistrationDeviceLocationInfo.md create mode 100644 documentation/models/Site.md create mode 100644 documentation/models/SiteBasicInfo.md create mode 100644 documentation/models/SiteInfo.md create mode 100644 documentation/models/SiteIvrActions.md create mode 100644 documentation/models/SiteIvrActionsExtensionInfo.md create mode 100644 documentation/models/SiteIvrActionsExtensionInfoUpdate.md create mode 100644 documentation/models/SiteIvrActionsUpdate.md create mode 100644 documentation/models/SiteIvrSettings.md create mode 100644 documentation/models/SiteIvrSettingsUpdate.md create mode 100644 documentation/models/SiteIvrTopMenu.md create mode 100644 documentation/models/SiteIvrTopMenuUpdate.md create mode 100644 documentation/models/SiteMemberInfo.md create mode 100644 documentation/models/SiteMembersBulkUpdate.md create mode 100644 documentation/models/SiteMembersList.md create mode 100644 documentation/models/SiteOperatorReference.md create mode 100644 documentation/models/SiteReference.md create mode 100644 documentation/models/SiteResource.md create mode 100644 documentation/models/SiteUpdateRequest.md create mode 100644 documentation/models/SitesList.md create mode 100644 documentation/models/SmsDirectionEnum.md create mode 100644 documentation/models/SmsRequestCountryInfo.md create mode 100644 documentation/models/SmsStatusEnum.md create mode 100644 documentation/models/SocMsgCreationTimeOrder.md create mode 100644 documentation/models/SocMsgGender.md create mode 100644 documentation/models/SortBy.md create mode 100644 documentation/models/SpeakerIdentificationObject.md create mode 100644 documentation/models/SpeakerInsightsObject.md create mode 100644 documentation/models/SpeakerInsightsUnit.md create mode 100644 documentation/models/SpeakerInsightsValuesItems.md create mode 100644 documentation/models/SpecificInfo.md create mode 100644 documentation/models/SpeechContextPhrasesInput.md create mode 100644 documentation/models/StatusGroup.md create mode 100644 documentation/models/SubscriptionInfo.md create mode 100644 documentation/models/SubscriptionListResource.md create mode 100644 documentation/models/SummaryInput.md create mode 100644 documentation/models/SummaryOutput.md create mode 100644 documentation/models/SummaryOutputUnit.md create mode 100644 documentation/models/SummaryTimingsUnit.md create mode 100644 documentation/models/SummaryUnit.md create mode 100644 documentation/models/SuperviseCallSessionRequest.md create mode 100644 documentation/models/SuperviseCallSessionResponse.md create mode 100644 documentation/models/SwapDeviceRequest.md create mode 100644 documentation/models/SwitchInfo.md create mode 100644 documentation/models/SwitchSiteInfo.md create mode 100644 documentation/models/SwitchValidated.md create mode 100644 documentation/models/SwitchesList.md create mode 100644 documentation/models/SyncAccountCallLogSyncType.md create mode 100644 documentation/models/SyncAddressBookSyncType.md create mode 100644 documentation/models/SyncInfo.md create mode 100644 documentation/models/SyncInfoMessages.md create mode 100644 documentation/models/SyncStatus.md create mode 100644 documentation/models/SyncTypeEnum.md create mode 100644 documentation/models/SystemUserContactInfo.md create mode 100644 documentation/models/TargetServicePlanInfo.md create mode 100644 documentation/models/TaskAttachment.md create mode 100644 documentation/models/TaskRecurrenceInfo.md create mode 100644 documentation/models/TaskResultInfo.md create mode 100644 documentation/models/TaskResultRecord.md create mode 100644 documentation/models/TaskResultRecordErrorsInfo.md create mode 100644 documentation/models/TelephonyUserMeetingSettings.md create mode 100644 documentation/models/TemplateInfo.md create mode 100644 documentation/models/TemporaryNumberInfo.md create mode 100644 documentation/models/TimeInterval.md create mode 100644 documentation/models/TimeRange.md create mode 100644 documentation/models/TimeSettings.md create mode 100644 documentation/models/TimeSpentFilter.md create mode 100644 documentation/models/TimelineRequest.md create mode 100644 documentation/models/TimelineResponse.md create mode 100644 documentation/models/TimelineResponseData.md create mode 100644 documentation/models/TimelineResponseOptions.md create mode 100644 documentation/models/TimelineResponseOptionsCounters.md create mode 100644 documentation/models/TimelineResponseOptionsTimers.md create mode 100644 documentation/models/TimelineResponsePoint.md create mode 100644 documentation/models/TimelineResponseRecord.md create mode 100644 documentation/models/TimezoneInfo.md create mode 100644 documentation/models/TmAddFileRequest.md create mode 100644 documentation/models/TmAddTeamMembersRequest.md create mode 100644 documentation/models/TmAttachmentAuthorInfo.md create mode 100644 documentation/models/TmAttachmentFieldsInfo.md create mode 100644 documentation/models/TmAttachmentFootnoteInfo.md create mode 100644 documentation/models/TmAttachmentInfo.md create mode 100644 documentation/models/TmChatInfo.md create mode 100644 documentation/models/TmChatList.md create mode 100644 documentation/models/TmChatListWithoutNavigation.md create mode 100644 documentation/models/TmChatMemberInfo.md create mode 100644 documentation/models/TmCompanyInfo.md create mode 100644 documentation/models/TmCompleteTaskRequest.md create mode 100644 documentation/models/TmConversationInfo.md create mode 100644 documentation/models/TmConversationList.md create mode 100644 documentation/models/TmCreateEventRequest.md create mode 100644 documentation/models/TmCreateNoteRequest.md create mode 100644 documentation/models/TmCreatePostRequest.md create mode 100644 documentation/models/TmCreateTaskRequest.md create mode 100644 documentation/models/TmCreateTeamRequest.md create mode 100644 documentation/models/TmCreatorInfo.md create mode 100644 documentation/models/TmEventInfo.md create mode 100644 documentation/models/TmEventList.md create mode 100644 documentation/models/TmMentionsInfo.md create mode 100644 documentation/models/TmMessageAttachmentInfo.md create mode 100644 documentation/models/TmNavigationInfo.md create mode 100644 documentation/models/TmNoteInfo.md create mode 100644 documentation/models/TmNoteList.md create mode 100644 documentation/models/TmNoteWithBodyInfo.md create mode 100644 documentation/models/TmPersonInfo.md create mode 100644 documentation/models/TmPostInfo.md create mode 100644 documentation/models/TmPostsList.md create mode 100644 documentation/models/TmRemoveTeamMembersRequest.md create mode 100644 documentation/models/TmTaskInfo.md create mode 100644 documentation/models/TmTaskList.md create mode 100644 documentation/models/TmTeamInfo.md create mode 100644 documentation/models/TmTeamList.md create mode 100644 documentation/models/TmUpdatePostRequest.md create mode 100644 documentation/models/TmUpdateTaskRequest.md create mode 100644 documentation/models/TmUpdateTeamRequest.md create mode 100644 documentation/models/TmWebhookInfo.md create mode 100644 documentation/models/TmWebhookList.md create mode 100644 documentation/models/TokenInfo.md create mode 100644 documentation/models/TranscribedObject.md create mode 100644 documentation/models/TransferExtensionInfo.md create mode 100644 documentation/models/TransferInfo.md create mode 100644 documentation/models/TransferTarget.md create mode 100644 documentation/models/TransferredExtension.md create mode 100644 documentation/models/TransferredExtensionInfo.md create mode 100644 documentation/models/TypeGroup.md create mode 100644 documentation/models/UBrandInfo.md create mode 100644 documentation/models/UnconditionalForwardingInfo.md create mode 100644 documentation/models/UnifiedPresence.md create mode 100644 documentation/models/UnifiedPresenceGlip.md create mode 100644 documentation/models/UnifiedPresenceListEntry.md create mode 100644 documentation/models/UnifiedPresenceMeeting.md create mode 100644 documentation/models/UnifiedPresenceTelephony.md create mode 100644 documentation/models/UpdateAnsweringRuleRequest.md create mode 100644 documentation/models/UpdateBridgeRequest.md create mode 100644 documentation/models/UpdateConferencingInfoRequest.md create mode 100644 documentation/models/UpdateDevicePhoneInfo.md create mode 100644 documentation/models/UpdateEveryoneTeamRequest.md create mode 100644 documentation/models/UpdateForwardingNumberRequest.md create mode 100644 documentation/models/UpdateInviteeRequest.md create mode 100644 documentation/models/UpdateIvrPromptRequest.md create mode 100644 documentation/models/UpdateMessageBulkRequest.md create mode 100644 documentation/models/UpdateMessageRequest.md create mode 100644 documentation/models/UpdateMultipleSwitchesRequest.md create mode 100644 documentation/models/UpdateMultipleSwitchesResponse.md create mode 100644 documentation/models/UpdateMultipleWirelessPointsRequest.md create mode 100644 documentation/models/UpdateMultipleWirelessPointsResponse.md create mode 100644 documentation/models/UpdateNetworkRequest.md create mode 100644 documentation/models/UpdateSubscriptionRequest.md create mode 100644 documentation/models/UpdateSwitchInfo.md create mode 100644 documentation/models/UpdateUnifiedPresence.md create mode 100644 documentation/models/UpdateUnifiedPresenceGlip.md create mode 100644 documentation/models/UpdateUnifiedPresenceTelephony.md create mode 100644 documentation/models/UpdateUserProfileImageRequest.md create mode 100644 documentation/models/UpdateWirelessPoint.md create mode 100644 documentation/models/UsageStatus.md create mode 100644 documentation/models/User.md create mode 100644 documentation/models/UserAnsweringRuleList.md create mode 100644 documentation/models/UserBusinessHoursScheduleInfo.md create mode 100644 documentation/models/UserBusinessHoursUpdateRequest.md create mode 100644 documentation/models/UserBusinessHoursUpdateResponse.md create mode 100644 documentation/models/UserCallQueues.md create mode 100644 documentation/models/UserContactsGroupsInfo.md create mode 100644 documentation/models/UserContactsNavigationInfo.md create mode 100644 documentation/models/UserContactsNavigationInfoUri.md create mode 100644 documentation/models/UserContactsPagingInfo.md create mode 100644 documentation/models/UserInMeetingResponse.md create mode 100644 documentation/models/UserMeetingRecordingSetting.md create mode 100644 documentation/models/UserPhoneNumberExtensionInfo.md create mode 100644 documentation/models/UserPhoneNumberInfo.md create mode 100644 documentation/models/UserTemplates.md create mode 100644 documentation/models/UserTransitionInfo.md create mode 100644 documentation/models/UserVideoConfiguration.md create mode 100644 documentation/models/UtteranceInsightsObject.md create mode 100644 documentation/models/UtteranceInsightsUnit.md create mode 100644 documentation/models/UtteranceObject.md create mode 100644 documentation/models/ValidateMultipleSwitchesRequest.md create mode 100644 documentation/models/ValidateMultipleSwitchesResponse.md create mode 100644 documentation/models/ValidateMultipleWirelessPointsRequest.md create mode 100644 documentation/models/ValidateMultipleWirelessPointsResponse.md create mode 100644 documentation/models/ValidationError.md create mode 100644 documentation/models/ValueType.md create mode 100644 documentation/models/VariableAnswerModel.md create mode 100644 documentation/models/VerticalAlignment.md create mode 100644 documentation/models/VerticalContentAlignment.md create mode 100644 documentation/models/Visibility.md create mode 100644 documentation/models/VisibilityType.md create mode 100644 documentation/models/VoicemailInfo.md create mode 100644 documentation/models/VoicemailsInfo.md create mode 100644 documentation/models/WcsHostModel.md create mode 100644 documentation/models/WcsInviteeListResource.md create mode 100644 documentation/models/WcsSessionGlobalListResource.md create mode 100644 documentation/models/WcsSessionResource.md create mode 100644 documentation/models/WcsSessionStatusModel.md create mode 100644 documentation/models/WcsSessionWithLocaleCodeModel.md create mode 100644 documentation/models/WcsWebinarRefModel.md create mode 100644 documentation/models/WcsWebinarResource.md create mode 100644 documentation/models/WcsWebinarSettingsModel.md create mode 100644 documentation/models/WebSocketDeliveryMode.md create mode 100644 documentation/models/WebhookDeliveryMode.md create mode 100644 documentation/models/WebhookDeliveryModeRequest.md create mode 100644 documentation/models/WebinarBaseModel.md create mode 100644 documentation/models/WebinarCreationRequest.md create mode 100644 documentation/models/WebinarListResource.md create mode 100644 documentation/models/WebinarRefModel.md create mode 100644 documentation/models/WebinarResource.md create mode 100644 documentation/models/WebinarSettingsModel.md create mode 100644 documentation/models/WeekDay.md create mode 100644 documentation/models/WeeklyScheduleInfo.md create mode 100644 documentation/models/WirelessPointInfo.md create mode 100644 documentation/models/WirelessPointValidated.md create mode 100644 documentation/models/WirelessPointsList.md create mode 100644 documentation/models/WordSegment.md create mode 100644 documentation/models/WordTimingsUnit.md create mode 100644 documentation/services/AdaptiveCardsService.md create mode 100644 documentation/services/ApiInfoService.md create mode 100644 documentation/services/AudioService.md create mode 100644 documentation/services/AuditTrailService.md create mode 100644 documentation/services/AutomaticLocationUpdatesService.md create mode 100644 documentation/services/BridgeManagementService.md create mode 100644 documentation/services/BusinessAnalyticsService.md create mode 100644 documentation/services/BusinessHoursService.md create mode 100644 documentation/services/CalendarEventsService.md create mode 100644 documentation/services/CallBlockingService.md create mode 100644 documentation/services/CallControlService.md create mode 100644 documentation/services/CallForwardingService.md create mode 100644 documentation/services/CallHandlingRulesService.md create mode 100644 documentation/services/CallLogService.md create mode 100644 documentation/services/CallMonitoringGroupsService.md create mode 100644 documentation/services/CallQueuesService.md create mode 100644 documentation/services/CallRecordingSettingsService.md create mode 100644 documentation/services/CallRecordingsService.md create mode 100644 documentation/services/ChatsService.md create mode 100644 documentation/services/CompanyService.md create mode 100644 documentation/services/ComplianceExportsService.md create mode 100644 documentation/services/ContentsService.md create mode 100644 documentation/services/ConversationsService.md create mode 100644 documentation/services/CustomFieldsService.md create mode 100644 documentation/services/DelegationManagementService.md create mode 100644 documentation/services/DeviceSipRegistrationService.md create mode 100644 documentation/services/DevicesService.md create mode 100644 documentation/services/ExtensionsService.md create mode 100644 documentation/services/ExternalContactsService.md create mode 100644 documentation/services/FaxService.md create mode 100644 documentation/services/FeaturesService.md create mode 100644 documentation/services/GreetingsService.md create mode 100644 documentation/services/HighVolumeSmsService.md create mode 100644 documentation/services/HistoricalRecordingsService.md create mode 100644 documentation/services/HistoricalWebinarsService.md create mode 100644 documentation/services/IdentitiesService.md create mode 100644 documentation/services/IncomingWebhooksService.md create mode 100644 documentation/services/InsightsService.md create mode 100644 documentation/services/InternalContactsService.md create mode 100644 documentation/services/InviteesService.md create mode 100644 documentation/services/IvrService.md create mode 100644 documentation/services/MeetingRecordingsService.md create mode 100644 documentation/services/MeetingsHistoryService.md create mode 100644 documentation/services/MessageExportsService.md create mode 100644 documentation/services/MessageStoreService.md create mode 100644 documentation/services/MultiSiteService.md create mode 100644 documentation/services/NotesService.md create mode 100644 documentation/services/OAuth2_0OpenIdConnectService.md create mode 100644 documentation/services/PagerMessagesService.md create mode 100644 documentation/services/PagingOnlyGroupsService.md create mode 100644 documentation/services/PhoneNumbersService.md create mode 100644 documentation/services/PostsService.md create mode 100644 documentation/services/PresenceService.md create mode 100644 documentation/services/ProfileService.md create mode 100644 documentation/services/RcmMeetingsLegacyService.md create mode 100644 documentation/services/RegionalSettingsService.md create mode 100644 documentation/services/RegistrantsService.md create mode 100644 documentation/services/RegistrationManagementService.md create mode 100644 documentation/services/RingOutService.md create mode 100644 documentation/services/RoleManagementService.md create mode 100644 documentation/services/ScimService.md create mode 100644 documentation/services/SiteAdministrationService.md create mode 100644 documentation/services/SmsService.md create mode 100644 documentation/services/SmsTemplatesService.md create mode 100644 documentation/services/StatusService.md create mode 100644 documentation/services/SubscriptionsService.md create mode 100644 documentation/services/TasksService.md create mode 100644 documentation/services/TeamsService.md create mode 100644 documentation/services/TextService.md create mode 100644 documentation/services/UserPermissionsService.md create mode 100644 documentation/services/UserSettingsService.md create mode 100644 documentation/services/VideoConfigurationService.md create mode 100644 documentation/services/WebinarSubscriptionsService.md create mode 100644 documentation/services/WebinarsAndSessionsService.md create mode 100644 examples/.env.example create mode 100644 examples/install.cmd create mode 100644 examples/install.sh create mode 100644 examples/sample.py create mode 100644 install.cmd create mode 100644 install.sh create mode 100644 pyproject.toml create mode 100644 src/ring_central/__init__.py create mode 100644 src/ring_central/hooks/__init__.py create mode 100644 src/ring_central/hooks/hook.py create mode 100644 src/ring_central/models/__init__.py create mode 100644 src/ring_central/models/account_business_address_resource.py create mode 100644 src/ring_central/models/account_device_update.py create mode 100644 src/ring_central/models/account_directory_profile_image_resource.py create mode 100644 src/ring_central/models/account_history_paging.py create mode 100644 src/ring_central/models/account_history_public_record.py create mode 100644 src/ring_central/models/account_history_record_details_parameters.py create mode 100644 src/ring_central/models/account_history_record_public_details.py create mode 100644 src/ring_central/models/account_history_record_public_initiator.py create mode 100644 src/ring_central/models/account_history_record_target.py create mode 100644 src/ring_central/models/account_history_search_public_request.py create mode 100644 src/ring_central/models/account_history_search_public_response.py create mode 100644 src/ring_central/models/account_info.py create mode 100644 src/ring_central/models/account_limits.py create mode 100644 src/ring_central/models/account_lock_setting_record_response.py create mode 100644 src/ring_central/models/account_locked_setting_response.py create mode 100644 src/ring_central/models/account_operator_info.py create mode 100644 src/ring_central/models/account_phone_number_info.py create mode 100644 src/ring_central/models/account_phone_number_list.py create mode 100644 src/ring_central/models/account_phone_numbers.py create mode 100644 src/ring_central/models/account_presence_info.py create mode 100644 src/ring_central/models/account_regional_settings.py create mode 100644 src/ring_central/models/account_resource.py create mode 100644 src/ring_central/models/account_service_info.py create mode 100644 src/ring_central/models/account_status_info.py create mode 100644 src/ring_central/models/action_adaptive_card_info.py create mode 100644 src/ring_central/models/action_card_body.py create mode 100644 src/ring_central/models/active_call_info.py create mode 100644 src/ring_central/models/active_permission_resource.py create mode 100644 src/ring_central/models/adaptive_card_action.py create mode 100644 src/ring_central/models/adaptive_card_column_info.py create mode 100644 src/ring_central/models/adaptive_card_column_item_info.py create mode 100644 src/ring_central/models/adaptive_card_creator.py create mode 100644 src/ring_central/models/adaptive_card_info.py create mode 100644 src/ring_central/models/adaptive_card_info_request.py create mode 100644 src/ring_central/models/adaptive_card_info_request_item.py create mode 100644 src/ring_central/models/adaptive_card_request.py create mode 100644 src/ring_central/models/adaptive_card_select_action.py create mode 100644 src/ring_central/models/adaptive_card_short_info.py create mode 100644 src/ring_central/models/add_blocked_allowed_phone_number.py create mode 100644 src/ring_central/models/add_device_to_inventory_request.py create mode 100644 src/ring_central/models/add_device_to_inventory_response.py create mode 100644 src/ring_central/models/add_invitee_request.py create mode 100644 src/ring_central/models/add_party_request.py create mode 100644 src/ring_central/models/add_phone_number_request_item.py create mode 100644 src/ring_central/models/add_phone_numbers_request.py create mode 100644 src/ring_central/models/add_phone_numbers_response.py create mode 100644 src/ring_central/models/add_phone_numbers_response_item.py create mode 100644 src/ring_central/models/add_phone_numbers_task.py create mode 100644 src/ring_central/models/additional_cq_info.py create mode 100644 src/ring_central/models/addon_info.py create mode 100644 src/ring_central/models/address_book_bulk_contact_address_info.py create mode 100644 src/ring_central/models/address_book_bulk_contact_resource.py create mode 100644 src/ring_central/models/address_book_bulk_upload_request.py create mode 100644 src/ring_central/models/address_book_bulk_upload_resource.py create mode 100644 src/ring_central/models/address_book_bulk_upload_response.py create mode 100644 src/ring_central/models/address_book_bulk_upload_task_result.py create mode 100644 src/ring_central/models/address_book_sync.py create mode 100644 src/ring_central/models/address_status.py create mode 100644 src/ring_central/models/advanced_time_settings.py create mode 100644 src/ring_central/models/aggregation_interval.py create mode 100644 src/ring_central/models/aggregation_request.py create mode 100644 src/ring_central/models/aggregation_response.py create mode 100644 src/ring_central/models/aggregation_response_data.py create mode 100644 src/ring_central/models/aggregation_response_options.py create mode 100644 src/ring_central/models/aggregation_response_options_counters.py create mode 100644 src/ring_central/models/aggregation_response_options_timers.py create mode 100644 src/ring_central/models/aggregation_response_record.py create mode 100644 src/ring_central/models/aggregation_type.py create mode 100644 src/ring_central/models/all_calls.py create mode 100644 src/ring_central/models/answer_target.py create mode 100644 src/ring_central/models/answering_rule_info.py create mode 100644 src/ring_central/models/answering_rule_query_request.py create mode 100644 src/ring_central/models/api_error_with_parameter.py create mode 100644 src/ring_central/models/api_version_info.py create mode 100644 src/ring_central/models/api_versions_list.py create mode 100644 src/ring_central/models/archive_info.py create mode 100644 src/ring_central/models/asr_input.py create mode 100644 src/ring_central/models/assign_multiple_devices_automatic_location_updates.py create mode 100644 src/ring_central/models/assign_phone_number_request.py create mode 100644 src/ring_central/models/assigned_country_info.py create mode 100644 src/ring_central/models/assigned_role_resource.py create mode 100644 src/ring_central/models/assigned_roles_resource.py create mode 100644 src/ring_central/models/assignee_status.py create mode 100644 src/ring_central/models/assignment_status.py create mode 100644 src/ring_central/models/assistant_resource.py create mode 100644 src/ring_central/models/assistants_resource.py create mode 100644 src/ring_central/models/assisted_user_resource.py create mode 100644 src/ring_central/models/assisted_users_resource.py create mode 100644 src/ring_central/models/audio_prompt_info.py create mode 100644 src/ring_central/models/auth_profile_check_resource.py create mode 100644 src/ring_central/models/auth_profile_resource.py create mode 100644 src/ring_central/models/authorization_type.py create mode 100644 src/ring_central/models/authorize_request.py create mode 100644 src/ring_central/models/authorize_response_type.py create mode 100644 src/ring_central/models/auto_shared.py create mode 100644 src/ring_central/models/automatic_location_updates_device_info.py create mode 100644 src/ring_central/models/automatic_location_updates_device_type.py create mode 100644 src/ring_central/models/automatic_location_updates_model_feature.py create mode 100644 src/ring_central/models/automatic_location_updates_model_info.py create mode 100644 src/ring_central/models/automatic_location_updates_phone_line.py create mode 100644 src/ring_central/models/automatic_location_updates_phone_line_type.py create mode 100644 src/ring_central/models/automatic_location_updates_phone_number_info.py create mode 100644 src/ring_central/models/automatic_location_updates_site_info.py create mode 100644 src/ring_central/models/automatic_location_updates_task_info.py create mode 100644 src/ring_central/models/automatic_location_updates_user_info.py create mode 100644 src/ring_central/models/automatic_location_updates_user_list.py create mode 100644 src/ring_central/models/automatic_recording_resource.py create mode 100644 src/ring_central/models/background_image.py create mode 100644 src/ring_central/models/base.py create mode 100644 src/ring_central/models/basic_extension_info_resource.py create mode 100644 src/ring_central/models/batch_list_response.py create mode 100644 src/ring_central/models/batch_provision_error_item.py create mode 100644 src/ring_central/models/batch_provision_users_request.py create mode 100644 src/ring_central/models/batch_provision_users_request_item.py create mode 100644 src/ring_central/models/batch_provision_users_response.py create mode 100644 src/ring_central/models/batch_provision_users_success_item.py create mode 100644 src/ring_central/models/billing_info.py create mode 100644 src/ring_central/models/billing_plan_info.py create mode 100644 src/ring_central/models/billing_statement_charges.py create mode 100644 src/ring_central/models/billing_statement_fees.py create mode 100644 src/ring_central/models/billing_statement_info.py create mode 100644 src/ring_central/models/blocked_allowed_phone_number_info.py create mode 100644 src/ring_central/models/blocked_allowed_phone_numbers_list.py create mode 100644 src/ring_central/models/blocked_caller_greeting_info.py create mode 100644 src/ring_central/models/blocked_number_status_enum.py create mode 100644 src/ring_central/models/brand_info.py create mode 100644 src/ring_central/models/bridge_discovery.py create mode 100644 src/ring_central/models/bridge_join_preferences.py create mode 100644 src/ring_central/models/bridge_join_pstn_preferences.py create mode 100644 src/ring_central/models/bridge_pins.py create mode 100644 src/ring_central/models/bridge_pins_with_aliases.py create mode 100644 src/ring_central/models/bridge_pins_without_pstn.py create mode 100644 src/ring_central/models/bridge_preferences.py create mode 100644 src/ring_central/models/bridge_pstn_pins.py create mode 100644 src/ring_central/models/bridge_request_security.py create mode 100644 src/ring_central/models/bridge_response.py create mode 100644 src/ring_central/models/bridge_response_security.py create mode 100644 src/ring_central/models/bridge_response_security_password.py create mode 100644 src/ring_central/models/bridge_target_request.py create mode 100644 src/ring_central/models/bulk_account_call_recordings_resource.py create mode 100644 src/ring_central/models/bulk_add_devices_error_item.py create mode 100644 src/ring_central/models/bulk_add_devices_item.py create mode 100644 src/ring_central/models/bulk_add_devices_request.py create mode 100644 src/ring_central/models/bulk_add_devices_response.py create mode 100644 src/ring_central/models/bulk_add_devices_success_item.py create mode 100644 src/ring_central/models/bulk_assign_item.py create mode 100644 src/ring_central/models/bulk_delete_users_request.py create mode 100644 src/ring_central/models/bulk_delete_users_response.py create mode 100644 src/ring_central/models/bulk_operation_extension_reference.py create mode 100644 src/ring_central/models/bulk_role_assign_resource.py create mode 100644 src/ring_central/models/bulk_task_info.py create mode 100644 src/ring_central/models/bulk_update_invitees_request.py create mode 100644 src/ring_central/models/bulk_update_invitees_response.py create mode 100644 src/ring_central/models/business_address_info.py create mode 100644 src/ring_central/models/business_site_collection_request.py create mode 100644 src/ring_central/models/business_site_collection_resource.py create mode 100644 src/ring_central/models/business_site_resource.py create mode 100644 src/ring_central/models/cai_async_api_response.py create mode 100644 src/ring_central/models/cai_error_code_response.py create mode 100644 src/ring_central/models/cai_error_response.py create mode 100644 src/ring_central/models/call_action.py create mode 100644 src/ring_central/models/call_action_enum.py create mode 100644 src/ring_central/models/call_direction_enum.py create mode 100644 src/ring_central/models/call_duration_filter.py create mode 100644 src/ring_central/models/call_filters.py create mode 100644 src/ring_central/models/call_info_cq.py create mode 100644 src/ring_central/models/call_internal_type_enum.py create mode 100644 src/ring_central/models/call_leg_type_enum.py create mode 100644 src/ring_central/models/call_log_delegate_info.py create mode 100644 src/ring_central/models/call_log_from_party.py create mode 100644 src/ring_central/models/call_log_record.py create mode 100644 src/ring_central/models/call_log_record_device_info.py create mode 100644 src/ring_central/models/call_log_record_leg_info.py create mode 100644 src/ring_central/models/call_log_record_message.py create mode 100644 src/ring_central/models/call_log_recording_info.py create mode 100644 src/ring_central/models/call_log_response.py create mode 100644 src/ring_central/models/call_log_sync_info.py create mode 100644 src/ring_central/models/call_log_sync_response.py create mode 100644 src/ring_central/models/call_log_sync_type_enum.py create mode 100644 src/ring_central/models/call_log_to_party.py create mode 100644 src/ring_central/models/call_monitoring_bulk_assign.py create mode 100644 src/ring_central/models/call_monitoring_extension_info.py create mode 100644 src/ring_central/models/call_monitoring_group.py create mode 100644 src/ring_central/models/call_monitoring_group_member_info.py create mode 100644 src/ring_central/models/call_monitoring_group_member_list.py create mode 100644 src/ring_central/models/call_monitoring_groups.py create mode 100644 src/ring_central/models/call_party.py create mode 100644 src/ring_central/models/call_party_flip.py create mode 100644 src/ring_central/models/call_party_reply.py create mode 100644 src/ring_central/models/call_queue_bulk_assign_resource.py create mode 100644 src/ring_central/models/call_queue_details.py create mode 100644 src/ring_central/models/call_queue_extension_info.py create mode 100644 src/ring_central/models/call_queue_id.py create mode 100644 src/ring_central/models/call_queue_id_resource.py create mode 100644 src/ring_central/models/call_queue_info.py create mode 100644 src/ring_central/models/call_queue_info_request.py create mode 100644 src/ring_central/models/call_queue_member.py create mode 100644 src/ring_central/models/call_queue_member_id.py create mode 100644 src/ring_central/models/call_queue_member_info.py create mode 100644 src/ring_central/models/call_queue_member_presence.py create mode 100644 src/ring_central/models/call_queue_members.py create mode 100644 src/ring_central/models/call_queue_overflow_settings.py create mode 100644 src/ring_central/models/call_queue_overflow_settings_request_resource.py create mode 100644 src/ring_central/models/call_queue_presence.py create mode 100644 src/ring_central/models/call_queue_resource.py create mode 100644 src/ring_central/models/call_queue_service_level_settings.py create mode 100644 src/ring_central/models/call_queue_update_member_presence.py create mode 100644 src/ring_central/models/call_queue_update_presence.py create mode 100644 src/ring_central/models/call_queues.py create mode 100644 src/ring_central/models/call_recording.py create mode 100644 src/ring_central/models/call_recording_custom_greeting.py create mode 100644 src/ring_central/models/call_recording_custom_greeting_data.py create mode 100644 src/ring_central/models/call_recording_custom_greeting_language.py create mode 100644 src/ring_central/models/call_recording_custom_greetings.py create mode 100644 src/ring_central/models/call_recording_extension_info.py create mode 100644 src/ring_central/models/call_recording_extension_resource.py create mode 100644 src/ring_central/models/call_recording_extensions.py create mode 100644 src/ring_central/models/call_recording_ids.py create mode 100644 src/ring_central/models/call_recording_settings_resource.py create mode 100644 src/ring_central/models/call_recording_update.py create mode 100644 src/ring_central/models/call_response.py create mode 100644 src/ring_central/models/call_result.py create mode 100644 src/ring_central/models/call_result_enum.py create mode 100644 src/ring_central/models/call_result_reason_enum.py create mode 100644 src/ring_central/models/call_segment_filter.py create mode 100644 src/ring_central/models/call_segment_length_filter.py create mode 100644 src/ring_central/models/call_segment_options.py create mode 100644 src/ring_central/models/call_session.py create mode 100644 src/ring_central/models/call_session_object.py create mode 100644 src/ring_central/models/call_status_info.py create mode 100644 src/ring_central/models/call_transport_enum.py create mode 100644 src/ring_central/models/call_type.py create mode 100644 src/ring_central/models/call_type_enum.py create mode 100644 src/ring_central/models/called_number_info.py create mode 100644 src/ring_central/models/caller_blocking_settings.py create mode 100644 src/ring_central/models/caller_blocking_settings_update.py create mode 100644 src/ring_central/models/caller_id_by_device.py create mode 100644 src/ring_central/models/caller_id_by_device_info.py create mode 100644 src/ring_central/models/caller_id_by_device_info_request.py create mode 100644 src/ring_central/models/caller_id_by_device_request.py create mode 100644 src/ring_central/models/caller_id_by_feature.py create mode 100644 src/ring_central/models/caller_id_by_feature_info.py create mode 100644 src/ring_central/models/caller_id_by_feature_info_request.py create mode 100644 src/ring_central/models/caller_id_by_feature_request.py create mode 100644 src/ring_central/models/caller_id_device_info.py create mode 100644 src/ring_central/models/caller_id_device_info_request.py create mode 100644 src/ring_central/models/caller_id_phone_info.py create mode 100644 src/ring_central/models/caller_id_phone_info_request.py create mode 100644 src/ring_central/models/callers_info.py create mode 100644 src/ring_central/models/callers_info_request.py create mode 100644 src/ring_central/models/calls_by_actions.py create mode 100644 src/ring_central/models/calls_by_actions_breakdown.py create mode 100644 src/ring_central/models/calls_by_company_hours.py create mode 100644 src/ring_central/models/calls_by_company_hours_breakdown.py create mode 100644 src/ring_central/models/calls_by_direction.py create mode 100644 src/ring_central/models/calls_by_direction_breakdown.py create mode 100644 src/ring_central/models/calls_by_origin.py create mode 100644 src/ring_central/models/calls_by_origin_breakdown.py create mode 100644 src/ring_central/models/calls_by_queue_sla.py create mode 100644 src/ring_central/models/calls_by_queue_sla_breakdown.py create mode 100644 src/ring_central/models/calls_by_response.py create mode 100644 src/ring_central/models/calls_by_response_breakdown.py create mode 100644 src/ring_central/models/calls_by_result.py create mode 100644 src/ring_central/models/calls_by_result_breakdown.py create mode 100644 src/ring_central/models/calls_by_segments.py create mode 100644 src/ring_central/models/calls_by_segments_breakdown.py create mode 100644 src/ring_central/models/calls_by_type.py create mode 100644 src/ring_central/models/calls_by_type_breakdown.py create mode 100644 src/ring_central/models/calls_counters.py create mode 100644 src/ring_central/models/calls_timers.py create mode 100644 src/ring_central/models/cloud_recording.py create mode 100644 src/ring_central/models/cloud_recordings.py create mode 100644 src/ring_central/models/code_challenge_method_enum.py create mode 100644 src/ring_central/models/common_emergency_location_address_info.py create mode 100644 src/ring_central/models/common_emergency_location_address_info_au.py create mode 100644 src/ring_central/models/common_emergency_location_address_info_default.py create mode 100644 src/ring_central/models/common_emergency_location_address_info_fr.py create mode 100644 src/ring_central/models/common_emergency_location_resource.py create mode 100644 src/ring_central/models/company_answering_rule_called_number_info.py create mode 100644 src/ring_central/models/company_answering_rule_called_number_info_request.py create mode 100644 src/ring_central/models/company_answering_rule_callers_info_request.py create mode 100644 src/ring_central/models/company_answering_rule_extension_info.py create mode 100644 src/ring_central/models/company_answering_rule_extension_info_request.py create mode 100644 src/ring_central/models/company_answering_rule_info.py create mode 100644 src/ring_central/models/company_answering_rule_list.py create mode 100644 src/ring_central/models/company_answering_rule_request.py create mode 100644 src/ring_central/models/company_answering_rule_schedule_info.py create mode 100644 src/ring_central/models/company_answering_rule_schedule_info_request.py create mode 100644 src/ring_central/models/company_answering_rule_time_interval_request.py create mode 100644 src/ring_central/models/company_answering_rule_update.py create mode 100644 src/ring_central/models/company_answering_rule_weekly_schedule_info_request.py create mode 100644 src/ring_central/models/company_business_hours.py create mode 100644 src/ring_central/models/company_business_hours_schedule_info.py create mode 100644 src/ring_central/models/company_business_hours_update_request.py create mode 100644 src/ring_central/models/company_hours_options.py create mode 100644 src/ring_central/models/company_phone_number_info.py create mode 100644 src/ring_central/models/conference_phone_number_info.py create mode 100644 src/ring_central/models/conference_type.py create mode 100644 src/ring_central/models/contact_address_info.py create mode 100644 src/ring_central/models/contact_address_info_resource.py create mode 100644 src/ring_central/models/contact_business_address_info.py create mode 100644 src/ring_central/models/contact_center_provider.py create mode 100644 src/ring_central/models/contact_info.py create mode 100644 src/ring_central/models/contact_info_creation_request.py create mode 100644 src/ring_central/models/contact_info_update_request.py create mode 100644 src/ring_central/models/contact_list.py create mode 100644 src/ring_central/models/contact_resource.py create mode 100644 src/ring_central/models/contact_sub_type_enum.py create mode 100644 src/ring_central/models/content_attachment.py create mode 100644 src/ring_central/models/content_body_formatted.py create mode 100644 src/ring_central/models/content_body_input_format.py create mode 100644 src/ring_central/models/content_components.py create mode 100644 src/ring_central/models/content_created_from.py create mode 100644 src/ring_central/models/content_disposition.py create mode 100644 src/ring_central/models/content_list.py create mode 100644 src/ring_central/models/content_model.py create mode 100644 src/ring_central/models/content_source_type.py create mode 100644 src/ring_central/models/content_status.py create mode 100644 src/ring_central/models/content_type.py create mode 100644 src/ring_central/models/contracted_country_list_response.py create mode 100644 src/ring_central/models/conversation_info.py create mode 100644 src/ring_central/models/conversational_insights_unit.py create mode 100644 src/ring_central/models/conversational_insights_unit_values.py create mode 100644 src/ring_central/models/cost_center_info.py create mode 100644 src/ring_central/models/cost_center_resource.py create mode 100644 src/ring_central/models/country_info_basic_model.py create mode 100644 src/ring_central/models/country_info_dictionary_model.py create mode 100644 src/ring_central/models/country_info_minimal_model.py create mode 100644 src/ring_central/models/country_info_short_model.py create mode 100644 src/ring_central/models/country_list_dictionary_model.py create mode 100644 src/ring_central/models/create_answering_rule_forwarding_number_info.py create mode 100644 src/ring_central/models/create_answering_rule_request.py create mode 100644 src/ring_central/models/create_bridge_request.py create mode 100644 src/ring_central/models/create_call_monitoring_group_request.py create mode 100644 src/ring_central/models/create_content_request.py create mode 100644 src/ring_central/models/create_conversation_request.py create mode 100644 src/ring_central/models/create_data_export_task_request.py create mode 100644 src/ring_central/models/create_fax_message_request.py create mode 100644 src/ring_central/models/create_forwarding_number_device_info.py create mode 100644 src/ring_central/models/create_forwarding_number_request.py create mode 100644 src/ring_central/models/create_glip_file_new_request.py create mode 100644 src/ring_central/models/create_internal_text_message_request.py create mode 100644 src/ring_central/models/create_ivr_prompt_request.py create mode 100644 src/ring_central/models/create_message_store_report_request.py create mode 100644 src/ring_central/models/create_mms_message.py create mode 100644 src/ring_central/models/create_multiple_switches_request.py create mode 100644 src/ring_central/models/create_multiple_switches_response.py create mode 100644 src/ring_central/models/create_multiple_wireless_points_request.py create mode 100644 src/ring_central/models/create_multiple_wireless_points_response.py create mode 100644 src/ring_central/models/create_network_request.py create mode 100644 src/ring_central/models/create_sip_registration_request.py create mode 100644 src/ring_central/models/create_sip_registration_response.py create mode 100644 src/ring_central/models/create_site_request.py create mode 100644 src/ring_central/models/create_sms_message.py create mode 100644 src/ring_central/models/create_subscription_request.py create mode 100644 src/ring_central/models/create_switch_info.py create mode 100644 src/ring_central/models/create_user_emergency_location_request.py create mode 100644 src/ring_central/models/create_user_meeting_profile_image_request.py create mode 100644 src/ring_central/models/create_user_profile_image_request.py create mode 100644 src/ring_central/models/create_webhook_subscription_request.py create mode 100644 src/ring_central/models/create_wireless_point.py create mode 100644 src/ring_central/models/creator_info.py create mode 100644 src/ring_central/models/currency_info.py create mode 100644 src/ring_central/models/currency_resource.py create mode 100644 src/ring_central/models/custom_answering_rule_info.py create mode 100644 src/ring_central/models/custom_company_greeting_info.py create mode 100644 src/ring_central/models/custom_company_greeting_language_info.py create mode 100644 src/ring_central/models/custom_field_create_request.py create mode 100644 src/ring_central/models/custom_field_info.py create mode 100644 src/ring_central/models/custom_field_list.py create mode 100644 src/ring_central/models/custom_field_model.py create mode 100644 src/ring_central/models/custom_field_resource.py create mode 100644 src/ring_central/models/custom_field_update_request.py create mode 100644 src/ring_central/models/custom_greeting_answering_rule_info.py create mode 100644 src/ring_central/models/custom_greeting_info_request.py create mode 100644 src/ring_central/models/custom_user_greeting_info.py create mode 100644 src/ring_central/models/data_export_task.py create mode 100644 src/ring_central/models/data_export_task_contact_info.py create mode 100644 src/ring_central/models/data_export_task_list.py create mode 100644 src/ring_central/models/day_of_week.py create mode 100644 src/ring_central/models/default_user_role.py create mode 100644 src/ring_central/models/default_user_role_request.py create mode 100644 src/ring_central/models/delegate.py create mode 100644 src/ring_central/models/delegation_type_enum.py create mode 100644 src/ring_central/models/delegators_list_result.py create mode 100644 src/ring_central/models/delete_device_from_inventory_request.py create mode 100644 src/ring_central/models/delete_device_from_inventory_response.py create mode 100644 src/ring_central/models/delete_forwarding_numbers_request.py create mode 100644 src/ring_central/models/delete_message_by_filter_type.py create mode 100644 src/ring_central/models/delete_phone_numbers_request.py create mode 100644 src/ring_central/models/delete_phone_numbers_request_item.py create mode 100644 src/ring_central/models/delete_phone_numbers_response.py create mode 100644 src/ring_central/models/delete_phone_numbers_response_item.py create mode 100644 src/ring_central/models/department_bulk_assign_resource.py create mode 100644 src/ring_central/models/department_info.py create mode 100644 src/ring_central/models/department_member_list.py create mode 100644 src/ring_central/models/detailed_call_info.py create mode 100644 src/ring_central/models/device_addon_info.py create mode 100644 src/ring_central/models/device_definition.py create mode 100644 src/ring_central/models/device_emergency_info.py create mode 100644 src/ring_central/models/device_emergency_location_info.py create mode 100644 src/ring_central/models/device_emergency_service_address_resource_au.py create mode 100644 src/ring_central/models/device_emergency_service_address_resource_default.py create mode 100644 src/ring_central/models/device_emergency_service_address_resource_fr.py create mode 100644 src/ring_central/models/device_extension_info.py create mode 100644 src/ring_central/models/device_feature_enum.py create mode 100644 src/ring_central/models/device_info_request.py create mode 100644 src/ring_central/models/device_model_info.py create mode 100644 src/ring_central/models/device_phone_lines_emergency_address_info.py create mode 100644 src/ring_central/models/device_phone_lines_info.py create mode 100644 src/ring_central/models/device_phone_number_country_info.py create mode 100644 src/ring_central/models/device_phone_number_info.py create mode 100644 src/ring_central/models/device_provisioning_extension_info.py create mode 100644 src/ring_central/models/device_resource.py create mode 100644 src/ring_central/models/device_site_info.py create mode 100644 src/ring_central/models/device_update_extension_info.py create mode 100644 src/ring_central/models/device_update_phone_lines_info.py create mode 100644 src/ring_central/models/dial_in_number_resource.py create mode 100644 src/ring_central/models/diarize_input.py create mode 100644 src/ring_central/models/diarize_segment.py create mode 100644 src/ring_central/models/diarized_object.py create mode 100644 src/ring_central/models/dictionary_greeting_info.py create mode 100644 src/ring_central/models/dictionary_greeting_list.py create mode 100644 src/ring_central/models/direct_grouping.py create mode 100644 src/ring_central/models/direction.py create mode 100644 src/ring_central/models/directory_resource.py create mode 100644 src/ring_central/models/directory_role_resource.py create mode 100644 src/ring_central/models/disabled_filter_info.py create mode 100644 src/ring_central/models/display_modes_enum.py create mode 100644 src/ring_central/models/edit_paging_group_request.py create mode 100644 src/ring_central/models/email_recipient_info.py create mode 100644 src/ring_central/models/emergency_address.py create mode 100644 src/ring_central/models/emergency_address_auto_update_site_info.py create mode 100644 src/ring_central/models/emergency_address_auto_update_users_bulk_assign_resource.py create mode 100644 src/ring_central/models/emergency_address_info.py create mode 100644 src/ring_central/models/emergency_address_status.py create mode 100644 src/ring_central/models/emergency_address_type.py create mode 100644 src/ring_central/models/emergency_location_info.py create mode 100644 src/ring_central/models/emergency_location_request_resource.py create mode 100644 src/ring_central/models/emergency_location_response_resource.py create mode 100644 src/ring_central/models/emergency_location_usage_status.py create mode 100644 src/ring_central/models/emergency_locations_paging.py create mode 100644 src/ring_central/models/emergency_locations_resource.py create mode 100644 src/ring_central/models/emergency_service_address_resource.py create mode 100644 src/ring_central/models/emergency_service_address_resource_request.py create mode 100644 src/ring_central/models/emotion_segment.py create mode 100644 src/ring_central/models/enrollment_input.py create mode 100644 src/ring_central/models/enrollment_patch_input.py create mode 100644 src/ring_central/models/enrollment_status.py create mode 100644 src/ring_central/models/enumerated_paging_model.py create mode 100644 src/ring_central/models/erl_location_info.py create mode 100644 src/ring_central/models/error_entity.py create mode 100644 src/ring_central/models/event_recurrence_info.py create mode 100644 src/ring_central/models/everyone_can_control.py create mode 100644 src/ring_central/models/everyone_team_info.py create mode 100644 src/ring_central/models/export_task_result_info.py create mode 100644 src/ring_central/models/extension_bulk_update_info.py create mode 100644 src/ring_central/models/extension_bulk_update_request.py create mode 100644 src/ring_central/models/extension_bulk_update_task_resource.py create mode 100644 src/ring_central/models/extension_bulk_update_task_result.py create mode 100644 src/ring_central/models/extension_call_queue_presence.py create mode 100644 src/ring_central/models/extension_call_queue_presence_list.py create mode 100644 src/ring_central/models/extension_call_queue_update_presence.py create mode 100644 src/ring_central/models/extension_call_queue_update_presence_list.py create mode 100644 src/ring_central/models/extension_caller_id_info.py create mode 100644 src/ring_central/models/extension_caller_id_info_request.py create mode 100644 src/ring_central/models/extension_country_info_request.py create mode 100644 src/ring_central/models/extension_creation_request.py create mode 100644 src/ring_central/models/extension_creation_response.py create mode 100644 src/ring_central/models/extension_currency_info_request.py create mode 100644 src/ring_central/models/extension_filters.py create mode 100644 src/ring_central/models/extension_formatting_locale_info_request.py create mode 100644 src/ring_central/models/extension_greeting_language_info_request.py create mode 100644 src/ring_central/models/extension_info.py create mode 100644 src/ring_central/models/extension_info_call_log.py create mode 100644 src/ring_central/models/extension_info_grants.py create mode 100644 src/ring_central/models/extension_info_int_id.py create mode 100644 src/ring_central/models/extension_language_info_request.py create mode 100644 src/ring_central/models/extension_permissions.py create mode 100644 src/ring_central/models/extension_regional_setting_request.py create mode 100644 src/ring_central/models/extension_service_feature_info.py create mode 100644 src/ring_central/models/extension_short_info_resource.py create mode 100644 src/ring_central/models/extension_status.py create mode 100644 src/ring_central/models/extension_status_info.py create mode 100644 src/ring_central/models/extension_timezone_info_request.py create mode 100644 src/ring_central/models/extension_type.py create mode 100644 src/ring_central/models/extension_update_request.py create mode 100644 src/ring_central/models/extension_update_short_result.py create mode 100644 src/ring_central/models/extension_with_roles_collection_resource.py create mode 100644 src/ring_central/models/extension_with_roles_resource.py create mode 100644 src/ring_central/models/external_integration_resource.py create mode 100644 src/ring_central/models/favorite_collection.py create mode 100644 src/ring_central/models/favorite_contact_list.py create mode 100644 src/ring_central/models/favorite_contact_resource.py create mode 100644 src/ring_central/models/fax_cover_page_info.py create mode 100644 src/ring_central/models/fax_error_code_enum.py create mode 100644 src/ring_central/models/fax_request_to.py create mode 100644 src/ring_central/models/fax_resolution_enum.py create mode 100644 src/ring_central/models/fax_response.py create mode 100644 src/ring_central/models/fax_response_to.py create mode 100644 src/ring_central/models/feature_info.py create mode 100644 src/ring_central/models/feature_list.py create mode 100644 src/ring_central/models/federated_account_resource.py create mode 100644 src/ring_central/models/federation_resource.py create mode 100644 src/ring_central/models/federation_type.py create mode 100644 src/ring_central/models/federation_types.py create mode 100644 src/ring_central/models/fixed_answer_model.py create mode 100644 src/ring_central/models/fixed_order_agents.py create mode 100644 src/ring_central/models/fixed_order_agents_extension_info.py create mode 100644 src/ring_central/models/formatting_locale_info.py create mode 100644 src/ring_central/models/forward_all_calls_reason.py create mode 100644 src/ring_central/models/forward_all_company_calls_info.py create mode 100644 src/ring_central/models/forward_all_company_calls_request.py create mode 100644 src/ring_central/models/forward_call_party_response.py create mode 100644 src/ring_central/models/forward_target.py create mode 100644 src/ring_central/models/forwarding_info.py create mode 100644 src/ring_central/models/forwarding_info_create_rule_request.py create mode 100644 src/ring_central/models/forwarding_number_id.py create mode 100644 src/ring_central/models/forwarding_number_info.py create mode 100644 src/ring_central/models/forwarding_number_info_rules_create_rule_request.py create mode 100644 src/ring_central/models/forwarding_number_resource.py create mode 100644 src/ring_central/models/forwarding_rule_create_request.py create mode 100644 src/ring_central/models/forwarding_rule_info.py create mode 100644 src/ring_central/models/get_account_info_response.py create mode 100644 src/ring_central/models/get_bulk_add_task_results_v2_ok_response.py create mode 100644 src/ring_central/models/get_call_recording_response.py create mode 100644 src/ring_central/models/get_conferencing_info_response.py create mode 100644 src/ring_central/models/get_country_info_number_parser.py create mode 100644 src/ring_central/models/get_extension_account_info.py create mode 100644 src/ring_central/models/get_extension_devices_response.py create mode 100644 src/ring_central/models/get_extension_emergency_locations_order_by.py create mode 100644 src/ring_central/models/get_extension_forwarding_number_list_response.py create mode 100644 src/ring_central/models/get_extension_grant_list_response.py create mode 100644 src/ring_central/models/get_extension_info_response.py create mode 100644 src/ring_central/models/get_extension_list_info_response.py create mode 100644 src/ring_central/models/get_extension_list_response.py create mode 100644 src/ring_central/models/get_extension_phone_numbers_response.py create mode 100644 src/ring_central/models/get_internal_text_message_info_response.py create mode 100644 src/ring_central/models/get_location_deletion_multi_response.py create mode 100644 src/ring_central/models/get_location_list_response.py create mode 100644 src/ring_central/models/get_message_info_multi_response.py create mode 100644 src/ring_central/models/get_message_info_response.py create mode 100644 src/ring_central/models/get_message_list.py create mode 100644 src/ring_central/models/get_message_sync_response.py create mode 100644 src/ring_central/models/get_presence_extension_info.py create mode 100644 src/ring_central/models/get_presence_info.py create mode 100644 src/ring_central/models/get_ring_out_status_response.py create mode 100644 src/ring_central/models/get_sms_message_info_response.py create mode 100644 src/ring_central/models/get_state_info_response.py create mode 100644 src/ring_central/models/get_state_list_response.py create mode 100644 src/ring_central/models/get_timezone_info_response.py create mode 100644 src/ring_central/models/get_timezone_list_response.py create mode 100644 src/ring_central/models/get_token_request.py create mode 100644 src/ring_central/models/get_user_business_hours_response.py create mode 100644 src/ring_central/models/glip_data_export_navigation_info.py create mode 100644 src/ring_central/models/glip_data_export_navigation_info_uri.py create mode 100644 src/ring_central/models/glip_data_export_paging_info.py create mode 100644 src/ring_central/models/global_dial_in_country_response.py create mode 100644 src/ring_central/models/grant_info.py create mode 100644 src/ring_central/models/greeting_info.py create mode 100644 src/ring_central/models/greeting_language_info.py create mode 100644 src/ring_central/models/greeting_resource.py create mode 100644 src/ring_central/models/greeting_type_enum.py create mode 100644 src/ring_central/models/greetings_create_company_greeting_request_1.py create mode 100644 src/ring_central/models/greetings_create_company_greeting_request_2.py create mode 100644 src/ring_central/models/greetings_create_custom_user_greeting_request_1.py create mode 100644 src/ring_central/models/greetings_create_custom_user_greeting_request_2.py create mode 100644 src/ring_central/models/group_resource.py create mode 100644 src/ring_central/models/grouping.py create mode 100644 src/ring_central/models/grouping_by_members.py create mode 100644 src/ring_central/models/grouping_options.py create mode 100644 src/ring_central/models/hold_call_party_request.py create mode 100644 src/ring_central/models/horizontal_alignment.py create mode 100644 src/ring_central/models/host.py create mode 100644 src/ring_central/models/host_info_request.py create mode 100644 src/ring_central/models/host_model.py create mode 100644 src/ring_central/models/hours_interval.py create mode 100644 src/ring_central/models/identify_input.py create mode 100644 src/ring_central/models/identities_list.py create mode 100644 src/ring_central/models/identity_model.py create mode 100644 src/ring_central/models/identity_type.py create mode 100644 src/ring_central/models/ignore_request_body.py create mode 100644 src/ring_central/models/image_fill_mode.py create mode 100644 src/ring_central/models/inbound_faxes_info.py create mode 100644 src/ring_central/models/inbound_texts_info.py create mode 100644 src/ring_central/models/insights_enum.py create mode 100644 src/ring_central/models/interaction_input.py create mode 100644 src/ring_central/models/interaction_object.py create mode 100644 src/ring_central/models/interval.py create mode 100644 src/ring_central/models/invitee_list_resource.py create mode 100644 src/ring_central/models/invitee_model.py create mode 100644 src/ring_central/models/invitee_resource.py create mode 100644 src/ring_central/models/ivr_call_handling_action_enum.py create mode 100644 src/ring_central/models/ivr_menu_actions_info.py create mode 100644 src/ring_central/models/ivr_menu_extension_info.py create mode 100644 src/ring_central/models/ivr_menu_info.py create mode 100644 src/ring_central/models/ivr_menu_list.py create mode 100644 src/ring_central/models/ivr_menu_list_info.py create mode 100644 src/ring_central/models/ivr_menu_prompt_info.py create mode 100644 src/ring_central/models/ivr_menu_site_info.py create mode 100644 src/ring_central/models/ivr_prompts.py create mode 100644 src/ring_central/models/job_status_response.py create mode 100644 src/ring_central/models/key_info.py create mode 100644 src/ring_central/models/language_info.py create mode 100644 src/ring_central/models/language_list.py create mode 100644 src/ring_central/models/last_modified_by_info.py create mode 100644 src/ring_central/models/line_pooling.py create mode 100644 src/ring_central/models/line_pooling_enum.py create mode 100644 src/ring_central/models/list_a2_p_batches_status.py create mode 100644 src/ring_central/models/list_a2_psms_view.py create mode 100644 src/ring_central/models/list_account_phone_numbers_status.py create mode 100644 src/ring_central/models/list_account_phone_numbers_usage_type.py create mode 100644 src/ring_central/models/list_answering_rules_type.py create mode 100644 src/ring_central/models/list_answering_rules_view.py create mode 100644 src/ring_central/models/list_automatic_location_updates_users_type.py create mode 100644 src/ring_central/models/list_call_recording_custom_greetings_type.py create mode 100644 src/ring_central/models/list_chat_notes_new_status.py create mode 100644 src/ring_central/models/list_chat_tasks_new_status.py create mode 100644 src/ring_central/models/list_company_answering_rule_info.py create mode 100644 src/ring_central/models/list_data_export_tasks_new_status.py create mode 100644 src/ring_central/models/list_devices_automatic_location_updates.py create mode 100644 src/ring_central/models/list_directory_entries_type.py create mode 100644 src/ring_central/models/list_emergency_locations_order_by.py create mode 100644 src/ring_central/models/list_enrolled_speakers.py create mode 100644 src/ring_central/models/list_extension_devices_type.py create mode 100644 src/ring_central/models/list_extension_phone_numbers_status.py create mode 100644 src/ring_central/models/list_extension_phone_numbers_usage_type.py create mode 100644 src/ring_central/models/list_extensions_status.py create mode 100644 src/ring_central/models/list_extensions_type.py create mode 100644 src/ring_central/models/list_fax_cover_pages_response.py create mode 100644 src/ring_central/models/list_glip_chats_new_type.py create mode 100644 src/ring_central/models/list_locations_order_by.py create mode 100644 src/ring_central/models/list_meeting_recordings_response.py create mode 100644 src/ring_central/models/list_recent_chats_new_type.py create mode 100644 src/ring_central/models/list_standard_greetings_type.py create mode 100644 src/ring_central/models/list_standard_greetings_usage_type.py create mode 100644 src/ring_central/models/list_user_templates_type.py create mode 100644 src/ring_central/models/list_video_meetings_type.py create mode 100644 src/ring_central/models/location_deletion_error_info.py create mode 100644 src/ring_central/models/location_deletion_info.py create mode 100644 src/ring_central/models/location_info.py create mode 100644 src/ring_central/models/location_owner_info.py create mode 100644 src/ring_central/models/location_state_info.py create mode 100644 src/ring_central/models/location_updates_emergency_address_info_request.py create mode 100644 src/ring_central/models/locked_by_info.py create mode 100644 src/ring_central/models/make_call_out_caller_info_request_from.py create mode 100644 src/ring_central/models/make_call_out_caller_info_request_to.py create mode 100644 src/ring_central/models/make_call_out_request.py create mode 100644 src/ring_central/models/make_ring_out_caller_id_info.py create mode 100644 src/ring_central/models/make_ring_out_caller_info_request_from.py create mode 100644 src/ring_central/models/make_ring_out_caller_info_request_to.py create mode 100644 src/ring_central/models/make_ring_out_country_info.py create mode 100644 src/ring_central/models/make_ring_out_request.py create mode 100644 src/ring_central/models/meeting.py create mode 100644 src/ring_central/models/meeting_external_user_info_resource.py create mode 100644 src/ring_central/models/meeting_frequency.py create mode 100644 src/ring_central/models/meeting_info.py create mode 100644 src/ring_central/models/meeting_links.py create mode 100644 src/ring_central/models/meeting_occurrence_info.py create mode 100644 src/ring_central/models/meeting_page.py create mode 100644 src/ring_central/models/meeting_recording_info.py create mode 100644 src/ring_central/models/meeting_recordings.py create mode 100644 src/ring_central/models/meeting_recordings_navigation_info.py create mode 100644 src/ring_central/models/meeting_recordings_navigation_info_uri.py create mode 100644 src/ring_central/models/meeting_recordings_paging_info.py create mode 100644 src/ring_central/models/meeting_request_resource.py create mode 100644 src/ring_central/models/meeting_response_resource.py create mode 100644 src/ring_central/models/meeting_schedule_resource.py create mode 100644 src/ring_central/models/meeting_service_info_request.py create mode 100644 src/ring_central/models/meeting_service_info_resource.py create mode 100644 src/ring_central/models/meeting_user_settings_response.py create mode 100644 src/ring_central/models/meetings_country_resource.py create mode 100644 src/ring_central/models/meetings_navigation_info.py create mode 100644 src/ring_central/models/meetings_navigation_info_uri.py create mode 100644 src/ring_central/models/meetings_paging_info.py create mode 100644 src/ring_central/models/meetings_resource.py create mode 100644 src/ring_central/models/meetings_timezone_resource.py create mode 100644 src/ring_central/models/members_grouping_options.py create mode 100644 src/ring_central/models/message_attachment_info.py create mode 100644 src/ring_central/models/message_attachment_info_int_id.py create mode 100644 src/ring_central/models/message_attachment_type_enum.py create mode 100644 src/ring_central/models/message_availability_enum.py create mode 100644 src/ring_central/models/message_batch_create_request.py create mode 100644 src/ring_central/models/message_batch_response.py create mode 100644 src/ring_central/models/message_create_request.py create mode 100644 src/ring_central/models/message_details_response.py create mode 100644 src/ring_central/models/message_direction_enum.py create mode 100644 src/ring_central/models/message_list_message_response.py create mode 100644 src/ring_central/models/message_list_response.py create mode 100644 src/ring_central/models/message_priority_enum.py create mode 100644 src/ring_central/models/message_read_status_enum.py create mode 100644 src/ring_central/models/message_status_counts.py create mode 100644 src/ring_central/models/message_status_enum.py create mode 100644 src/ring_central/models/message_statuses_response.py create mode 100644 src/ring_central/models/message_store_caller_info_request.py create mode 100644 src/ring_central/models/message_store_caller_info_response_from.py create mode 100644 src/ring_central/models/message_store_caller_info_response_to.py create mode 100644 src/ring_central/models/message_store_configuration.py create mode 100644 src/ring_central/models/message_store_report.py create mode 100644 src/ring_central/models/message_store_report_archive.py create mode 100644 src/ring_central/models/message_template_request.py create mode 100644 src/ring_central/models/message_template_response.py create mode 100644 src/ring_central/models/message_templates_list_response.py create mode 100644 src/ring_central/models/message_type_enum.py create mode 100644 src/ring_central/models/messaging_navigation_info.py create mode 100644 src/ring_central/models/messaging_navigation_info_uri.py create mode 100644 src/ring_central/models/messaging_paging_info.py create mode 100644 src/ring_central/models/missed_call_extension_info.py create mode 100644 src/ring_central/models/missed_call_extension_info_external_number.py create mode 100644 src/ring_central/models/missed_call_info.py create mode 100644 src/ring_central/models/missed_calls_info.py create mode 100644 src/ring_central/models/mobile_delivery_mode.py create mode 100644 src/ring_central/models/mobile_delivery_mode_request.py create mode 100644 src/ring_central/models/model_info.py create mode 100644 src/ring_central/models/modify_account_business_address_request.py create mode 100644 src/ring_central/models/monthly_week.py create mode 100644 src/ring_central/models/network_info.py create mode 100644 src/ring_central/models/networks_list.py create mode 100644 src/ring_central/models/non_enumerated_paging_model.py create mode 100644 src/ring_central/models/notification_delivery_mode.py create mode 100644 src/ring_central/models/notification_delivery_mode_request.py create mode 100644 src/ring_central/models/notification_settings.py create mode 100644 src/ring_central/models/notification_settings_update_request.py create mode 100644 src/ring_central/models/on_demand_resource.py create mode 100644 src/ring_central/models/operator_info.py create mode 100644 src/ring_central/models/opt_out_bulk_assign_failed_entry.py create mode 100644 src/ring_central/models/opt_out_bulk_assign_request.py create mode 100644 src/ring_central/models/opt_out_bulk_assign_response.py create mode 100644 src/ring_central/models/opt_out_list_response.py create mode 100644 src/ring_central/models/opt_out_response.py create mode 100644 src/ring_central/models/order_by.py create mode 100644 src/ring_central/models/origin.py create mode 100644 src/ring_central/models/origin_info.py create mode 100644 src/ring_central/models/outbound_faxes_info.py create mode 100644 src/ring_central/models/outbound_proxy_info.py create mode 100644 src/ring_central/models/owner_info.py create mode 100644 src/ring_central/models/package_info.py create mode 100644 src/ring_central/models/page_navigation_model.py create mode 100644 src/ring_central/models/page_navigation_uri.py create mode 100644 src/ring_central/models/pager_caller_info_request.py create mode 100644 src/ring_central/models/paging.py create mode 100644 src/ring_central/models/paging_device_info.py create mode 100644 src/ring_central/models/paging_group_extension_info.py create mode 100644 src/ring_central/models/paging_only_group_devices.py create mode 100644 src/ring_central/models/paging_only_group_users.py create mode 100644 src/ring_central/models/paging_resource.py create mode 100644 src/ring_central/models/paging_schema.py create mode 100644 src/ring_central/models/params_info.py create mode 100644 src/ring_central/models/park_info.py create mode 100644 src/ring_central/models/parse_phone_number_request.py create mode 100644 src/ring_central/models/parse_phone_number_response.py create mode 100644 src/ring_central/models/participant.py create mode 100644 src/ring_central/models/participant_extended_model.py create mode 100644 src/ring_central/models/participant_list_resource.py create mode 100644 src/ring_central/models/participant_reduced_model.py create mode 100644 src/ring_central/models/party_info.py create mode 100644 src/ring_central/models/party_supervise_request.py create mode 100644 src/ring_central/models/party_supervise_response.py create mode 100644 src/ring_central/models/party_update_info.py create mode 100644 src/ring_central/models/party_update_request.py create mode 100644 src/ring_central/models/patch_message_bulk_request.py create mode 100644 src/ring_central/models/patch_message_request.py create mode 100644 src/ring_central/models/peer_info.py create mode 100644 src/ring_central/models/per_page.py create mode 100644 src/ring_central/models/permission_category_collection_resource.py create mode 100644 src/ring_central/models/permission_category_id_resource.py create mode 100644 src/ring_central/models/permission_category_resource.py create mode 100644 src/ring_central/models/permission_collection_resource.py create mode 100644 src/ring_central/models/permission_id_resource.py create mode 100644 src/ring_central/models/permission_info_admin.py create mode 100644 src/ring_central/models/permission_info_int.py create mode 100644 src/ring_central/models/permission_resource.py create mode 100644 src/ring_central/models/permissions_capabilities.py create mode 100644 src/ring_central/models/personal_contact_request.py create mode 100644 src/ring_central/models/personal_contact_resource.py create mode 100644 src/ring_central/models/phone_line_type_enum.py create mode 100644 src/ring_central/models/phone_lines_info.py create mode 100644 src/ring_central/models/phone_number_country_info.py create mode 100644 src/ring_central/models/phone_number_definition_direct_number_with_reservation_id.py create mode 100644 src/ring_central/models/phone_number_definition_number_id.py create mode 100644 src/ring_central/models/phone_number_definition_preferred_area_code.py create mode 100644 src/ring_central/models/phone_number_definition_toll_type.py create mode 100644 src/ring_central/models/phone_number_info_conferencing.py create mode 100644 src/ring_central/models/phone_number_info_int_id.py create mode 100644 src/ring_central/models/phone_number_info_number_parser.py create mode 100644 src/ring_central/models/phone_number_resource.py create mode 100644 src/ring_central/models/phone_number_status.py create mode 100644 src/ring_central/models/phone_number_toll_type.py create mode 100644 src/ring_central/models/phone_number_type.py create mode 100644 src/ring_central/models/phone_number_usage_type.py create mode 100644 src/ring_central/models/pic_message_type_enum.py create mode 100644 src/ring_central/models/pickup_target.py create mode 100644 src/ring_central/models/platform_payment_type.py create mode 100644 src/ring_central/models/postal_address.py create mode 100644 src/ring_central/models/presence_call_queue_info.py create mode 100644 src/ring_central/models/presence_info_request.py create mode 100644 src/ring_central/models/presence_info_response.py create mode 100644 src/ring_central/models/presence_navigation_info.py create mode 100644 src/ring_central/models/presence_navigation_info_uri.py create mode 100644 src/ring_central/models/presence_paging_info.py create mode 100644 src/ring_central/models/preset_info.py create mode 100644 src/ring_central/models/primary_cq_info.py create mode 100644 src/ring_central/models/private_ip_range_info.py create mode 100644 src/ring_central/models/private_ip_range_info_request.py create mode 100644 src/ring_central/models/profile_image_info.py create mode 100644 src/ring_central/models/profile_image_info_uri.py create mode 100644 src/ring_central/models/prompt_info.py create mode 100644 src/ring_central/models/prompt_language_info.py create mode 100644 src/ring_central/models/pronounced_name_info.py create mode 100644 src/ring_central/models/pronounced_name_prompt_info.py create mode 100644 src/ring_central/models/provisioning_site_info.py create mode 100644 src/ring_central/models/pub_nub_delivery_mode.py create mode 100644 src/ring_central/models/pub_nub_delivery_mode_request.py create mode 100644 src/ring_central/models/public_ip_range_info.py create mode 100644 src/ring_central/models/public_meeting_invitation_response.py create mode 100644 src/ring_central/models/punctuate_api_response.py create mode 100644 src/ring_central/models/punctuate_input.py create mode 100644 src/ring_central/models/punctuate_output.py create mode 100644 src/ring_central/models/queue_info.py create mode 100644 src/ring_central/models/queue_opportunities.py create mode 100644 src/ring_central/models/queue_opportunities_aggregation_type.py create mode 100644 src/ring_central/models/queue_short_info_resource.py create mode 100644 src/ring_central/models/queue_sla_options.py create mode 100644 src/ring_central/models/ranges_info.py create mode 100644 src/ring_central/models/rcw_domain_user_model.py create mode 100644 src/ring_central/models/rcw_invitee_type_enum.py create mode 100644 src/ring_central/models/rcw_linked_user_model.py create mode 100644 src/ring_central/models/rcw_paging_forward_model.py create mode 100644 src/ring_central/models/rcw_paging_model.py create mode 100644 src/ring_central/models/rcw_resource_id_model.py create mode 100644 src/ring_central/models/rcw_role_enum.py create mode 100644 src/ring_central/models/rcw_session_status_model.py create mode 100644 src/ring_central/models/read_a2_psms_opt_outs_status.py create mode 100644 src/ring_central/models/read_company_call_log_view.py create mode 100644 src/ring_central/models/reason_info.py create mode 100644 src/ring_central/models/recipient_info.py create mode 100644 src/ring_central/models/recording.py create mode 100644 src/ring_central/models/recording_admin_extended_item_model.py create mode 100644 src/ring_central/models/recording_admin_list_resource.py create mode 100644 src/ring_central/models/recording_admin_model.py create mode 100644 src/ring_central/models/recording_download_model.py create mode 100644 src/ring_central/models/recording_extended_model.py create mode 100644 src/ring_central/models/recording_info.py create mode 100644 src/ring_central/models/recording_item_extended_model.py create mode 100644 src/ring_central/models/recording_item_model.py create mode 100644 src/ring_central/models/recording_list_resource.py create mode 100644 src/ring_central/models/recording_media_type.py create mode 100644 src/ring_central/models/recording_model.py create mode 100644 src/ring_central/models/recording_status_model.py create mode 100644 src/ring_central/models/recording_type.py create mode 100644 src/ring_central/models/recordings_preferences.py create mode 100644 src/ring_central/models/recurrence_info.py create mode 100644 src/ring_central/models/reference_info.py create mode 100644 src/ring_central/models/reg_answer_model.py create mode 100644 src/ring_central/models/reg_session_model.py create mode 100644 src/ring_central/models/regional_language_info.py create mode 100644 src/ring_central/models/regional_settings.py create mode 100644 src/ring_central/models/registrant_base_model_with_questionnaire.py create mode 100644 src/ring_central/models/registrant_list_resource.py create mode 100644 src/ring_central/models/registrant_model_response_post_with_questionnaire.py create mode 100644 src/ring_central/models/registrant_model_with_questionnaire.py create mode 100644 src/ring_central/models/rejected_recipient_response_resource.py create mode 100644 src/ring_central/models/remove_line_request.py create mode 100644 src/ring_central/models/remove_line_response.py create mode 100644 src/ring_central/models/replace_phone_number_request.py create mode 100644 src/ring_central/models/reply_party.py create mode 100644 src/ring_central/models/reply_with_pattern.py create mode 100644 src/ring_central/models/response_paging.py create mode 100644 src/ring_central/models/revoke_token_request.py create mode 100644 src/ring_central/models/ring_out_status_info.py create mode 100644 src/ring_central/models/role_id_resource.py create mode 100644 src/ring_central/models/role_resource.py create mode 100644 src/ring_central/models/roles.py create mode 100644 src/ring_central/models/roles_business_site_resource.py create mode 100644 src/ring_central/models/roles_collection_resource.py create mode 100644 src/ring_central/models/roles_country_resource.py create mode 100644 src/ring_central/models/roles_language_resource.py create mode 100644 src/ring_central/models/roles_regional_settings_resource.py create mode 100644 src/ring_central/models/roles_timezone_resource.py create mode 100644 src/ring_central/models/scale_size.py create mode 100644 src/ring_central/models/schedule_info.py create mode 100644 src/ring_central/models/schedule_info_user_business_hours.py create mode 100644 src/ring_central/models/schedule_meeting_response.py create mode 100644 src/ring_central/models/schedule_user_meeting_info.py create mode 100644 src/ring_central/models/scim_authentication_scheme.py create mode 100644 src/ring_central/models/scim_bulk_supported.py create mode 100644 src/ring_central/models/scim_email.py create mode 100644 src/ring_central/models/scim_enterprise_user.py create mode 100644 src/ring_central/models/scim_filter_supported.py create mode 100644 src/ring_central/models/scim_meta.py create mode 100644 src/ring_central/models/scim_name.py create mode 100644 src/ring_central/models/scim_patch_operation.py create mode 100644 src/ring_central/models/scim_phone_number.py create mode 100644 src/ring_central/models/scim_photo.py create mode 100644 src/ring_central/models/scim_provider_config.py create mode 100644 src/ring_central/models/scim_resource_type_response.py create mode 100644 src/ring_central/models/scim_resource_type_search_response.py create mode 100644 src/ring_central/models/scim_schema_attribute.py create mode 100644 src/ring_central/models/scim_schema_extension.py create mode 100644 src/ring_central/models/scim_schema_response.py create mode 100644 src/ring_central/models/scim_schema_search_response.py create mode 100644 src/ring_central/models/scim_search_request.py create mode 100644 src/ring_central/models/scim_supported.py create mode 100644 src/ring_central/models/scim_user.py create mode 100644 src/ring_central/models/scim_user_address.py create mode 100644 src/ring_central/models/scim_user_patch.py create mode 100644 src/ring_central/models/scim_user_response.py create mode 100644 src/ring_central/models/scim_user_search_response.py create mode 100644 src/ring_central/models/search_directory_contact_type.py create mode 100644 src/ring_central/models/search_directory_entries_request.py create mode 100644 src/ring_central/models/search_directory_extension_type.py create mode 100644 src/ring_central/models/send_welcome_email_v2_request.py create mode 100644 src/ring_central/models/service_feature_info.py create mode 100644 src/ring_central/models/service_info.py create mode 100644 src/ring_central/models/service_info_brand.py create mode 100644 src/ring_central/models/service_info_country_short_model.py create mode 100644 src/ring_central/models/service_info_package.py create mode 100644 src/ring_central/models/service_info_plan.py create mode 100644 src/ring_central/models/service_info_u_brand.py create mode 100644 src/ring_central/models/service_info_v2.py create mode 100644 src/ring_central/models/service_plan_info.py create mode 100644 src/ring_central/models/session_global_list_entry.py create mode 100644 src/ring_central/models/session_global_list_resource.py create mode 100644 src/ring_central/models/session_global_resource.py create mode 100644 src/ring_central/models/session_livestream_minimal_model.py create mode 100644 src/ring_central/models/session_livestream_status_model.py create mode 100644 src/ring_central/models/session_ref_admin_model.py create mode 100644 src/ring_central/models/session_ref_model.py create mode 100644 src/ring_central/models/session_resource.py create mode 100644 src/ring_central/models/session_runtime_status_model.py create mode 100644 src/ring_central/models/setup_wizard_state_enum.py create mode 100644 src/ring_central/models/setup_wizard_state_for_update_enum.py create mode 100644 src/ring_central/models/shared_lines_info.py create mode 100644 src/ring_central/models/shipping_address_info.py create mode 100644 src/ring_central/models/shipping_info.py create mode 100644 src/ring_central/models/shipping_method_info.py create mode 100644 src/ring_central/models/shipping_status.py create mode 100644 src/ring_central/models/short_site_info.py create mode 100644 src/ring_central/models/signup_info_resource.py create mode 100644 src/ring_central/models/sip_flags_response.py create mode 100644 src/ring_central/models/sip_info_request.py create mode 100644 src/ring_central/models/sip_info_resource.py create mode 100644 src/ring_central/models/sip_info_response.py create mode 100644 src/ring_central/models/sip_registration_device_emergency_info.py create mode 100644 src/ring_central/models/sip_registration_device_info.py create mode 100644 src/ring_central/models/sip_registration_device_location_info.py create mode 100644 src/ring_central/models/site.py create mode 100644 src/ring_central/models/site_basic_info.py create mode 100644 src/ring_central/models/site_info.py create mode 100644 src/ring_central/models/site_ivr_actions.py create mode 100644 src/ring_central/models/site_ivr_actions_extension_info.py create mode 100644 src/ring_central/models/site_ivr_actions_extension_info_update.py create mode 100644 src/ring_central/models/site_ivr_actions_update.py create mode 100644 src/ring_central/models/site_ivr_settings.py create mode 100644 src/ring_central/models/site_ivr_settings_update.py create mode 100644 src/ring_central/models/site_ivr_top_menu.py create mode 100644 src/ring_central/models/site_ivr_top_menu_update.py create mode 100644 src/ring_central/models/site_member_info.py create mode 100644 src/ring_central/models/site_members_bulk_update.py create mode 100644 src/ring_central/models/site_members_list.py create mode 100644 src/ring_central/models/site_operator_reference.py create mode 100644 src/ring_central/models/site_reference.py create mode 100644 src/ring_central/models/site_resource.py create mode 100644 src/ring_central/models/site_update_request.py create mode 100644 src/ring_central/models/sites_list.py create mode 100644 src/ring_central/models/sms_direction_enum.py create mode 100644 src/ring_central/models/sms_request_country_info.py create mode 100644 src/ring_central/models/sms_status_enum.py create mode 100644 src/ring_central/models/soc_msg_creation_time_order.py create mode 100644 src/ring_central/models/soc_msg_gender.py create mode 100644 src/ring_central/models/sort_by.py create mode 100644 src/ring_central/models/speaker_identification_object.py create mode 100644 src/ring_central/models/speaker_insights_object.py create mode 100644 src/ring_central/models/speaker_insights_unit.py create mode 100644 src/ring_central/models/speaker_insights_values_items.py create mode 100644 src/ring_central/models/specific_info.py create mode 100644 src/ring_central/models/speech_context_phrases_input.py create mode 100644 src/ring_central/models/status_group.py create mode 100644 src/ring_central/models/subscription_info.py create mode 100644 src/ring_central/models/subscription_list_resource.py create mode 100644 src/ring_central/models/summary_api_response.py create mode 100644 src/ring_central/models/summary_input.py create mode 100644 src/ring_central/models/summary_output.py create mode 100644 src/ring_central/models/summary_output_unit.py create mode 100644 src/ring_central/models/summary_timings_unit.py create mode 100644 src/ring_central/models/summary_unit.py create mode 100644 src/ring_central/models/supervise_call_session_request.py create mode 100644 src/ring_central/models/supervise_call_session_response.py create mode 100644 src/ring_central/models/swap_device_request.py create mode 100644 src/ring_central/models/switch_info.py create mode 100644 src/ring_central/models/switch_site_info.py create mode 100644 src/ring_central/models/switch_validated.py create mode 100644 src/ring_central/models/switches_list.py create mode 100644 src/ring_central/models/sync_account_call_log_sync_type.py create mode 100644 src/ring_central/models/sync_address_book_sync_type.py create mode 100644 src/ring_central/models/sync_info.py create mode 100644 src/ring_central/models/sync_info_messages.py create mode 100644 src/ring_central/models/sync_status.py create mode 100644 src/ring_central/models/sync_type_enum.py create mode 100644 src/ring_central/models/system_user_contact_info.py create mode 100644 src/ring_central/models/target_service_plan_info.py create mode 100644 src/ring_central/models/task_attachment.py create mode 100644 src/ring_central/models/task_recurrence_info.py create mode 100644 src/ring_central/models/task_result_info.py create mode 100644 src/ring_central/models/task_result_record.py create mode 100644 src/ring_central/models/task_result_record_errors_info.py create mode 100644 src/ring_central/models/telephony_user_meeting_settings.py create mode 100644 src/ring_central/models/template_info.py create mode 100644 src/ring_central/models/temporary_number_info.py create mode 100644 src/ring_central/models/time_interval.py create mode 100644 src/ring_central/models/time_range.py create mode 100644 src/ring_central/models/time_settings.py create mode 100644 src/ring_central/models/time_spent_filter.py create mode 100644 src/ring_central/models/timeline_request.py create mode 100644 src/ring_central/models/timeline_response.py create mode 100644 src/ring_central/models/timeline_response_data.py create mode 100644 src/ring_central/models/timeline_response_options.py create mode 100644 src/ring_central/models/timeline_response_options_counters.py create mode 100644 src/ring_central/models/timeline_response_options_timers.py create mode 100644 src/ring_central/models/timeline_response_point.py create mode 100644 src/ring_central/models/timeline_response_record.py create mode 100644 src/ring_central/models/timezone_info.py create mode 100644 src/ring_central/models/tm_add_file_request.py create mode 100644 src/ring_central/models/tm_add_team_members_request.py create mode 100644 src/ring_central/models/tm_attachment_author_info.py create mode 100644 src/ring_central/models/tm_attachment_fields_info.py create mode 100644 src/ring_central/models/tm_attachment_footnote_info.py create mode 100644 src/ring_central/models/tm_attachment_info.py create mode 100644 src/ring_central/models/tm_chat_info.py create mode 100644 src/ring_central/models/tm_chat_list.py create mode 100644 src/ring_central/models/tm_chat_list_without_navigation.py create mode 100644 src/ring_central/models/tm_chat_member_info.py create mode 100644 src/ring_central/models/tm_company_info.py create mode 100644 src/ring_central/models/tm_complete_task_request.py create mode 100644 src/ring_central/models/tm_conversation_info.py create mode 100644 src/ring_central/models/tm_conversation_list.py create mode 100644 src/ring_central/models/tm_create_event_request.py create mode 100644 src/ring_central/models/tm_create_note_request.py create mode 100644 src/ring_central/models/tm_create_post_request.py create mode 100644 src/ring_central/models/tm_create_task_request.py create mode 100644 src/ring_central/models/tm_create_team_request.py create mode 100644 src/ring_central/models/tm_creator_info.py create mode 100644 src/ring_central/models/tm_event_info.py create mode 100644 src/ring_central/models/tm_event_list.py create mode 100644 src/ring_central/models/tm_mentions_info.py create mode 100644 src/ring_central/models/tm_message_attachment_info.py create mode 100644 src/ring_central/models/tm_navigation_info.py create mode 100644 src/ring_central/models/tm_note_info.py create mode 100644 src/ring_central/models/tm_note_list.py create mode 100644 src/ring_central/models/tm_note_with_body_info.py create mode 100644 src/ring_central/models/tm_person_info.py create mode 100644 src/ring_central/models/tm_post_info.py create mode 100644 src/ring_central/models/tm_posts_list.py create mode 100644 src/ring_central/models/tm_remove_team_members_request.py create mode 100644 src/ring_central/models/tm_task_info.py create mode 100644 src/ring_central/models/tm_task_list.py create mode 100644 src/ring_central/models/tm_team_info.py create mode 100644 src/ring_central/models/tm_team_list.py create mode 100644 src/ring_central/models/tm_update_post_request.py create mode 100644 src/ring_central/models/tm_update_task_request.py create mode 100644 src/ring_central/models/tm_update_team_request.py create mode 100644 src/ring_central/models/tm_webhook_info.py create mode 100644 src/ring_central/models/tm_webhook_list.py create mode 100644 src/ring_central/models/token_info.py create mode 100644 src/ring_central/models/transcribed_object.py create mode 100644 src/ring_central/models/transfer_extension_info.py create mode 100644 src/ring_central/models/transfer_info.py create mode 100644 src/ring_central/models/transfer_target.py create mode 100644 src/ring_central/models/transferred_extension.py create mode 100644 src/ring_central/models/transferred_extension_info.py create mode 100644 src/ring_central/models/type_group.py create mode 100644 src/ring_central/models/u_brand_info.py create mode 100644 src/ring_central/models/unconditional_forwarding_info.py create mode 100644 src/ring_central/models/unified_presence.py create mode 100644 src/ring_central/models/unified_presence_glip.py create mode 100644 src/ring_central/models/unified_presence_list_entry.py create mode 100644 src/ring_central/models/unified_presence_meeting.py create mode 100644 src/ring_central/models/unified_presence_telephony.py create mode 100644 src/ring_central/models/update_answering_rule_request.py create mode 100644 src/ring_central/models/update_bridge_request.py create mode 100644 src/ring_central/models/update_conferencing_info_request.py create mode 100644 src/ring_central/models/update_device_phone_info.py create mode 100644 src/ring_central/models/update_everyone_team_request.py create mode 100644 src/ring_central/models/update_forwarding_number_request.py create mode 100644 src/ring_central/models/update_invitee_request.py create mode 100644 src/ring_central/models/update_ivr_prompt_request.py create mode 100644 src/ring_central/models/update_message_bulk_request.py create mode 100644 src/ring_central/models/update_message_request.py create mode 100644 src/ring_central/models/update_multiple_switches_request.py create mode 100644 src/ring_central/models/update_multiple_switches_response.py create mode 100644 src/ring_central/models/update_multiple_wireless_points_request.py create mode 100644 src/ring_central/models/update_multiple_wireless_points_response.py create mode 100644 src/ring_central/models/update_network_request.py create mode 100644 src/ring_central/models/update_subscription_request.py create mode 100644 src/ring_central/models/update_switch_info.py create mode 100644 src/ring_central/models/update_unified_presence.py create mode 100644 src/ring_central/models/update_unified_presence_glip.py create mode 100644 src/ring_central/models/update_unified_presence_telephony.py create mode 100644 src/ring_central/models/update_user_profile_image_request.py create mode 100644 src/ring_central/models/update_wireless_point.py create mode 100644 src/ring_central/models/usage_status.py create mode 100644 src/ring_central/models/user.py create mode 100644 src/ring_central/models/user_answering_rule_list.py create mode 100644 src/ring_central/models/user_business_hours_schedule_info.py create mode 100644 src/ring_central/models/user_business_hours_update_request.py create mode 100644 src/ring_central/models/user_business_hours_update_response.py create mode 100644 src/ring_central/models/user_call_queues.py create mode 100644 src/ring_central/models/user_contacts_groups_info.py create mode 100644 src/ring_central/models/user_contacts_navigation_info.py create mode 100644 src/ring_central/models/user_contacts_navigation_info_uri.py create mode 100644 src/ring_central/models/user_contacts_paging_info.py create mode 100644 src/ring_central/models/user_in_meeting_response.py create mode 100644 src/ring_central/models/user_meeting_recording_setting.py create mode 100644 src/ring_central/models/user_phone_number_extension_info.py create mode 100644 src/ring_central/models/user_phone_number_info.py create mode 100644 src/ring_central/models/user_templates.py create mode 100644 src/ring_central/models/user_transition_info.py create mode 100644 src/ring_central/models/user_video_configuration.py create mode 100644 src/ring_central/models/utils/cast_models.py create mode 100644 src/ring_central/models/utils/json_map.py create mode 100644 src/ring_central/models/utterance_insights_object.py create mode 100644 src/ring_central/models/utterance_insights_unit.py create mode 100644 src/ring_central/models/utterance_object.py create mode 100644 src/ring_central/models/validate_multiple_switches_request.py create mode 100644 src/ring_central/models/validate_multiple_switches_response.py create mode 100644 src/ring_central/models/validate_multiple_wireless_points_request.py create mode 100644 src/ring_central/models/validate_multiple_wireless_points_response.py create mode 100644 src/ring_central/models/validation_error.py create mode 100644 src/ring_central/models/value_type.py create mode 100644 src/ring_central/models/variable_answer_model.py create mode 100644 src/ring_central/models/vertical_alignment.py create mode 100644 src/ring_central/models/vertical_content_alignment.py create mode 100644 src/ring_central/models/visibility.py create mode 100644 src/ring_central/models/visibility_type.py create mode 100644 src/ring_central/models/voicemail_info.py create mode 100644 src/ring_central/models/voicemails_info.py create mode 100644 src/ring_central/models/wcs_host_model.py create mode 100644 src/ring_central/models/wcs_invitee_list_resource.py create mode 100644 src/ring_central/models/wcs_session_global_list_resource.py create mode 100644 src/ring_central/models/wcs_session_resource.py create mode 100644 src/ring_central/models/wcs_session_status_model.py create mode 100644 src/ring_central/models/wcs_session_with_locale_code_model.py create mode 100644 src/ring_central/models/wcs_webinar_ref_model.py create mode 100644 src/ring_central/models/wcs_webinar_resource.py create mode 100644 src/ring_central/models/wcs_webinar_settings_model.py create mode 100644 src/ring_central/models/web_socket_delivery_mode.py create mode 100644 src/ring_central/models/webhook_delivery_mode.py create mode 100644 src/ring_central/models/webhook_delivery_mode_request.py create mode 100644 src/ring_central/models/webinar_base_model.py create mode 100644 src/ring_central/models/webinar_creation_request.py create mode 100644 src/ring_central/models/webinar_list_resource.py create mode 100644 src/ring_central/models/webinar_ref_model.py create mode 100644 src/ring_central/models/webinar_resource.py create mode 100644 src/ring_central/models/webinar_settings_model.py create mode 100644 src/ring_central/models/week_day.py create mode 100644 src/ring_central/models/weekly_schedule_info.py create mode 100644 src/ring_central/models/wireless_point_info.py create mode 100644 src/ring_central/models/wireless_point_validated.py create mode 100644 src/ring_central/models/wireless_points_list.py create mode 100644 src/ring_central/models/word_segment.py create mode 100644 src/ring_central/models/word_timings_unit.py create mode 100644 src/ring_central/net/__init__.py create mode 100644 src/ring_central/net/environment/__init__.py create mode 100644 src/ring_central/net/environment/environment.py create mode 100644 src/ring_central/net/headers/__init__.py create mode 100644 src/ring_central/net/headers/access_token_auth.py create mode 100644 src/ring_central/net/headers/base_header.py create mode 100644 src/ring_central/net/request_chain/__init__.py create mode 100644 src/ring_central/net/request_chain/handlers/__init__.py create mode 100644 src/ring_central/net/request_chain/handlers/base_handler.py create mode 100644 src/ring_central/net/request_chain/handlers/hook_handler.py create mode 100644 src/ring_central/net/request_chain/handlers/http_handler.py create mode 100644 src/ring_central/net/request_chain/handlers/retry_handler.py create mode 100644 src/ring_central/net/request_chain/request_chain.py create mode 100644 src/ring_central/net/transport/__init__.py create mode 100644 src/ring_central/net/transport/request.py create mode 100644 src/ring_central/net/transport/request_error.py create mode 100644 src/ring_central/net/transport/response.py create mode 100644 src/ring_central/net/transport/serializer.py create mode 100644 src/ring_central/net/transport/utils.py create mode 100644 src/ring_central/sdk.py create mode 100644 src/ring_central/services/__init__.py create mode 100644 src/ring_central/services/adaptive_cards.py create mode 100644 src/ring_central/services/api_info.py create mode 100644 src/ring_central/services/audio.py create mode 100644 src/ring_central/services/audit_trail.py create mode 100644 src/ring_central/services/automatic_location_updates.py create mode 100644 src/ring_central/services/bridge_management.py create mode 100644 src/ring_central/services/business_analytics.py create mode 100644 src/ring_central/services/business_hours.py create mode 100644 src/ring_central/services/calendar_events.py create mode 100644 src/ring_central/services/call_blocking.py create mode 100644 src/ring_central/services/call_control.py create mode 100644 src/ring_central/services/call_forwarding.py create mode 100644 src/ring_central/services/call_handling_rules.py create mode 100644 src/ring_central/services/call_log.py create mode 100644 src/ring_central/services/call_monitoring_groups.py create mode 100644 src/ring_central/services/call_queues.py create mode 100644 src/ring_central/services/call_recording_settings.py create mode 100644 src/ring_central/services/call_recordings.py create mode 100644 src/ring_central/services/chats.py create mode 100644 src/ring_central/services/company.py create mode 100644 src/ring_central/services/compliance_exports.py create mode 100644 src/ring_central/services/contents.py create mode 100644 src/ring_central/services/conversations.py create mode 100644 src/ring_central/services/custom_fields.py create mode 100644 src/ring_central/services/delegation_management.py create mode 100644 src/ring_central/services/device_sip_registration.py create mode 100644 src/ring_central/services/devices.py create mode 100644 src/ring_central/services/extensions.py create mode 100644 src/ring_central/services/external_contacts.py create mode 100644 src/ring_central/services/fax.py create mode 100644 src/ring_central/services/features.py create mode 100644 src/ring_central/services/greetings.py create mode 100644 src/ring_central/services/high_volume_sms.py create mode 100644 src/ring_central/services/historical_recordings.py create mode 100644 src/ring_central/services/historical_webinars.py create mode 100644 src/ring_central/services/identities.py create mode 100644 src/ring_central/services/incoming_webhooks.py create mode 100644 src/ring_central/services/insights.py create mode 100644 src/ring_central/services/internal_contacts.py create mode 100644 src/ring_central/services/invitees.py create mode 100644 src/ring_central/services/ivr.py create mode 100644 src/ring_central/services/meeting_recordings.py create mode 100644 src/ring_central/services/meetings_history.py create mode 100644 src/ring_central/services/message_exports.py create mode 100644 src/ring_central/services/message_store.py create mode 100644 src/ring_central/services/multi_site.py create mode 100644 src/ring_central/services/notes.py create mode 100644 src/ring_central/services/o_auth_2_0_open_id_connect.py create mode 100644 src/ring_central/services/pager_messages.py create mode 100644 src/ring_central/services/paging_only_groups.py create mode 100644 src/ring_central/services/phone_numbers.py create mode 100644 src/ring_central/services/posts.py create mode 100644 src/ring_central/services/presence.py create mode 100644 src/ring_central/services/profile.py create mode 100644 src/ring_central/services/rcm_meetings_legacy.py create mode 100644 src/ring_central/services/regional_settings.py create mode 100644 src/ring_central/services/registrants.py create mode 100644 src/ring_central/services/registration_management.py create mode 100644 src/ring_central/services/ring_out.py create mode 100644 src/ring_central/services/role_management.py create mode 100644 src/ring_central/services/scim.py create mode 100644 src/ring_central/services/site_administration.py create mode 100644 src/ring_central/services/sms.py create mode 100644 src/ring_central/services/sms_templates.py create mode 100644 src/ring_central/services/status.py create mode 100644 src/ring_central/services/subscriptions.py create mode 100644 src/ring_central/services/tasks.py create mode 100644 src/ring_central/services/teams.py create mode 100644 src/ring_central/services/text.py create mode 100644 src/ring_central/services/user_permissions.py create mode 100644 src/ring_central/services/user_settings.py create mode 100644 src/ring_central/services/utils/base_service.py create mode 100644 src/ring_central/services/utils/default_headers.py create mode 100644 src/ring_central/services/utils/validator.py create mode 100644 src/ring_central/services/video_configuration.py create mode 100644 src/ring_central/services/webinar_subscriptions.py create mode 100644 src/ring_central/services/webinars_and_sessions.py diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ + diff --git a/.github/workflows/publish_py.yaml b/.github/workflows/publish_py.yaml new file mode 100644 index 00000000..3059def6 --- /dev/null +++ b/.github/workflows/publish_py.yaml @@ -0,0 +1,37 @@ +name: Publish to PyPI + +on: + push: + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.7' # Replace with your Python version + + - name: Install pip and pip-tools + run: | + python -m ensurepip + python -m pip install --upgrade pip + python -m pip install pip-tools + + - name: Build package + run: python -m build + + - name: Publish to PyPI + env: + TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + run: | + python -m pip install twine + python -m twine upload --skip-existing --username __token__ --password $TWINE_PASSWORD dist/* + + - name: Cleanup + run: rm -rf dist/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..cebf9018 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Devcontainer +.devcontainer/ diff --git a/.manifest.json b/.manifest.json new file mode 100644 index 00000000..1bce59cf --- /dev/null +++ b/.manifest.json @@ -0,0 +1,2612 @@ +{ + "liblabVersion": "2.1.19", + "date": "2024-07-10T15:03:38.357Z", + "config": { + "apiId": 364, + "baseUrl": "https://platform.devtest.ringcentral.com/restapi/v1.0", + "sdkName": "ring_central", + "sdkVersion": "1.0.0", + "liblabVersion": "2", + "deliveryMethods": ["zip"], + "languages": ["python"], + "apiVersion": "1.0.0", + "apiName": "ring_central", + "specFilePath": "./ring_central.yaml", + "auth": ["bearer"], + "languageOptions": { + "csharp": { + "packageId": "", + "githubRepoName": "", + "ignoreFiles": [], + "liblabVersion": "2", + "sdkVersion": "1.0.0" + }, + "go": { + "goModuleName": "github.com/swagger-api/swagger-petstore", + "githubRepoName": "", + "ignoreFiles": [], + "liblabVersion": "2", + "sdkVersion": "1.0.0" + }, + "python": { + "alwaysInitializeOptionals": false, + "pypiPackageName": "ring-central-client", + "githubRepoName": "", + "ignoreFiles": [], + "liblabVersion": "2", + "sdkVersion": "1.0.0" + }, + "typescript": { + "bundle": false, + "exportClassDefault": false, + "httpClient": "axios", + "npmName": "", + "npmOrg": "", + "githubRepoName": "", + "ignoreFiles": [], + "liblabVersion": "2", + "sdkVersion": "1.0.0" + } + }, + "publishing": { + "githubOrg": "" + }, + "authentication": { + "access": { + "prefix": "Bearer" + } + }, + "devContainer": false, + "generateEnv": true, + "includeOptionalSnippetParameters": true, + "inferServiceNames": false, + "injectedModels": [], + "license": { + "type": "MIT", + "name": "MIT", + "url": "https://opensource.org/licenses/MIT", + "path": "MIT.ejs" + }, + "responseHeaders": false, + "retry": { + "enabled": true, + "maxAttempts": 3, + "retryDelay": 150, + "maxDelay": 5000, + "retryDelayJitter": 50, + "backOffFactor": 2, + "httpCodesToRetry": [408, 429, 500, 502, 503, 504], + "httpMethodsToRetry": ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"] + }, + "multiTenant": true, + "specUrl": "https://dev-liblab-api-stack-specs.s3.us-east-1.amazonaws.com/364/open-api-spec.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA3C2RXH7MWUCMN7ON%2F20240710%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240710T150329Z&X-Amz-Expires=43200&X-Amz-Signature=5d1255645848f7d6d502dcfd875d8177a6aeeb5b3a2e54bd2d1798e56752e249&X-Amz-SignedHeaders=host&x-id=GetObject", + "includeWatermark": true, + "alwaysInitializeOptionals": false, + "pypiPackageName": "ring-central-client", + "githubRepoName": "", + "ignoreFiles": [], + "language": "python", + "deliveryMethod": "zip", + "hooks": { + "enabled": false, + "sourceDir": "" + }, + "usesFormData": false, + "environmentVariables": [], + "fileOutput": "/tmp", + "httpLibrary": { + "name": "axios", + "packages": { + "axios": "^1.6.8" + }, + "languages": ["typescript"] + }, + "customQueries": { + "paths": [], + "rawQueries": [], + "queriesData": [] + } + }, + "files": [ + "src/ring_central/models/base.py", + "src/ring_central/models/utils/json_map.py", + "src/ring_central/models/__init__.py", + "src/ring_central/services/__init__.py", + "src/ring_central/__init__.py", + "src/ring_central/net/__init__.py", + "src/ring_central/net/headers/__init__.py", + "src/ring_central/net/transport/__init__.py", + "src/ring_central/hooks/__init__.py", + "src/ring_central/net/environment/__init__.py", + "src/ring_central/net/request_chain/__init__.py", + "src/ring_central/net/request_chain/handlers/__init__.py", + "src/ring_central/net/transport/request.py", + "src/ring_central/net/transport/response.py", + "src/ring_central/net/transport/request_error.py", + "src/ring_central/sdk.py", + "src/ring_central/net/transport/serializer.py", + "src/ring_central/services/utils/validator.py", + "src/ring_central/services/utils/base_service.py", + "pyproject.toml", + ".gitignore", + "src/ring_central/models/utils/cast_models.py", + "src/ring_central/net/transport/utils.py", + "src/ring_central/hooks/hook.py", + "install.sh", + "install.cmd", + "examples/install.sh", + "examples/install.cmd", + "src/ring_central/net/headers/base_header.py", + "src/ring_central/net/headers/access_token_auth.py", + "src/ring_central/net/environment/environment.py", + "src/ring_central/net/request_chain/request_chain.py", + "src/ring_central/net/request_chain/handlers/base_handler.py", + "src/ring_central/net/request_chain/handlers/http_handler.py", + "src/ring_central/net/request_chain/handlers/hook_handler.py", + "src/ring_central/net/request_chain/handlers/retry_handler.py", + "examples/sample.py", + ".env.example", + "/examples/.env.example", + "src/ring_central/services/utils/default_headers.py", + "./LICENSE", + "documentation/models/SubscriptionListResource.md", + "documentation/models/CreateWebhookSubscriptionRequest.md", + "documentation/models/UpdateSubscriptionRequest.md", + "documentation/models/WebinarResource.md", + "documentation/models/SessionResource.md", + "documentation/models/ParticipantListResource.md", + "documentation/models/RcwRoleEnum.md", + "documentation/models/InviteeListResource.md", + "documentation/models/SessionGlobalListResource.md", + "documentation/models/RcwSessionStatusModel.md", + "documentation/models/RecordingAdminListResource.md", + "documentation/models/RecordingStatusModel.md", + "documentation/models/RecordingAdminExtendedItemModel.md", + "documentation/models/RecordingListResource.md", + "documentation/models/RecordingItemExtendedModel.md", + "documentation/models/RecordingMediaType.md", + "documentation/models/RegistrantListResource.md", + "documentation/models/RegistrantBaseModelWithQuestionnaire.md", + "documentation/models/RegistrantModelResponsePostWithQuestionnaire.md", + "documentation/models/RegistrantModelWithQuestionnaire.md", + "documentation/models/WebinarListResource.md", + "documentation/models/WebinarCreationRequest.md", + "documentation/models/WcsWebinarResource.md", + "documentation/models/WebinarBaseModel.md", + "documentation/models/WcsSessionWithLocaleCodeModel.md", + "documentation/models/WcsSessionResource.md", + "documentation/models/WcsSessionGlobalListResource.md", + "documentation/models/WcsSessionStatusModel.md", + "documentation/models/WcsInviteeListResource.md", + "documentation/models/BulkUpdateInviteesResponse.md", + "documentation/models/InviteeResource.md", + "documentation/models/UpdateInviteeRequest.md", + "documentation/models/ContentDisposition.md", + "documentation/models/CallRecordingIds.md", + "documentation/models/GetCallRecordingResponse.md", + "documentation/models/DictionaryGreetingList.md", + "documentation/models/ListStandardGreetingsType.md", + "documentation/models/ListStandardGreetingsUsageType.md", + "documentation/models/ScaleSize.md", + "documentation/models/BatchProvisionUsersRequest.md", + "documentation/models/BulkDeleteUsersRequest.md", + "documentation/models/GetExtensionGrantListResponse.md", + "documentation/models/ExtensionType.md", + "documentation/models/GetConferencingInfoResponse.md", + "documentation/models/UpdateConferencingInfoRequest.md", + "documentation/models/CreateUserProfileImageRequest.md", + "documentation/models/UpdateUserProfileImageRequest.md", + "documentation/models/ExtensionCallerIdInfo.md", + "documentation/models/ExtensionCallerIdInfoRequest.md", + "documentation/models/NotificationSettings.md", + "documentation/models/NotificationSettingsUpdateRequest.md", + "documentation/models/MessageStoreConfiguration.md", + "documentation/models/GetMessageSyncResponse.md", + "documentation/models/MessageDirectionEnum.md", + "documentation/models/MessageTypeEnum.md", + "documentation/models/SyncTypeEnum.md", + "documentation/models/GetMessageList.md", + "documentation/models/MessageAvailabilityEnum.md", + "documentation/models/MessageReadStatusEnum.md", + "documentation/models/DeleteMessageByFilterType.md", + "documentation/models/GetMessageInfoMultiResponse.md", + "documentation/models/UpdateMessageRequest.md", + "documentation/models/UpdateMessageBulkRequest.md", + "documentation/models/PatchMessageRequest.md", + "documentation/models/PatchMessageBulkRequest.md", + "documentation/models/IvrPrompts.md", + "documentation/models/CreateIvrPromptRequest.md", + "documentation/models/PromptInfo.md", + "documentation/models/UpdateIvrPromptRequest.md", + "documentation/models/IvrMenuList.md", + "documentation/models/IvrMenuInfo.md", + "documentation/models/UpdateBridgeRequest.md", + "documentation/models/CloudRecordings.md", + "documentation/models/DelegatorsListResult.md", + "documentation/models/MeetingPage.md", + "documentation/models/ListVideoMeetingsType.md", + "documentation/models/ApiVersionsList.md", + "documentation/models/ApiVersionInfo.md", + "documentation/models/AuthorizeResponseType.md", + "documentation/models/DisplayModesEnum.md", + "documentation/models/CodeChallengeMethodEnum.md", + "documentation/models/SendWelcomeEmailV2Request.md", + "documentation/models/AccountServiceInfo.md", + "documentation/models/AccountBusinessAddressResource.md", + "documentation/models/ModifyAccountBusinessAddressRequest.md", + "documentation/models/CountryListDictionaryModel.md", + "documentation/models/RemoveLineRequest.md", + "documentation/models/BulkAddDevicesRequest.md", + "documentation/models/SwapDeviceRequest.md", + "documentation/models/AccountDeviceUpdate.md", + "documentation/models/SipInfoResource.md", + "documentation/models/GetExtensionDevicesResponse.md", + "documentation/models/LinePooling.md", + "documentation/models/DeviceFeatureEnum.md", + "documentation/models/ListExtensionDevicesType.md", + "documentation/models/PhoneLineTypeEnum.md", + "documentation/models/AccountPhoneNumberList.md", + "documentation/models/PhoneNumberType.md", + "documentation/models/PhoneNumberUsageType.md", + "documentation/models/PhoneNumberStatus.md", + "documentation/models/PhoneNumberTollType.md", + "documentation/models/ExtensionStatus.md", + "documentation/models/DeletePhoneNumbersRequest.md", + "documentation/models/DeletePhoneNumbersResponse.md", + "documentation/models/ReplacePhoneNumberRequest.md", + "documentation/models/AddPhoneNumbersRequest.md", + "documentation/models/AddPhoneNumbersResponse.md", + "documentation/models/AddPhoneNumbersTask.md", + "documentation/models/GetExtensionPhoneNumbersResponse.md", + "documentation/models/ListExtensionPhoneNumbersStatus.md", + "documentation/models/ListExtensionPhoneNumbersUsageType.md", + "documentation/models/AccountPhoneNumbers.md", + "documentation/models/ListAccountPhoneNumbersUsageType.md", + "documentation/models/PlatformPaymentType.md", + "documentation/models/ListAccountPhoneNumbersStatus.md", + "documentation/models/ParsePhoneNumberRequest.md", + "documentation/models/ParsePhoneNumberResponse.md", + "documentation/models/CompanyBusinessHours.md", + "documentation/models/CompanyBusinessHoursUpdateRequest.md", + "documentation/models/GetUserBusinessHoursResponse.md", + "documentation/models/UserBusinessHoursUpdateRequest.md", + "documentation/models/UserBusinessHoursUpdateResponse.md", + "documentation/models/CustomFieldList.md", + "documentation/models/CustomFieldUpdateRequest.md", + "documentation/models/CallRecordingSettingsResource.md", + "documentation/models/CallRecordingCustomGreetings.md", + "documentation/models/ListCallRecordingCustomGreetingsType.md", + "documentation/models/BulkAccountCallRecordingsResource.md", + "documentation/models/CallRecordingExtensions.md", + "documentation/models/MakeCallOutRequest.md", + "documentation/models/CallSession.md", + "documentation/models/CallSessionObject.md", + "documentation/models/AddPartyRequest.md", + "documentation/models/PartyUpdateRequest.md", + "documentation/models/CallPartyFlip.md", + "documentation/models/CallPartyReply.md", + "documentation/models/BridgeTargetRequest.md", + "documentation/models/IgnoreRequestBody.md", + "documentation/models/CallRecordingUpdate.md", + "documentation/models/CallRecording.md", + "documentation/models/AnswerTarget.md", + "documentation/models/TransferTarget.md", + "documentation/models/PickupTarget.md", + "documentation/models/ForwardTarget.md", + "documentation/models/MessageTemplatesListResponse.md", + "documentation/models/MessageTemplateRequest.md", + "documentation/models/MessageTemplateResponse.md", + "documentation/models/VisibilityType.md", + "documentation/models/CallLogResponse.md", + "documentation/models/CallDirectionEnum.md", + "documentation/models/CallTypeEnum.md", + "documentation/models/ReadCompanyCallLogView.md", + "documentation/models/RecordingType.md", + "documentation/models/CallLogSyncResponse.md", + "documentation/models/SyncAccountCallLogSyncType.md", + "documentation/models/StatusGroup.md", + "documentation/models/CallTransportEnum.md", + "documentation/models/ConferenceType.md", + "documentation/models/ExtensionBulkUpdateRequest.md", + "documentation/models/UserTemplates.md", + "documentation/models/ListUserTemplatesType.md", + "documentation/models/TemplateInfo.md", + "documentation/models/GetExtensionListResponse.md", + "documentation/models/ListExtensionsStatus.md", + "documentation/models/ListExtensionsType.md", + "documentation/models/MessageStatusesResponse.md", + "documentation/models/SmsDirectionEnum.md", + "documentation/models/MessageListResponse.md", + "documentation/models/ListA2PsmsView.md", + "documentation/models/MessageDetailsResponse.md", + "documentation/models/OptOutListResponse.md", + "documentation/models/ReadA2PsmsOptOutsStatus.md", + "documentation/models/OptOutBulkAssignRequest.md", + "documentation/models/BatchListResponse.md", + "documentation/models/ListA2PBatchesStatus.md", + "documentation/models/MessageBatchCreateRequest.md", + "documentation/models/CompanyAnsweringRuleList.md", + "documentation/models/ForwardAllCompanyCallsInfo.md", + "documentation/models/ForwardAllCompanyCallsRequest.md", + "documentation/models/UserAnsweringRuleList.md", + "documentation/models/ListAnsweringRulesType.md", + "documentation/models/ListAnsweringRulesView.md", + "documentation/models/AddressBookBulkUploadRequest.md", + "documentation/models/FavoriteContactList.md", + "documentation/models/FavoriteCollection.md", + "documentation/models/ContactList.md", + "documentation/models/SortBy.md", + "documentation/models/PersonalContactRequest.md", + "documentation/models/AddressBookSync.md", + "documentation/models/SyncAddressBookSyncType.md", + "documentation/models/CallQueues.md", + "documentation/models/CallQueueBulkAssignResource.md", + "documentation/models/CallQueueMembers.md", + "documentation/models/DepartmentMemberList.md", + "documentation/models/DepartmentBulkAssignResource.md", + "documentation/models/UserCallQueues.md", + "documentation/models/CallQueueOverflowSettings.md", + "documentation/models/CallQueueOverflowSettingsRequestResource.md", + "documentation/models/CallQueuePresence.md", + "documentation/models/CallQueueUpdatePresence.md", + "documentation/models/AccountPresenceInfo.md", + "documentation/models/ExtensionCallQueuePresenceList.md", + "documentation/models/ExtensionCallQueueUpdatePresenceList.md", + "documentation/models/UnifiedPresenceListEntry.md", + "documentation/models/UpdateUnifiedPresence.md", + "documentation/models/EmergencyLocationsResource.md", + "documentation/models/EmergencyAddressStatus.md", + "documentation/models/EmergencyLocationUsageStatus.md", + "documentation/models/ListEmergencyLocationsOrderBy.md", + "documentation/models/EmergencyLocationResponseResource.md", + "documentation/models/CommonEmergencyLocationResource.md", + "documentation/models/GetExtensionEmergencyLocationsOrderBy.md", + "documentation/models/CreateUserEmergencyLocationRequest.md", + "documentation/models/AutomaticLocationUpdatesUserList.md", + "documentation/models/ListAutomaticLocationUpdatesUsersType.md", + "documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md", + "documentation/models/CreateMultipleWirelessPointsRequest.md", + "documentation/models/CreateMultipleWirelessPointsResponse.md", + "documentation/models/NetworksList.md", + "documentation/models/CreateNetworkRequest.md", + "documentation/models/NetworkInfo.md", + "documentation/models/UpdateNetworkRequest.md", + "documentation/models/ValidateMultipleSwitchesRequest.md", + "documentation/models/ValidateMultipleSwitchesResponse.md", + "documentation/models/SwitchesList.md", + "documentation/models/CreateSwitchInfo.md", + "documentation/models/SwitchInfo.md", + "documentation/models/UpdateSwitchInfo.md", + "documentation/models/ValidateMultipleWirelessPointsRequest.md", + "documentation/models/ValidateMultipleWirelessPointsResponse.md", + "documentation/models/WirelessPointsList.md", + "documentation/models/CreateWirelessPoint.md", + "documentation/models/WirelessPointInfo.md", + "documentation/models/UpdateWirelessPoint.md", + "documentation/models/ListDevicesAutomaticLocationUpdates.md", + "documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md", + "documentation/models/CreateMultipleSwitchesRequest.md", + "documentation/models/CreateMultipleSwitchesResponse.md", + "documentation/models/UpdateMultipleWirelessPointsRequest.md", + "documentation/models/UpdateMultipleWirelessPointsResponse.md", + "documentation/models/UpdateMultipleSwitchesRequest.md", + "documentation/models/UpdateMultipleSwitchesResponse.md", + "documentation/models/AccountLockedSettingResponse.md", + "documentation/models/ListMeetingRecordingsResponse.md", + "documentation/models/CreateUserMeetingProfileImageRequest.md", + "documentation/models/MeetingsResource.md", + "documentation/models/MeetingUserSettingsResponse.md", + "documentation/models/PublicMeetingInvitationResponse.md", + "documentation/models/MeetingServiceInfoResource.md", + "documentation/models/MeetingServiceInfoRequest.md", + "documentation/models/AssistedUsersResource.md", + "documentation/models/AssistantsResource.md", + "documentation/models/ExtensionWithRolesCollectionResource.md", + "documentation/models/RolesCollectionResource.md", + "documentation/models/DefaultUserRole.md", + "documentation/models/DefaultUserRoleRequest.md", + "documentation/models/BulkRoleAssignResource.md", + "documentation/models/AssignedRolesResource.md", + "documentation/models/CallMonitoringGroups.md", + "documentation/models/CreateCallMonitoringGroupRequest.md", + "documentation/models/CallMonitoringGroup.md", + "documentation/models/CallMonitoringBulkAssign.md", + "documentation/models/CallMonitoringGroupMemberList.md", + "documentation/models/AccountHistorySearchPublicResponse.md", + "documentation/models/CreateMessageStoreReportRequest.md", + "documentation/models/MessageStoreReportArchive.md", + "documentation/models/DirectoryResource.md", + "documentation/models/ListDirectoryEntriesType.md", + "documentation/models/TypeGroup.md", + "documentation/models/SearchDirectoryExtensionType.md", + "documentation/models/FederationResource.md", + "documentation/models/FederationTypes.md", + "documentation/models/PagingOnlyGroupUsers.md", + "documentation/models/EditPagingGroupRequest.md", + "documentation/models/PagingOnlyGroupDevices.md", + "documentation/models/SitesList.md", + "documentation/models/CreateSiteRequest.md", + "documentation/models/SiteInfo.md", + "documentation/models/SiteUpdateRequest.md", + "documentation/models/SiteMembersBulkUpdate.md", + "documentation/models/SiteMembersList.md", + "documentation/models/SiteIvrSettings.md", + "documentation/models/SiteIvrSettingsUpdate.md", + "documentation/models/CreateInternalTextMessageRequest.md", + "documentation/models/AuthProfileResource.md", + "documentation/models/AuthProfileCheckResource.md", + "documentation/models/PermissionCollectionResource.md", + "documentation/models/PermissionCategoryCollectionResource.md", + "documentation/models/PermissionCategoryResource.md", + "documentation/models/GetExtensionForwardingNumberListResponse.md", + "documentation/models/DeleteForwardingNumbersRequest.md", + "documentation/models/CreateFaxMessageRequest.md", + "documentation/models/ListFaxCoverPagesResponse.md", + "documentation/models/MakeRingOutRequest.md", + "documentation/models/GetRingOutStatusResponse.md", + "documentation/models/BusinessSiteCollectionResource.md", + "documentation/models/BusinessSiteCollectionRequest.md", + "documentation/models/CreateSmsMessage.md", + "documentation/models/CreateMmsMessage.md", + "documentation/models/FeatureList.md", + "documentation/models/BlockedAllowedPhoneNumbersList.md", + "documentation/models/BlockedNumberStatusEnum.md", + "documentation/models/AddBlockedAllowedPhoneNumber.md", + "documentation/models/BlockedAllowedPhoneNumberInfo.md", + "documentation/models/CreateSubscriptionRequest.md", + "documentation/models/GetStateListResponse.md", + "documentation/models/GetStateInfoResponse.md", + "documentation/models/GetLocationListResponse.md", + "documentation/models/ListLocationsOrderBy.md", + "documentation/models/LanguageList.md", + "documentation/models/LanguageInfo.md", + "documentation/models/GetTimezoneListResponse.md", + "documentation/models/GetTimezoneInfoResponse.md", + "documentation/models/CountryInfoDictionaryModel.md", + "documentation/models/CreateSipRegistrationResponse.md", + "documentation/models/CaiAsyncApiResponse.md", + "documentation/models/PunctuateInput.md", + "documentation/models/ListEnrolledSpeakers.md", + "documentation/models/ContentList.md", + "documentation/models/ContentStatus.md", + "documentation/models/SocMsgCreationTimeOrder.md", + "documentation/models/ContentModel.md", + "documentation/models/IdentitiesList.md", + "documentation/models/IdentityModel.md", + "documentation/models/ScimSchemaResponse.md", + "documentation/models/AggregationRequest.md", + "documentation/models/AggregationResponse.md", + "documentation/models/TimelineRequest.md", + "documentation/models/TimelineResponse.md", + "documentation/models/Interval.md", + "documentation/models/TmTaskList.md", + "documentation/models/ListChatTasksNewStatus.md", + "documentation/models/AssignmentStatus.md", + "documentation/models/AssigneeStatus.md", + "documentation/models/TmEventList.md", + "documentation/models/TmChatListWithoutNavigation.md", + "documentation/models/ListRecentChatsNewType.md", + "documentation/models/TmChatList.md", + "documentation/models/ListGlipChatsNewType.md", + "documentation/models/CreateGlipFileNewRequest.md", + "documentation/models/TmAddFileRequest.md", + "documentation/models/TmPostsList.md", + "documentation/models/TmCreatePostRequest.md", + "documentation/models/TmUpdatePostRequest.md", + "documentation/models/TmNoteList.md", + "documentation/models/ListChatNotesNewStatus.md", + "documentation/models/TmCreateNoteRequest.md", + "documentation/models/TmWebhookList.md", + "documentation/models/TmCompanyInfo.md", + "documentation/models/TmPersonInfo.md", + "documentation/models/TmConversationList.md", + "documentation/models/DataExportTaskList.md", + "documentation/models/ListDataExportTasksNewStatus.md", + "documentation/models/CreateDataExportTaskRequest.md", + "documentation/models/UpdateEveryoneTeamRequest.md", + "documentation/models/TmTeamList.md", + "documentation/models/TmUpdateTeamRequest.md", + "documentation/models/DisabledFilterInfo.md", + "documentation/models/NotificationDeliveryMode.md", + "documentation/models/HostModel.md", + "documentation/models/SessionRuntimeStatusModel.md", + "documentation/models/RecordingExtendedModel.md", + "documentation/models/SessionLivestreamMinimalModel.md", + "documentation/models/SessionLivestreamStatusModel.md", + "documentation/models/RcwPagingModel.md", + "documentation/models/SessionGlobalResource.md", + "documentation/models/WebinarRefModel.md", + "documentation/models/RecordingModel.md", + "documentation/models/RecordingAdminModel.md", + "documentation/models/SessionRefAdminModel.md", + "documentation/models/RecordingItemModel.md", + "documentation/models/SessionRefModel.md", + "documentation/models/RcwPagingForwardModel.md", + "documentation/models/RegAnswerModel.md", + "documentation/models/FixedAnswerModel.md", + "documentation/models/VariableAnswerModel.md", + "documentation/models/WcsHostModel.md", + "documentation/models/RcwLinkedUserModel.md", + "documentation/models/SessionGlobalListEntry.md", + "documentation/models/WcsWebinarRefModel.md", + "documentation/models/RcwInviteeTypeEnum.md", + "documentation/models/AddInviteeRequest.md", + "documentation/models/RcwResourceIdModel.md", + "documentation/models/AnsweringRuleQueryRequest.md", + "documentation/models/CustomGreetingAnsweringRuleInfo.md", + "documentation/models/CustomCompanyGreetingLanguageInfo.md", + "documentation/models/PageNavigationModel.md", + "documentation/models/EnumeratedPagingModel.md", + "documentation/models/GreetingTypeEnum.md", + "documentation/models/PageNavigationUri.md", + "documentation/models/PostalAddress.md", + "documentation/models/PhoneNumberDefinitionTollType.md", + "documentation/models/PhoneNumberDefinitionPreferredAreaCode.md", + "documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md", + "documentation/models/PhoneNumberDefinitionNumberId.md", + "documentation/models/BatchProvisionErrorItem.md", + "documentation/models/ApiErrorWithParameter.md", + "documentation/models/BulkOperationExtensionReference.md", + "documentation/models/GetExtensionAccountInfo.md", + "documentation/models/ContactInfo.md", + "documentation/models/CostCenterInfo.md", + "documentation/models/CustomFieldInfo.md", + "documentation/models/DepartmentInfo.md", + "documentation/models/ExtensionPermissions.md", + "documentation/models/ProfileImageInfo.md", + "documentation/models/Roles.md", + "documentation/models/SetupWizardStateForUpdateEnum.md", + "documentation/models/CallQueueExtensionInfo.md", + "documentation/models/ProvisioningSiteInfo.md", + "documentation/models/AssignedCountryInfo.md", + "documentation/models/ContactBusinessAddressInfo.md", + "documentation/models/PermissionInfoAdmin.md", + "documentation/models/PermissionInfoInt.md", + "documentation/models/ProfileImageInfoUri.md", + "documentation/models/CountryInfoShortModel.md", + "documentation/models/TimezoneInfo.md", + "documentation/models/RegionalLanguageInfo.md", + "documentation/models/GreetingLanguageInfo.md", + "documentation/models/FormattingLocaleInfo.md", + "documentation/models/ContactInfoUpdateRequest.md", + "documentation/models/CallQueueInfoRequest.md", + "documentation/models/UserTransitionInfo.md", + "documentation/models/SiteReference.md", + "documentation/models/ExtensionCountryInfoRequest.md", + "documentation/models/ExtensionTimezoneInfoRequest.md", + "documentation/models/ExtensionLanguageInfoRequest.md", + "documentation/models/ExtensionGreetingLanguageInfoRequest.md", + "documentation/models/ExtensionFormattingLocaleInfoRequest.md", + "documentation/models/ExtensionCurrencyInfoRequest.md", + "documentation/models/GrantInfo.md", + "documentation/models/PhoneNumberInfoConferencing.md", + "documentation/models/ConferencePhoneNumberInfo.md", + "documentation/models/CallerIdByDevice.md", + "documentation/models/CallerIdDeviceInfo.md", + "documentation/models/CallerIdByDeviceInfo.md", + "documentation/models/CallerIdPhoneInfo.md", + "documentation/models/CallerIdByFeatureInfo.md", + "documentation/models/CallerIdByDeviceRequest.md", + "documentation/models/CallerIdDeviceInfoRequest.md", + "documentation/models/CallerIdByDeviceInfoRequest.md", + "documentation/models/CallerIdPhoneInfoRequest.md", + "documentation/models/CallerIdByFeatureInfoRequest.md", + "documentation/models/VoicemailsInfo.md", + "documentation/models/InboundFaxesInfo.md", + "documentation/models/OutboundFaxesInfo.md", + "documentation/models/InboundTextsInfo.md", + "documentation/models/MissedCallsInfo.md", + "documentation/models/SyncInfoMessages.md", + "documentation/models/MessageAttachmentInfo.md", + "documentation/models/ConversationInfo.md", + "documentation/models/FaxResolutionEnum.md", + "documentation/models/MessageStoreCallerInfoResponseFrom.md", + "documentation/models/MessageStatusEnum.md", + "documentation/models/MessagePriorityEnum.md", + "documentation/models/MessageStoreCallerInfoResponseTo.md", + "documentation/models/MessageAttachmentTypeEnum.md", + "documentation/models/FaxErrorCodeEnum.md", + "documentation/models/MessagingNavigationInfo.md", + "documentation/models/MessagingPagingInfo.md", + "documentation/models/MessagingNavigationInfoUri.md", + "documentation/models/IvrMenuListInfo.md", + "documentation/models/IvrMenuSiteInfo.md", + "documentation/models/AudioPromptInfo.md", + "documentation/models/PromptLanguageInfo.md", + "documentation/models/IvrMenuExtensionInfo.md", + "documentation/models/BridgePins.md", + "documentation/models/BridgeRequestSecurity.md", + "documentation/models/BridgePstnPins.md", + "documentation/models/RecordingsPreferences.md", + "documentation/models/BridgeJoinPstnPreferences.md", + "documentation/models/EveryoneCanControl.md", + "documentation/models/AutoShared.md", + "documentation/models/User.md", + "documentation/models/BridgePinsWithAliases.md", + "documentation/models/BridgeResponseSecurity.md", + "documentation/models/BridgeDiscovery.md", + "documentation/models/BridgeResponseSecurityPassword.md", + "documentation/models/BridgePinsWithoutPstn.md", + "documentation/models/CloudRecording.md", + "documentation/models/Paging.md", + "documentation/models/Host.md", + "documentation/models/Delegate.md", + "documentation/models/Participant.md", + "documentation/models/ServiceInfoV2.md", + "documentation/models/SystemUserContactInfo.md", + "documentation/models/ServiceInfoBrand.md", + "documentation/models/ServiceInfoCountryShortModel.md", + "documentation/models/ServiceInfoUBrand.md", + "documentation/models/AccountOperatorInfo.md", + "documentation/models/ServiceInfo.md", + "documentation/models/SetupWizardStateEnum.md", + "documentation/models/AccountLimits.md", + "documentation/models/BrandInfo.md", + "documentation/models/UBrandInfo.md", + "documentation/models/CurrencyInfo.md", + "documentation/models/PackageInfo.md", + "documentation/models/BusinessAddressInfo.md", + "documentation/models/SiteBasicInfo.md", + "documentation/models/BulkAddDevicesSuccessItem.md", + "documentation/models/BulkAddDevicesErrorItem.md", + "documentation/models/ModelInfo.md", + "documentation/models/ExtensionInfoIntId.md", + "documentation/models/PhoneLinesInfo.md", + "documentation/models/ShippingInfo.md", + "documentation/models/DeviceSiteInfo.md", + "documentation/models/LinePoolingEnum.md", + "documentation/models/BillingStatementInfo.md", + "documentation/models/AddonInfo.md", + "documentation/models/CommonEmergencyLocationAddressInfoDefault.md", + "documentation/models/DeviceEmergencyLocationInfo.md", + "documentation/models/PhoneNumberCountryInfo.md", + "documentation/models/DeviceProvisioningExtensionInfo.md", + "documentation/models/ShippingStatus.md", + "documentation/models/ShippingAddressInfo.md", + "documentation/models/BillingStatementCharges.md", + "documentation/models/BillingStatementFees.md", + "documentation/models/EmergencyServiceAddressResourceRequest.md", + "documentation/models/DeviceUpdateExtensionInfo.md", + "documentation/models/DeviceUpdatePhoneLinesInfo.md", + "documentation/models/UpdateDevicePhoneInfo.md", + "documentation/models/OutboundProxyInfo.md", + "documentation/models/DeletePhoneNumbersRequestItem.md", + "documentation/models/DeletePhoneNumbersResponseItem.md", + "documentation/models/AddPhoneNumbersResponseItem.md", + "documentation/models/CountryInfoBasicModel.md", + "documentation/models/ContactCenterProvider.md", + "documentation/models/ExtensionInfo.md", + "documentation/models/TemporaryNumberInfo.md", + "documentation/models/GetCountryInfoNumberParser.md", + "documentation/models/PhoneNumberInfoNumberParser.md", + "documentation/models/CompanyBusinessHoursScheduleInfo.md", + "documentation/models/WeeklyScheduleInfo.md", + "documentation/models/TimeInterval.md", + "documentation/models/ScheduleInfoUserBusinessHours.md", + "documentation/models/UserBusinessHoursScheduleInfo.md", + "documentation/models/OnDemandResource.md", + "documentation/models/AutomaticRecordingResource.md", + "documentation/models/CallRecordingCustomGreetingData.md", + "documentation/models/CallRecordingCustomGreetingLanguage.md", + "documentation/models/CallRecordingExtensionInfo.md", + "documentation/models/MakeCallOutCallerInfoRequestFrom.md", + "documentation/models/MakeCallOutCallerInfoRequestTo.md", + "documentation/models/ParkInfo.md", + "documentation/models/PartyInfo.md", + "documentation/models/OwnerInfo.md", + "documentation/models/RecordingInfo.md", + "documentation/models/PeerInfo.md", + "documentation/models/PartyUpdateInfo.md", + "documentation/models/Site.md", + "documentation/models/ExtensionInfoCallLog.md", + "documentation/models/CallLogFromParty.md", + "documentation/models/CallLogToParty.md", + "documentation/models/CallLogRecordMessage.md", + "documentation/models/CallLogDelegateInfo.md", + "documentation/models/DelegationTypeEnum.md", + "documentation/models/CallActionEnum.md", + "documentation/models/CallResultEnum.md", + "documentation/models/CallResultReasonEnum.md", + "documentation/models/BillingInfo.md", + "documentation/models/CallInternalTypeEnum.md", + "documentation/models/CallLogRecordDeviceInfo.md", + "documentation/models/CallLegTypeEnum.md", + "documentation/models/CallLogSyncInfo.md", + "documentation/models/CallLogSyncTypeEnum.md", + "documentation/models/ExtensionBulkUpdateTaskResult.md", + "documentation/models/ErrorEntity.md", + "documentation/models/ContactInfoCreationRequest.md", + "documentation/models/OperatorInfo.md", + "documentation/models/MessageStatusCounts.md", + "documentation/models/MessageListMessageResponse.md", + "documentation/models/PagingResource.md", + "documentation/models/SmsStatusEnum.md", + "documentation/models/OptOutBulkAssignFailedEntry.md", + "documentation/models/RejectedRecipientResponseResource.md", + "documentation/models/MessageCreateRequest.md", + "documentation/models/CalledNumberInfo.md", + "documentation/models/CompanyAnsweringRuleExtensionInfo.md", + "documentation/models/CompanyAnsweringRuleCallersInfoRequest.md", + "documentation/models/CompanyAnsweringRuleCalledNumberInfo.md", + "documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md", + "documentation/models/GreetingInfo.md", + "documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md", + "documentation/models/RangesInfo.md", + "documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md", + "documentation/models/PresetInfo.md", + "documentation/models/CustomGreetingInfoRequest.md", + "documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md", + "documentation/models/IvrCallHandlingActionEnum.md", + "documentation/models/ExtensionShortInfoResource.md", + "documentation/models/CallersInfo.md", + "documentation/models/TransferredExtensionInfo.md", + "documentation/models/VoicemailInfo.md", + "documentation/models/SharedLinesInfo.md", + "documentation/models/ForwardingRuleInfo.md", + "documentation/models/FixedOrderAgents.md", + "documentation/models/TransferExtensionInfo.md", + "documentation/models/FixedOrderAgentsExtensionInfo.md", + "documentation/models/TransferredExtension.md", + "documentation/models/RecipientInfo.md", + "documentation/models/MissedCallExtensionInfo.md", + "documentation/models/MissedCallExtensionInfoExternalNumber.md", + "documentation/models/CallersInfoRequest.md", + "documentation/models/ForwardingRuleCreateRequest.md", + "documentation/models/AddressBookBulkUploadResource.md", + "documentation/models/AddressBookBulkContactResource.md", + "documentation/models/AddressBookBulkContactAddressInfo.md", + "documentation/models/AddressBookBulkUploadTaskResult.md", + "documentation/models/FavoriteContactResource.md", + "documentation/models/UserContactsNavigationInfo.md", + "documentation/models/UserContactsPagingInfo.md", + "documentation/models/UserContactsGroupsInfo.md", + "documentation/models/ContactAddressInfo.md", + "documentation/models/UserContactsNavigationInfoUri.md", + "documentation/models/CallQueueServiceLevelSettings.md", + "documentation/models/CallQueueMemberInfo.md", + "documentation/models/BulkAssignItem.md", + "documentation/models/QueueShortInfoResource.md", + "documentation/models/CallQueueIdResource.md", + "documentation/models/CallQueueMemberPresence.md", + "documentation/models/CallQueueMember.md", + "documentation/models/SiteResource.md", + "documentation/models/CallQueueUpdateMemberPresence.md", + "documentation/models/CallQueueMemberId.md", + "documentation/models/PresenceNavigationInfo.md", + "documentation/models/PresencePagingInfo.md", + "documentation/models/GetPresenceExtensionInfo.md", + "documentation/models/DetailedCallInfo.md", + "documentation/models/CallInfoCq.md", + "documentation/models/PresenceNavigationInfoUri.md", + "documentation/models/ExtensionCallQueuePresence.md", + "documentation/models/PresenceCallQueueInfo.md", + "documentation/models/ExtensionCallQueueUpdatePresence.md", + "documentation/models/CallQueueId.md", + "documentation/models/EmergencyLocationsPaging.md", + "documentation/models/CommonEmergencyLocationAddressInfo.md", + "documentation/models/ShortSiteInfo.md", + "documentation/models/AddressStatus.md", + "documentation/models/UsageStatus.md", + "documentation/models/SyncStatus.md", + "documentation/models/EmergencyAddressType.md", + "documentation/models/Visibility.md", + "documentation/models/LocationOwnerInfo.md", + "documentation/models/CommonEmergencyLocationAddressInfoAu.md", + "documentation/models/CommonEmergencyLocationAddressInfoFr.md", + "documentation/models/LocationDeletionErrorInfo.md", + "documentation/models/TaskResultInfo.md", + "documentation/models/TaskResultRecord.md", + "documentation/models/TaskResultRecordErrorsInfo.md", + "documentation/models/AutomaticLocationUpdatesSiteInfo.md", + "documentation/models/EmergencyAddressAutoUpdateSiteInfo.md", + "documentation/models/EmergencyLocationInfo.md", + "documentation/models/PublicIpRangeInfo.md", + "documentation/models/PrivateIpRangeInfo.md", + "documentation/models/PrivateIpRangeInfoRequest.md", + "documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md", + "documentation/models/ErlLocationInfo.md", + "documentation/models/SwitchSiteInfo.md", + "documentation/models/ValidationError.md", + "documentation/models/AutomaticLocationUpdatesDeviceInfo.md", + "documentation/models/AutomaticLocationUpdatesDeviceType.md", + "documentation/models/AutomaticLocationUpdatesModelInfo.md", + "documentation/models/AutomaticLocationUpdatesPhoneLine.md", + "documentation/models/AutomaticLocationUpdatesModelFeature.md", + "documentation/models/AutomaticLocationUpdatesPhoneLineType.md", + "documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md", + "documentation/models/ScheduleMeetingResponse.md", + "documentation/models/AccountLockSettingRecordResponse.md", + "documentation/models/MeetingLinks.md", + "documentation/models/MeetingScheduleResource.md", + "documentation/models/HostInfoRequest.md", + "documentation/models/RecurrenceInfo.md", + "documentation/models/MeetingOccurrenceInfo.md", + "documentation/models/MeetingsTimezoneResource.md", + "documentation/models/MeetingFrequency.md", + "documentation/models/WeekDay.md", + "documentation/models/MonthlyWeek.md", + "documentation/models/MeetingRecordings.md", + "documentation/models/MeetingRecordingsPagingInfo.md", + "documentation/models/MeetingRecordingsNavigationInfo.md", + "documentation/models/MeetingInfo.md", + "documentation/models/MeetingRecordingsNavigationInfoUri.md", + "documentation/models/MeetingsPagingInfo.md", + "documentation/models/MeetingsNavigationInfo.md", + "documentation/models/MeetingsNavigationInfoUri.md", + "documentation/models/TelephonyUserMeetingSettings.md", + "documentation/models/UserInMeetingResponse.md", + "documentation/models/GlobalDialInCountryResponse.md", + "documentation/models/MeetingExternalUserInfoResource.md", + "documentation/models/DialInNumberResource.md", + "documentation/models/MeetingsCountryResource.md", + "documentation/models/AssistedUserResource.md", + "documentation/models/AssistantResource.md", + "documentation/models/ExtensionWithRolesResource.md", + "documentation/models/AssignedRoleResource.md", + "documentation/models/PermissionsCapabilities.md", + "documentation/models/AccountHistoryPublicRecord.md", + "documentation/models/AccountHistoryPaging.md", + "documentation/models/AccountHistoryRecordPublicInitiator.md", + "documentation/models/AccountHistoryRecordPublicDetails.md", + "documentation/models/AccountHistoryRecordDetailsParameters.md", + "documentation/models/PicMessageTypeEnum.md", + "documentation/models/ArchiveInfo.md", + "documentation/models/AccountResource.md", + "documentation/models/AccountDirectoryProfileImageResource.md", + "documentation/models/BusinessSiteResource.md", + "documentation/models/DirectoryRoleResource.md", + "documentation/models/CallQueueResource.md", + "documentation/models/CustomFieldResource.md", + "documentation/models/GroupResource.md", + "documentation/models/CostCenterResource.md", + "documentation/models/ExternalIntegrationResource.md", + "documentation/models/ContactSubTypeEnum.md", + "documentation/models/SearchDirectoryContactType.md", + "documentation/models/FederatedAccountResource.md", + "documentation/models/FederationType.md", + "documentation/models/PagingGroupExtensionInfo.md", + "documentation/models/PagingDeviceInfo.md", + "documentation/models/SiteOperatorReference.md", + "documentation/models/SiteMemberInfo.md", + "documentation/models/SiteIvrTopMenu.md", + "documentation/models/SiteIvrActionsExtensionInfo.md", + "documentation/models/SiteIvrTopMenuUpdate.md", + "documentation/models/SiteIvrActionsExtensionInfoUpdate.md", + "documentation/models/PagerCallerInfoRequest.md", + "documentation/models/RoleIdResource.md", + "documentation/models/PermissionCategoryIdResource.md", + "documentation/models/CreateForwardingNumberDeviceInfo.md", + "documentation/models/ForwardingNumberId.md", + "documentation/models/FaxRequestTo.md", + "documentation/models/FaxResponseTo.md", + "documentation/models/FaxCoverPageInfo.md", + "documentation/models/MakeRingOutCallerInfoRequestFrom.md", + "documentation/models/MakeRingOutCallerInfoRequestTo.md", + "documentation/models/MakeRingOutCallerIdInfo.md", + "documentation/models/MakeRingOutCountryInfo.md", + "documentation/models/RolesBusinessSiteResource.md", + "documentation/models/BasicExtensionInfoResource.md", + "documentation/models/ContactAddressInfoResource.md", + "documentation/models/RolesTimezoneResource.md", + "documentation/models/RolesCountryResource.md", + "documentation/models/RolesLanguageResource.md", + "documentation/models/CurrencyResource.md", + "documentation/models/MessageStoreCallerInfoRequest.md", + "documentation/models/SmsRequestCountryInfo.md", + "documentation/models/FeatureInfo.md", + "documentation/models/ParamsInfo.md", + "documentation/models/BlockedCallerGreetingInfo.md", + "documentation/models/NotificationDeliveryModeRequest.md", + "documentation/models/CountryInfoMinimalModel.md", + "documentation/models/LocationInfo.md", + "documentation/models/LocationStateInfo.md", + "documentation/models/DeviceInfoRequest.md", + "documentation/models/SipFlagsResponse.md", + "documentation/models/DeviceExtensionInfo.md", + "documentation/models/DeviceEmergencyServiceAddressResourceDefault.md", + "documentation/models/DeviceAddonInfo.md", + "documentation/models/SipRegistrationDeviceLocationInfo.md", + "documentation/models/DeviceEmergencyServiceAddressResourceAu.md", + "documentation/models/DeviceEmergencyServiceAddressResourceFr.md", + "documentation/models/DevicePhoneLinesEmergencyAddressInfo.md", + "documentation/models/DevicePhoneNumberCountryInfo.md", + "documentation/models/AuthorizationType.md", + "documentation/models/SummaryOutput.md", + "documentation/models/CaiErrorResponse.md", + "documentation/models/SummaryTimingsUnit.md", + "documentation/models/PunctuateOutput.md", + "documentation/models/DiarizedObject.md", + "documentation/models/DiarizeSegment.md", + "documentation/models/SpeakerIdentificationObject.md", + "documentation/models/TranscribedObject.md", + "documentation/models/UtteranceObject.md", + "documentation/models/WordSegment.md", + "documentation/models/WordTimingsUnit.md", + "documentation/models/InteractionObject.md", + "documentation/models/UtteranceInsightsObject.md", + "documentation/models/SpeakerInsightsObject.md", + "documentation/models/SpeakerInsightsValuesItems.md", + "documentation/models/ConversationalInsightsUnitValues.md", + "documentation/models/SummaryUnit.md", + "documentation/models/PagingSchema.md", + "documentation/models/SpeechContextPhrasesInput.md", + "documentation/models/InsightsEnum.md", + "documentation/models/NonEnumeratedPagingModel.md", + "documentation/models/ContentAttachment.md", + "documentation/models/ContentBodyFormatted.md", + "documentation/models/ContentBodyInputFormat.md", + "documentation/models/ContentCreatedFrom.md", + "documentation/models/ContentSourceType.md", + "documentation/models/ContentType.md", + "documentation/models/SocMsgGender.md", + "documentation/models/IdentityType.md", + "documentation/models/ScimName.md", + "documentation/models/ScimEnterpriseUser.md", + "documentation/models/ScimAuthenticationScheme.md", + "documentation/models/ScimBulkSupported.md", + "documentation/models/ScimSupported.md", + "documentation/models/ScimFilterSupported.md", + "documentation/models/TimeSettings.md", + "documentation/models/CallFilters.md", + "documentation/models/AggregationResponseOptions.md", + "documentation/models/DirectGrouping.md", + "documentation/models/GroupingByMembers.md", + "documentation/models/GroupingOptions.md", + "documentation/models/MembersGroupingOptions.md", + "documentation/models/TimeRange.md", + "documentation/models/AdvancedTimeSettings.md", + "documentation/models/DayOfWeek.md", + "documentation/models/HoursInterval.md", + "documentation/models/ExtensionFilters.md", + "documentation/models/Direction.md", + "documentation/models/Origin.md", + "documentation/models/CallResponse.md", + "documentation/models/CallResult.md", + "documentation/models/CallSegmentFilter.md", + "documentation/models/CallAction.md", + "documentation/models/CompanyHoursOptions.md", + "documentation/models/CallDurationFilter.md", + "documentation/models/TimeSpentFilter.md", + "documentation/models/QueueSlaOptions.md", + "documentation/models/CallType.md", + "documentation/models/CallSegmentOptions.md", + "documentation/models/CallSegmentLengthFilter.md", + "documentation/models/AggregationType.md", + "documentation/models/AggregationInterval.md", + "documentation/models/QueueOpportunitiesAggregationType.md", + "documentation/models/ResponsePaging.md", + "documentation/models/AggregationResponseData.md", + "documentation/models/AggregationResponseRecord.md", + "documentation/models/KeyInfo.md", + "documentation/models/CallsTimers.md", + "documentation/models/CallsCounters.md", + "documentation/models/AllCalls.md", + "documentation/models/CallsByDirection.md", + "documentation/models/CallsByOrigin.md", + "documentation/models/CallsByResponse.md", + "documentation/models/CallsBySegments.md", + "documentation/models/CallsByResult.md", + "documentation/models/CallsByCompanyHours.md", + "documentation/models/CallsByQueueSla.md", + "documentation/models/CallsByType.md", + "documentation/models/ValueType.md", + "documentation/models/CallsByDirectionBreakdown.md", + "documentation/models/CallsByOriginBreakdown.md", + "documentation/models/CallsByResponseBreakdown.md", + "documentation/models/CallsBySegmentsBreakdown.md", + "documentation/models/CallsByResultBreakdown.md", + "documentation/models/CallsByCompanyHoursBreakdown.md", + "documentation/models/CallsByQueueSlaBreakdown.md", + "documentation/models/CallsByTypeBreakdown.md", + "documentation/models/CallsByActions.md", + "documentation/models/QueueOpportunities.md", + "documentation/models/CallsByActionsBreakdown.md", + "documentation/models/TimelineResponseOptions.md", + "documentation/models/TimelineResponseOptionsCounters.md", + "documentation/models/TimelineResponseOptionsTimers.md", + "documentation/models/TimelineResponseData.md", + "documentation/models/TimelineResponseRecord.md", + "documentation/models/TimelineResponsePoint.md", + "documentation/models/TmNavigationInfo.md", + "documentation/models/TmChatMemberInfo.md", + "documentation/models/TmAttachmentAuthorInfo.md", + "documentation/models/TmAttachmentFootnoteInfo.md", + "documentation/models/AdaptiveCardColumnInfo.md", + "documentation/models/AdaptiveCardColumnItemInfo.md", + "documentation/models/AdaptiveCardCreator.md", + "documentation/models/TmCreatorInfo.md", + "documentation/models/LastModifiedByInfo.md", + "documentation/models/LockedByInfo.md", + "documentation/models/GlipDataExportNavigationInfo.md", + "documentation/models/GlipDataExportPagingInfo.md", + "documentation/models/CreatorInfo.md", + "documentation/models/SpecificInfo.md", + "documentation/models/ExportTaskResultInfo.md", + "documentation/models/DataExportTaskContactInfo.md", + "documentation/models/GlipDataExportNavigationInfoUri.md", + "src/ring_central/models/get_bulk_add_task_results_v2_ok_response.py", + "src/ring_central/models/notification_delivery_mode.py", + "src/ring_central/models/reg_answer_model.py", + "src/ring_central/models/common_emergency_location_address_info.py", + "src/ring_central/models/notification_delivery_mode_request.py", + "src/ring_central/models/summary_api_response.py", + "src/ring_central/models/punctuate_api_response.py", + "src/ring_central/models/grouping.py", + "src/ring_central/services/delegation_management.py", + "src/ring_central/services/audit_trail.py", + "src/ring_central/services/video_configuration.py", + "src/ring_central/services/pager_messages.py", + "src/ring_central/services/features.py", + "src/ring_central/services/device_sip_registration.py", + "src/ring_central/services/status.py", + "src/ring_central/services/insights.py", + "documentation/services/RcmMeetingsLegacyService.md", + "documentation/models/ParticipantReducedModel.md", + "documentation/models/InviteeModel.md", + "documentation/models/RecordingDownloadModel.md", + "documentation/models/BulkUpdateInviteesRequest.md", + "documentation/models/GreetingsCreateCompanyGreetingRequest1.md", + "documentation/models/GreetingsCreateCompanyGreetingRequest2.md", + "documentation/models/GreetingsCreateCustomUserGreetingRequest1.md", + "documentation/models/GreetingsCreateCustomUserGreetingRequest2.md", + "documentation/models/BatchProvisionUsersResponse.md", + "documentation/models/BulkDeleteUsersResponse.md", + "documentation/models/CreateBridgeRequest.md", + "documentation/models/BridgeResponse.md", + "documentation/models/TokenInfo.md", + "documentation/models/AuthorizeRequest.md", + "documentation/models/RevokeTokenRequest.md", + "documentation/models/AccountInfo.md", + "documentation/models/GetAccountInfoResponse.md", + "documentation/models/ContractedCountryListResponse.md", + "documentation/models/AddDeviceToInventoryResponse.md", + "documentation/models/DeleteDeviceFromInventoryRequest.md", + "documentation/models/DeleteDeviceFromInventoryResponse.md", + "documentation/models/RemoveLineResponse.md", + "documentation/models/BulkAddDevicesResponse.md", + "documentation/models/AccountPhoneNumberInfo.md", + "documentation/models/CustomFieldCreateRequest.md", + "documentation/models/CustomFieldModel.md", + "documentation/models/ReplyParty.md", + "documentation/models/PartySuperviseResponse.md", + "documentation/models/HoldCallPartyRequest.md", + "documentation/models/SuperviseCallSessionResponse.md", + "documentation/models/ExtensionBulkUpdateTaskResource.md", + "documentation/models/MessageBatchResponse.md", + "documentation/models/AddressBookBulkUploadResponse.md", + "documentation/models/PersonalContactResource.md", + "documentation/models/UnifiedPresence.md", + "documentation/models/RoleResource.md", + "documentation/models/MessageStoreReport.md", + "documentation/models/GetInternalTextMessageInfoResponse.md", + "documentation/models/PermissionResource.md", + "documentation/models/CreateForwardingNumberRequest.md", + "documentation/models/UpdateForwardingNumberRequest.md", + "documentation/models/FaxResponse.md", + "documentation/models/GetSmsMessageInfoResponse.md", + "documentation/models/CreateSipRegistrationRequest.md", + "documentation/models/SummaryInput.md", + "documentation/models/EnrollmentInput.md", + "documentation/models/EnrollmentStatus.md", + "documentation/models/EnrollmentPatchInput.md", + "documentation/models/CreateContentRequest.md", + "documentation/models/ScimSchemaSearchResponse.md", + "documentation/models/ScimUserSearchResponse.md", + "documentation/models/ScimUser.md", + "documentation/models/ScimUserResponse.md", + "documentation/models/ScimSearchRequest.md", + "documentation/models/ScimUserPatch.md", + "documentation/models/ScimProviderConfig.md", + "documentation/models/ScimResourceTypeSearchResponse.md", + "documentation/models/ScimResourceTypeResponse.md", + "documentation/models/TmCreateEventRequest.md", + "documentation/models/TmEventInfo.md", + "documentation/models/TmPostInfo.md", + "documentation/models/AdaptiveCardShortInfo.md", + "documentation/models/TmWebhookInfo.md", + "documentation/models/CreateConversationRequest.md", + "documentation/models/TmConversationInfo.md", + "documentation/models/DataExportTask.md", + "documentation/models/EveryoneTeamInfo.md", + "documentation/models/TmCreateTeamRequest.md", + "documentation/models/TmRemoveTeamMembersRequest.md", + "documentation/models/TmAddTeamMembersRequest.md", + "documentation/models/WebSocketDeliveryMode.md", + "documentation/models/WebhookDeliveryModeRequest.md", + "documentation/models/RcwDomainUserModel.md", + "documentation/models/ParticipantExtendedModel.md", + "documentation/models/ReferenceInfo.md", + "documentation/models/RegionalSettings.md", + "documentation/models/ExtensionServiceFeatureInfo.md", + "documentation/models/ExtensionStatusInfo.md", + "documentation/models/PronouncedNameInfo.md", + "documentation/models/PronouncedNamePromptInfo.md", + "documentation/models/ExtensionRegionalSettingRequest.md", + "documentation/models/ExtensionInfoGrants.md", + "documentation/models/CallerIdByFeature.md", + "documentation/models/CallerIdByFeatureRequest.md", + "documentation/models/IvrMenuPromptInfo.md", + "documentation/models/IvrMenuActionsInfo.md", + "documentation/models/BridgeJoinPreferences.md", + "documentation/models/AccountStatusInfo.md", + "documentation/models/ServiceInfoPackage.md", + "documentation/models/ServiceInfoPlan.md", + "documentation/models/AccountRegionalSettings.md", + "documentation/models/ServicePlanInfo.md", + "documentation/models/TargetServicePlanInfo.md", + "documentation/models/ServiceFeatureInfo.md", + "documentation/models/EmergencyAddress.md", + "documentation/models/AddPhoneNumberRequestItem.md", + "documentation/models/UserPhoneNumberExtensionInfo.md", + "documentation/models/CallRecordingCustomGreeting.md", + "documentation/models/CallRecordingExtensionResource.md", + "documentation/models/OriginInfo.md", + "documentation/models/CallLogRecordingInfo.md", + "documentation/models/ExtensionUpdateShortResult.md", + "documentation/models/ListCompanyAnsweringRuleInfo.md", + "documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md", + "documentation/models/CompanyAnsweringRuleScheduleInfo.md", + "documentation/models/ForwardAllCallsReason.md", + "documentation/models/ScheduleInfo.md", + "documentation/models/ForwardingInfo.md", + "documentation/models/UnconditionalForwardingInfo.md", + "documentation/models/MissedCallInfo.md", + "documentation/models/CreateAnsweringRuleForwardingNumberInfo.md", + "documentation/models/TransferInfo.md", + "documentation/models/ForwardingInfoCreateRuleRequest.md", + "documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md", + "documentation/models/SyncInfo.md", + "documentation/models/PrimaryCqInfo.md", + "documentation/models/AdditionalCqInfo.md", + "documentation/models/UnifiedPresenceMeeting.md", + "documentation/models/UpdateUnifiedPresenceTelephony.md", + "documentation/models/LocationDeletionInfo.md", + "documentation/models/AutomaticLocationUpdatesUserInfo.md", + "documentation/models/BulkTaskInfo.md", + "documentation/models/SwitchValidated.md", + "documentation/models/WirelessPointValidated.md", + "documentation/models/UserMeetingRecordingSetting.md", + "documentation/models/PermissionIdResource.md", + "documentation/models/CallMonitoringExtensionInfo.md", + "documentation/models/CallMonitoringGroupMemberInfo.md", + "documentation/models/AccountHistoryRecordTarget.md", + "documentation/models/PhoneNumberResource.md", + "documentation/models/ActivePermissionResource.md", + "documentation/models/MessageAttachmentInfoIntId.md", + "documentation/models/RolesRegionalSettingsResource.md", + "documentation/models/ReasonInfo.md", + "documentation/models/MobileDeliveryModeRequest.md", + "documentation/models/PubNubDeliveryModeRequest.md", + "documentation/models/SipInfoRequest.md", + "documentation/models/SipInfoResponse.md", + "documentation/models/DeviceModelInfo.md", + "documentation/models/DevicePhoneLinesInfo.md", + "documentation/models/SummaryOutputUnit.md", + "documentation/models/CaiErrorCodeResponse.md", + "documentation/models/EmotionSegment.md", + "documentation/models/ConversationalInsightsUnit.md", + "documentation/models/UtteranceInsightsUnit.md", + "documentation/models/SpeakerInsightsUnit.md", + "documentation/models/ContentComponents.md", + "documentation/models/ScimMeta.md", + "documentation/models/ScimUserAddress.md", + "documentation/models/ScimEmail.md", + "documentation/models/ScimPhoneNumber.md", + "documentation/models/ScimPhoto.md", + "documentation/models/ScimPatchOperation.md", + "documentation/models/ScimSchemaExtension.md", + "documentation/models/TaskAttachment.md", + "documentation/models/TmAttachmentInfo.md", + "documentation/models/TmMentionsInfo.md", + "documentation/models/TmAttachmentFieldsInfo.md", + "documentation/models/AdaptiveCardInfoRequest.md", + "documentation/models/AdaptiveCardAction.md", + "documentation/models/AdaptiveCardSelectAction.md", + "documentation/models/VerticalContentAlignment.md", + "documentation/models/AdaptiveCardInfoRequestItem.md", + "documentation/models/ActionAdaptiveCardInfo.md", + "documentation/models/ActionCardBody.md", + "documentation/models/BackgroundImage.md", + "documentation/models/ImageFillMode.md", + "documentation/models/HorizontalAlignment.md", + "documentation/models/VerticalAlignment.md", + "src/ring_central/models/subscription_list_resource.py", + "src/ring_central/models/create_webhook_subscription_request.py", + "src/ring_central/models/update_subscription_request.py", + "src/ring_central/models/webinar_resource.py", + "src/ring_central/models/session_resource.py", + "src/ring_central/models/participant_list_resource.py", + "src/ring_central/models/rcw_role_enum.py", + "src/ring_central/models/invitee_list_resource.py", + "src/ring_central/models/session_global_list_resource.py", + "src/ring_central/models/rcw_session_status_model.py", + "src/ring_central/models/recording_admin_list_resource.py", + "src/ring_central/models/recording_status_model.py", + "src/ring_central/models/recording_admin_extended_item_model.py", + "src/ring_central/models/recording_list_resource.py", + "src/ring_central/models/recording_item_extended_model.py", + "src/ring_central/models/recording_media_type.py", + "src/ring_central/models/registrant_list_resource.py", + "src/ring_central/models/registrant_base_model_with_questionnaire.py", + "src/ring_central/models/registrant_model_response_post_with_questionnaire.py", + "src/ring_central/models/registrant_model_with_questionnaire.py", + "src/ring_central/models/webinar_list_resource.py", + "src/ring_central/models/webinar_creation_request.py", + "src/ring_central/models/wcs_webinar_resource.py", + "src/ring_central/models/webinar_base_model.py", + "src/ring_central/models/wcs_session_with_locale_code_model.py", + "src/ring_central/models/wcs_session_resource.py", + "src/ring_central/models/wcs_session_global_list_resource.py", + "src/ring_central/models/wcs_session_status_model.py", + "src/ring_central/models/wcs_invitee_list_resource.py", + "src/ring_central/models/bulk_update_invitees_response.py", + "src/ring_central/models/invitee_resource.py", + "src/ring_central/models/update_invitee_request.py", + "src/ring_central/models/content_disposition.py", + "src/ring_central/models/call_recording_ids.py", + "src/ring_central/models/get_call_recording_response.py", + "src/ring_central/models/dictionary_greeting_list.py", + "src/ring_central/models/list_standard_greetings_type.py", + "src/ring_central/models/list_standard_greetings_usage_type.py", + "src/ring_central/models/scale_size.py", + "src/ring_central/models/batch_provision_users_request.py", + "src/ring_central/models/bulk_delete_users_request.py", + "src/ring_central/models/get_extension_grant_list_response.py", + "src/ring_central/models/extension_type.py", + "src/ring_central/models/get_conferencing_info_response.py", + "src/ring_central/models/update_conferencing_info_request.py", + "src/ring_central/models/create_user_profile_image_request.py", + "src/ring_central/models/update_user_profile_image_request.py", + "src/ring_central/models/extension_caller_id_info.py", + "src/ring_central/models/extension_caller_id_info_request.py", + "src/ring_central/models/notification_settings.py", + "src/ring_central/models/notification_settings_update_request.py", + "src/ring_central/models/message_store_configuration.py", + "src/ring_central/models/get_message_sync_response.py", + "src/ring_central/models/message_direction_enum.py", + "src/ring_central/models/message_type_enum.py", + "src/ring_central/models/sync_type_enum.py", + "src/ring_central/models/get_message_list.py", + "src/ring_central/models/message_availability_enum.py", + "src/ring_central/models/message_read_status_enum.py", + "src/ring_central/models/delete_message_by_filter_type.py", + "src/ring_central/models/get_message_info_multi_response.py", + "src/ring_central/models/update_message_request.py", + "src/ring_central/models/update_message_bulk_request.py", + "src/ring_central/models/patch_message_request.py", + "src/ring_central/models/patch_message_bulk_request.py", + "src/ring_central/models/ivr_prompts.py", + "src/ring_central/models/create_ivr_prompt_request.py", + "src/ring_central/models/prompt_info.py", + "src/ring_central/models/update_ivr_prompt_request.py", + "src/ring_central/models/ivr_menu_list.py", + "src/ring_central/models/ivr_menu_info.py", + "src/ring_central/models/update_bridge_request.py", + "src/ring_central/models/cloud_recordings.py", + "src/ring_central/models/delegators_list_result.py", + "src/ring_central/models/meeting_page.py", + "src/ring_central/models/list_video_meetings_type.py", + "src/ring_central/models/api_versions_list.py", + "src/ring_central/models/api_version_info.py", + "src/ring_central/models/authorize_response_type.py", + "src/ring_central/models/display_modes_enum.py", + "src/ring_central/models/code_challenge_method_enum.py", + "src/ring_central/models/send_welcome_email_v2_request.py", + "src/ring_central/models/account_service_info.py", + "src/ring_central/models/account_business_address_resource.py", + "src/ring_central/models/modify_account_business_address_request.py", + "src/ring_central/models/country_list_dictionary_model.py", + "src/ring_central/models/remove_line_request.py", + "src/ring_central/models/bulk_add_devices_request.py", + "src/ring_central/models/swap_device_request.py", + "src/ring_central/models/account_device_update.py", + "src/ring_central/models/sip_info_resource.py", + "src/ring_central/models/get_extension_devices_response.py", + "src/ring_central/models/line_pooling.py", + "src/ring_central/models/device_feature_enum.py", + "src/ring_central/models/list_extension_devices_type.py", + "src/ring_central/models/phone_line_type_enum.py", + "src/ring_central/models/account_phone_number_list.py", + "src/ring_central/models/phone_number_type.py", + "src/ring_central/models/phone_number_usage_type.py", + "src/ring_central/models/phone_number_status.py", + "src/ring_central/models/phone_number_toll_type.py", + "src/ring_central/models/extension_status.py", + "src/ring_central/models/delete_phone_numbers_request.py", + "src/ring_central/models/delete_phone_numbers_response.py", + "src/ring_central/models/replace_phone_number_request.py", + "src/ring_central/models/add_phone_numbers_request.py", + "src/ring_central/models/add_phone_numbers_response.py", + "src/ring_central/models/add_phone_numbers_task.py", + "src/ring_central/models/get_extension_phone_numbers_response.py", + "src/ring_central/models/list_extension_phone_numbers_status.py", + "src/ring_central/models/list_extension_phone_numbers_usage_type.py", + "src/ring_central/models/account_phone_numbers.py", + "src/ring_central/models/list_account_phone_numbers_usage_type.py", + "src/ring_central/models/platform_payment_type.py", + "src/ring_central/models/list_account_phone_numbers_status.py", + "src/ring_central/models/parse_phone_number_request.py", + "src/ring_central/models/parse_phone_number_response.py", + "src/ring_central/models/company_business_hours.py", + "src/ring_central/models/company_business_hours_update_request.py", + "src/ring_central/models/get_user_business_hours_response.py", + "src/ring_central/models/user_business_hours_update_request.py", + "src/ring_central/models/user_business_hours_update_response.py", + "src/ring_central/models/custom_field_list.py", + "src/ring_central/models/custom_field_update_request.py", + "src/ring_central/models/call_recording_settings_resource.py", + "src/ring_central/models/call_recording_custom_greetings.py", + "src/ring_central/models/list_call_recording_custom_greetings_type.py", + "src/ring_central/models/bulk_account_call_recordings_resource.py", + "src/ring_central/models/call_recording_extensions.py", + "src/ring_central/models/make_call_out_request.py", + "src/ring_central/models/call_session.py", + "src/ring_central/models/call_session_object.py", + "src/ring_central/models/add_party_request.py", + "src/ring_central/models/party_update_request.py", + "src/ring_central/models/call_party_flip.py", + "src/ring_central/models/call_party_reply.py", + "src/ring_central/models/bridge_target_request.py", + "src/ring_central/models/ignore_request_body.py", + "src/ring_central/models/call_recording_update.py", + "src/ring_central/models/call_recording.py", + "src/ring_central/models/answer_target.py", + "src/ring_central/models/transfer_target.py", + "src/ring_central/models/pickup_target.py", + "src/ring_central/models/forward_target.py", + "src/ring_central/models/message_templates_list_response.py", + "src/ring_central/models/message_template_request.py", + "src/ring_central/models/message_template_response.py", + "src/ring_central/models/visibility_type.py", + "src/ring_central/models/call_log_response.py", + "src/ring_central/models/call_direction_enum.py", + "src/ring_central/models/call_type_enum.py", + "src/ring_central/models/read_company_call_log_view.py", + "src/ring_central/models/recording_type.py", + "src/ring_central/models/call_log_sync_response.py", + "src/ring_central/models/sync_account_call_log_sync_type.py", + "src/ring_central/models/status_group.py", + "src/ring_central/models/call_transport_enum.py", + "src/ring_central/models/conference_type.py", + "src/ring_central/models/extension_bulk_update_request.py", + "src/ring_central/models/user_templates.py", + "src/ring_central/models/list_user_templates_type.py", + "src/ring_central/models/template_info.py", + "src/ring_central/models/get_extension_list_response.py", + "src/ring_central/models/list_extensions_status.py", + "src/ring_central/models/list_extensions_type.py", + "src/ring_central/models/message_statuses_response.py", + "src/ring_central/models/sms_direction_enum.py", + "src/ring_central/models/message_list_response.py", + "src/ring_central/models/list_a2_psms_view.py", + "src/ring_central/models/message_details_response.py", + "src/ring_central/models/opt_out_list_response.py", + "src/ring_central/models/read_a2_psms_opt_outs_status.py", + "src/ring_central/models/opt_out_bulk_assign_request.py", + "src/ring_central/models/batch_list_response.py", + "src/ring_central/models/list_a2_p_batches_status.py", + "src/ring_central/models/message_batch_create_request.py", + "src/ring_central/models/company_answering_rule_list.py", + "src/ring_central/models/forward_all_company_calls_info.py", + "src/ring_central/models/forward_all_company_calls_request.py", + "src/ring_central/models/user_answering_rule_list.py", + "src/ring_central/models/list_answering_rules_type.py", + "src/ring_central/models/list_answering_rules_view.py", + "src/ring_central/models/address_book_bulk_upload_request.py", + "src/ring_central/models/favorite_contact_list.py", + "src/ring_central/models/favorite_collection.py", + "src/ring_central/models/contact_list.py", + "src/ring_central/models/sort_by.py", + "src/ring_central/models/personal_contact_request.py", + "src/ring_central/models/address_book_sync.py", + "src/ring_central/models/sync_address_book_sync_type.py", + "src/ring_central/models/call_queues.py", + "src/ring_central/models/call_queue_bulk_assign_resource.py", + "src/ring_central/models/call_queue_members.py", + "src/ring_central/models/department_member_list.py", + "src/ring_central/models/department_bulk_assign_resource.py", + "src/ring_central/models/user_call_queues.py", + "src/ring_central/models/call_queue_overflow_settings.py", + "src/ring_central/models/call_queue_overflow_settings_request_resource.py", + "src/ring_central/models/call_queue_presence.py", + "src/ring_central/models/call_queue_update_presence.py", + "src/ring_central/models/account_presence_info.py", + "src/ring_central/models/extension_call_queue_presence_list.py", + "src/ring_central/models/extension_call_queue_update_presence_list.py", + "src/ring_central/models/unified_presence_list_entry.py", + "src/ring_central/models/update_unified_presence.py", + "src/ring_central/models/emergency_locations_resource.py", + "src/ring_central/models/emergency_address_status.py", + "src/ring_central/models/emergency_location_usage_status.py", + "src/ring_central/models/list_emergency_locations_order_by.py", + "src/ring_central/models/emergency_location_response_resource.py", + "src/ring_central/models/common_emergency_location_resource.py", + "src/ring_central/models/get_extension_emergency_locations_order_by.py", + "src/ring_central/models/create_user_emergency_location_request.py", + "src/ring_central/models/automatic_location_updates_user_list.py", + "src/ring_central/models/list_automatic_location_updates_users_type.py", + "src/ring_central/models/emergency_address_auto_update_users_bulk_assign_resource.py", + "src/ring_central/models/create_multiple_wireless_points_request.py", + "src/ring_central/models/create_multiple_wireless_points_response.py", + "src/ring_central/models/networks_list.py", + "src/ring_central/models/create_network_request.py", + "src/ring_central/models/network_info.py", + "src/ring_central/models/update_network_request.py", + "src/ring_central/models/validate_multiple_switches_request.py", + "src/ring_central/models/validate_multiple_switches_response.py", + "src/ring_central/models/switches_list.py", + "src/ring_central/models/create_switch_info.py", + "src/ring_central/models/switch_info.py", + "src/ring_central/models/update_switch_info.py", + "src/ring_central/models/validate_multiple_wireless_points_request.py", + "src/ring_central/models/validate_multiple_wireless_points_response.py", + "src/ring_central/models/wireless_points_list.py", + "src/ring_central/models/create_wireless_point.py", + "src/ring_central/models/wireless_point_info.py", + "src/ring_central/models/update_wireless_point.py", + "src/ring_central/models/list_devices_automatic_location_updates.py", + "src/ring_central/models/assign_multiple_devices_automatic_location_updates.py", + "src/ring_central/models/create_multiple_switches_request.py", + "src/ring_central/models/create_multiple_switches_response.py", + "src/ring_central/models/update_multiple_wireless_points_request.py", + "src/ring_central/models/update_multiple_wireless_points_response.py", + "src/ring_central/models/update_multiple_switches_request.py", + "src/ring_central/models/update_multiple_switches_response.py", + "src/ring_central/models/account_locked_setting_response.py", + "src/ring_central/models/list_meeting_recordings_response.py", + "src/ring_central/models/create_user_meeting_profile_image_request.py", + "src/ring_central/models/meetings_resource.py", + "src/ring_central/models/meeting_user_settings_response.py", + "src/ring_central/models/public_meeting_invitation_response.py", + "src/ring_central/models/meeting_service_info_resource.py", + "src/ring_central/models/meeting_service_info_request.py", + "src/ring_central/models/assisted_users_resource.py", + "src/ring_central/models/assistants_resource.py", + "src/ring_central/models/extension_with_roles_collection_resource.py", + "src/ring_central/models/roles_collection_resource.py", + "src/ring_central/models/default_user_role.py", + "src/ring_central/models/default_user_role_request.py", + "src/ring_central/models/bulk_role_assign_resource.py", + "src/ring_central/models/assigned_roles_resource.py", + "src/ring_central/models/call_monitoring_groups.py", + "src/ring_central/models/create_call_monitoring_group_request.py", + "src/ring_central/models/call_monitoring_group.py", + "src/ring_central/models/call_monitoring_bulk_assign.py", + "src/ring_central/models/call_monitoring_group_member_list.py", + "src/ring_central/models/account_history_search_public_response.py", + "src/ring_central/models/create_message_store_report_request.py", + "src/ring_central/models/message_store_report_archive.py", + "src/ring_central/models/directory_resource.py", + "src/ring_central/models/list_directory_entries_type.py", + "src/ring_central/models/type_group.py", + "src/ring_central/models/search_directory_extension_type.py", + "src/ring_central/models/federation_resource.py", + "src/ring_central/models/federation_types.py", + "src/ring_central/models/paging_only_group_users.py", + "src/ring_central/models/edit_paging_group_request.py", + "src/ring_central/models/paging_only_group_devices.py", + "src/ring_central/models/sites_list.py", + "src/ring_central/models/create_site_request.py", + "src/ring_central/models/site_info.py", + "src/ring_central/models/site_update_request.py", + "src/ring_central/models/site_members_bulk_update.py", + "src/ring_central/models/site_members_list.py", + "src/ring_central/models/site_ivr_settings.py", + "src/ring_central/models/site_ivr_settings_update.py", + "src/ring_central/models/create_internal_text_message_request.py", + "src/ring_central/models/auth_profile_resource.py", + "src/ring_central/models/auth_profile_check_resource.py", + "src/ring_central/models/permission_collection_resource.py", + "src/ring_central/models/permission_category_collection_resource.py", + "src/ring_central/models/permission_category_resource.py", + "src/ring_central/models/get_extension_forwarding_number_list_response.py", + "src/ring_central/models/delete_forwarding_numbers_request.py", + "src/ring_central/models/create_fax_message_request.py", + "src/ring_central/models/list_fax_cover_pages_response.py", + "src/ring_central/models/make_ring_out_request.py", + "src/ring_central/models/get_ring_out_status_response.py", + "src/ring_central/models/business_site_collection_resource.py", + "src/ring_central/models/business_site_collection_request.py", + "src/ring_central/models/create_sms_message.py", + "src/ring_central/models/create_mms_message.py", + "src/ring_central/models/feature_list.py", + "src/ring_central/models/blocked_allowed_phone_numbers_list.py", + "src/ring_central/models/blocked_number_status_enum.py", + "src/ring_central/models/add_blocked_allowed_phone_number.py", + "src/ring_central/models/blocked_allowed_phone_number_info.py", + "src/ring_central/models/create_subscription_request.py", + "src/ring_central/models/get_state_list_response.py", + "src/ring_central/models/get_state_info_response.py", + "src/ring_central/models/get_location_list_response.py", + "src/ring_central/models/list_locations_order_by.py", + "src/ring_central/models/language_list.py", + "src/ring_central/models/language_info.py", + "src/ring_central/models/get_timezone_list_response.py", + "src/ring_central/models/get_timezone_info_response.py", + "src/ring_central/models/country_info_dictionary_model.py", + "src/ring_central/models/create_sip_registration_response.py", + "src/ring_central/models/cai_async_api_response.py", + "src/ring_central/models/punctuate_input.py", + "src/ring_central/models/list_enrolled_speakers.py", + "src/ring_central/models/content_list.py", + "src/ring_central/models/content_status.py", + "src/ring_central/models/soc_msg_creation_time_order.py", + "src/ring_central/models/content_model.py", + "src/ring_central/models/identities_list.py", + "src/ring_central/models/identity_model.py", + "src/ring_central/models/scim_schema_response.py", + "src/ring_central/models/aggregation_request.py", + "src/ring_central/models/aggregation_response.py", + "src/ring_central/models/timeline_request.py", + "src/ring_central/models/timeline_response.py", + "src/ring_central/models/interval.py", + "src/ring_central/models/tm_task_list.py", + "src/ring_central/models/list_chat_tasks_new_status.py", + "src/ring_central/models/assignment_status.py", + "src/ring_central/models/assignee_status.py", + "src/ring_central/models/tm_event_list.py", + "src/ring_central/models/tm_chat_list_without_navigation.py", + "src/ring_central/models/list_recent_chats_new_type.py", + "src/ring_central/models/tm_chat_list.py", + "src/ring_central/models/list_glip_chats_new_type.py", + "src/ring_central/models/create_glip_file_new_request.py", + "src/ring_central/models/tm_add_file_request.py", + "src/ring_central/models/tm_posts_list.py", + "src/ring_central/models/tm_create_post_request.py", + "src/ring_central/models/tm_update_post_request.py", + "src/ring_central/models/tm_note_list.py", + "src/ring_central/models/list_chat_notes_new_status.py", + "src/ring_central/models/tm_create_note_request.py", + "src/ring_central/models/tm_webhook_list.py", + "src/ring_central/models/tm_company_info.py", + "src/ring_central/models/tm_person_info.py", + "src/ring_central/models/tm_conversation_list.py", + "src/ring_central/models/data_export_task_list.py", + "src/ring_central/models/list_data_export_tasks_new_status.py", + "src/ring_central/models/create_data_export_task_request.py", + "src/ring_central/models/update_everyone_team_request.py", + "src/ring_central/models/tm_team_list.py", + "src/ring_central/models/tm_update_team_request.py", + "src/ring_central/models/disabled_filter_info.py", + "src/ring_central/models/host_model.py", + "src/ring_central/models/session_runtime_status_model.py", + "src/ring_central/models/recording_extended_model.py", + "src/ring_central/models/session_livestream_minimal_model.py", + "src/ring_central/models/session_livestream_status_model.py", + "src/ring_central/models/rcw_paging_model.py", + "src/ring_central/models/session_global_resource.py", + "src/ring_central/models/webinar_ref_model.py", + "src/ring_central/models/recording_model.py", + "src/ring_central/models/recording_admin_model.py", + "src/ring_central/models/session_ref_admin_model.py", + "src/ring_central/models/recording_item_model.py", + "src/ring_central/models/session_ref_model.py", + "src/ring_central/models/rcw_paging_forward_model.py", + "src/ring_central/models/fixed_answer_model.py", + "src/ring_central/models/variable_answer_model.py", + "src/ring_central/models/wcs_host_model.py", + "src/ring_central/models/rcw_linked_user_model.py", + "src/ring_central/models/session_global_list_entry.py", + "src/ring_central/models/wcs_webinar_ref_model.py", + "src/ring_central/models/rcw_invitee_type_enum.py", + "src/ring_central/models/add_invitee_request.py", + "src/ring_central/models/rcw_resource_id_model.py", + "src/ring_central/models/answering_rule_query_request.py", + "src/ring_central/models/custom_greeting_answering_rule_info.py", + "src/ring_central/models/custom_company_greeting_language_info.py", + "src/ring_central/models/page_navigation_model.py", + "src/ring_central/models/enumerated_paging_model.py", + "src/ring_central/models/greeting_type_enum.py", + "src/ring_central/models/page_navigation_uri.py", + "src/ring_central/models/postal_address.py", + "src/ring_central/models/phone_number_definition_toll_type.py", + "src/ring_central/models/phone_number_definition_preferred_area_code.py", + "src/ring_central/models/phone_number_definition_direct_number_with_reservation_id.py", + "src/ring_central/models/phone_number_definition_number_id.py", + "src/ring_central/models/batch_provision_error_item.py", + "src/ring_central/models/api_error_with_parameter.py", + "src/ring_central/models/bulk_operation_extension_reference.py", + "src/ring_central/models/get_extension_account_info.py", + "src/ring_central/models/contact_info.py", + "src/ring_central/models/cost_center_info.py", + "src/ring_central/models/custom_field_info.py", + "src/ring_central/models/department_info.py", + "src/ring_central/models/extension_permissions.py", + "src/ring_central/models/profile_image_info.py", + "src/ring_central/models/roles.py", + "src/ring_central/models/setup_wizard_state_for_update_enum.py", + "src/ring_central/models/call_queue_extension_info.py", + "src/ring_central/models/provisioning_site_info.py", + "src/ring_central/models/assigned_country_info.py", + "src/ring_central/models/contact_business_address_info.py", + "src/ring_central/models/permission_info_admin.py", + "src/ring_central/models/permission_info_int.py", + "src/ring_central/models/profile_image_info_uri.py", + "src/ring_central/models/country_info_short_model.py", + "src/ring_central/models/timezone_info.py", + "src/ring_central/models/regional_language_info.py", + "src/ring_central/models/greeting_language_info.py", + "src/ring_central/models/formatting_locale_info.py", + "src/ring_central/models/contact_info_update_request.py", + "src/ring_central/models/call_queue_info_request.py", + "src/ring_central/models/user_transition_info.py", + "src/ring_central/models/site_reference.py", + "src/ring_central/models/extension_country_info_request.py", + "src/ring_central/models/extension_timezone_info_request.py", + "src/ring_central/models/extension_language_info_request.py", + "src/ring_central/models/extension_greeting_language_info_request.py", + "src/ring_central/models/extension_formatting_locale_info_request.py", + "src/ring_central/models/extension_currency_info_request.py", + "src/ring_central/models/grant_info.py", + "src/ring_central/models/phone_number_info_conferencing.py", + "src/ring_central/models/conference_phone_number_info.py", + "src/ring_central/models/caller_id_by_device.py", + "src/ring_central/models/caller_id_device_info.py", + "src/ring_central/models/caller_id_by_device_info.py", + "src/ring_central/models/caller_id_phone_info.py", + "src/ring_central/models/caller_id_by_feature_info.py", + "src/ring_central/models/caller_id_by_device_request.py", + "src/ring_central/models/caller_id_device_info_request.py", + "src/ring_central/models/caller_id_by_device_info_request.py", + "src/ring_central/models/caller_id_phone_info_request.py", + "src/ring_central/models/caller_id_by_feature_info_request.py", + "src/ring_central/models/voicemails_info.py", + "src/ring_central/models/inbound_faxes_info.py", + "src/ring_central/models/outbound_faxes_info.py", + "src/ring_central/models/inbound_texts_info.py", + "src/ring_central/models/missed_calls_info.py", + "src/ring_central/models/sync_info_messages.py", + "src/ring_central/models/message_attachment_info.py", + "src/ring_central/models/conversation_info.py", + "src/ring_central/models/fax_resolution_enum.py", + "src/ring_central/models/message_store_caller_info_response_from.py", + "src/ring_central/models/message_status_enum.py", + "src/ring_central/models/message_priority_enum.py", + "src/ring_central/models/message_store_caller_info_response_to.py", + "src/ring_central/models/message_attachment_type_enum.py", + "src/ring_central/models/fax_error_code_enum.py", + "src/ring_central/models/messaging_navigation_info.py", + "src/ring_central/models/messaging_paging_info.py", + "src/ring_central/models/messaging_navigation_info_uri.py", + "src/ring_central/models/ivr_menu_list_info.py", + "src/ring_central/models/ivr_menu_site_info.py", + "src/ring_central/models/audio_prompt_info.py", + "src/ring_central/models/prompt_language_info.py", + "src/ring_central/models/ivr_menu_extension_info.py", + "src/ring_central/models/bridge_pins.py", + "src/ring_central/models/bridge_request_security.py", + "src/ring_central/models/bridge_pstn_pins.py", + "src/ring_central/models/recordings_preferences.py", + "src/ring_central/models/bridge_join_pstn_preferences.py", + "src/ring_central/models/everyone_can_control.py", + "src/ring_central/models/auto_shared.py", + "src/ring_central/models/user.py", + "src/ring_central/models/bridge_pins_with_aliases.py", + "src/ring_central/models/bridge_response_security.py", + "src/ring_central/models/bridge_discovery.py", + "src/ring_central/models/bridge_response_security_password.py", + "src/ring_central/models/bridge_pins_without_pstn.py", + "src/ring_central/models/cloud_recording.py", + "src/ring_central/models/paging.py", + "src/ring_central/models/host.py", + "src/ring_central/models/delegate.py", + "src/ring_central/models/participant.py", + "src/ring_central/models/service_info_v2.py", + "src/ring_central/models/system_user_contact_info.py", + "src/ring_central/models/service_info_brand.py", + "src/ring_central/models/service_info_country_short_model.py", + "src/ring_central/models/service_info_u_brand.py", + "src/ring_central/models/account_operator_info.py", + "src/ring_central/models/service_info.py", + "src/ring_central/models/setup_wizard_state_enum.py", + "src/ring_central/models/account_limits.py", + "src/ring_central/models/brand_info.py", + "src/ring_central/models/u_brand_info.py", + "src/ring_central/models/currency_info.py", + "src/ring_central/models/package_info.py", + "src/ring_central/models/business_address_info.py", + "src/ring_central/models/site_basic_info.py", + "src/ring_central/models/bulk_add_devices_success_item.py", + "src/ring_central/models/bulk_add_devices_error_item.py", + "src/ring_central/models/model_info.py", + "src/ring_central/models/extension_info_int_id.py", + "src/ring_central/models/phone_lines_info.py", + "src/ring_central/models/shipping_info.py", + "src/ring_central/models/device_site_info.py", + "src/ring_central/models/line_pooling_enum.py", + "src/ring_central/models/billing_statement_info.py", + "src/ring_central/models/addon_info.py", + "src/ring_central/models/common_emergency_location_address_info_default.py", + "src/ring_central/models/device_emergency_location_info.py", + "src/ring_central/models/phone_number_country_info.py", + "src/ring_central/models/device_provisioning_extension_info.py", + "src/ring_central/models/shipping_status.py", + "src/ring_central/models/shipping_address_info.py", + "src/ring_central/models/billing_statement_charges.py", + "src/ring_central/models/billing_statement_fees.py", + "src/ring_central/models/emergency_service_address_resource_request.py", + "src/ring_central/models/device_update_extension_info.py", + "src/ring_central/models/device_update_phone_lines_info.py", + "src/ring_central/models/update_device_phone_info.py", + "src/ring_central/models/outbound_proxy_info.py", + "src/ring_central/models/delete_phone_numbers_request_item.py", + "src/ring_central/models/delete_phone_numbers_response_item.py", + "src/ring_central/models/add_phone_numbers_response_item.py", + "src/ring_central/models/country_info_basic_model.py", + "src/ring_central/models/contact_center_provider.py", + "src/ring_central/models/extension_info.py", + "src/ring_central/models/temporary_number_info.py", + "src/ring_central/models/get_country_info_number_parser.py", + "src/ring_central/models/phone_number_info_number_parser.py", + "src/ring_central/models/company_business_hours_schedule_info.py", + "src/ring_central/models/weekly_schedule_info.py", + "src/ring_central/models/time_interval.py", + "src/ring_central/models/schedule_info_user_business_hours.py", + "src/ring_central/models/user_business_hours_schedule_info.py", + "src/ring_central/models/on_demand_resource.py", + "src/ring_central/models/automatic_recording_resource.py", + "src/ring_central/models/call_recording_custom_greeting_data.py", + "src/ring_central/models/call_recording_custom_greeting_language.py", + "src/ring_central/models/call_recording_extension_info.py", + "src/ring_central/models/make_call_out_caller_info_request_from.py", + "src/ring_central/models/make_call_out_caller_info_request_to.py", + "src/ring_central/models/park_info.py", + "src/ring_central/models/party_info.py", + "src/ring_central/models/owner_info.py", + "src/ring_central/models/recording_info.py", + "src/ring_central/models/peer_info.py", + "src/ring_central/models/party_update_info.py", + "src/ring_central/models/site.py", + "src/ring_central/models/extension_info_call_log.py", + "src/ring_central/models/call_log_from_party.py", + "src/ring_central/models/call_log_to_party.py", + "src/ring_central/models/call_log_record_message.py", + "src/ring_central/models/call_log_delegate_info.py", + "src/ring_central/models/delegation_type_enum.py", + "src/ring_central/models/call_action_enum.py", + "src/ring_central/models/call_result_enum.py", + "src/ring_central/models/call_result_reason_enum.py", + "src/ring_central/models/billing_info.py", + "src/ring_central/models/call_internal_type_enum.py", + "src/ring_central/models/call_log_record_device_info.py", + "src/ring_central/models/call_leg_type_enum.py", + "src/ring_central/models/call_log_sync_info.py", + "src/ring_central/models/call_log_sync_type_enum.py", + "src/ring_central/models/extension_bulk_update_task_result.py", + "src/ring_central/models/error_entity.py", + "src/ring_central/models/contact_info_creation_request.py", + "src/ring_central/models/operator_info.py", + "src/ring_central/models/message_status_counts.py", + "src/ring_central/models/message_list_message_response.py", + "src/ring_central/models/paging_resource.py", + "src/ring_central/models/sms_status_enum.py", + "src/ring_central/models/opt_out_bulk_assign_failed_entry.py", + "src/ring_central/models/rejected_recipient_response_resource.py", + "src/ring_central/models/message_create_request.py", + "src/ring_central/models/called_number_info.py", + "src/ring_central/models/company_answering_rule_extension_info.py", + "src/ring_central/models/company_answering_rule_callers_info_request.py", + "src/ring_central/models/company_answering_rule_called_number_info.py", + "src/ring_central/models/company_answering_rule_extension_info_request.py", + "src/ring_central/models/greeting_info.py", + "src/ring_central/models/company_answering_rule_weekly_schedule_info_request.py", + "src/ring_central/models/ranges_info.py", + "src/ring_central/models/company_answering_rule_time_interval_request.py", + "src/ring_central/models/preset_info.py", + "src/ring_central/models/custom_greeting_info_request.py", + "src/ring_central/models/company_answering_rule_called_number_info_request.py", + "src/ring_central/models/ivr_call_handling_action_enum.py", + "src/ring_central/models/extension_short_info_resource.py", + "src/ring_central/models/callers_info.py", + "src/ring_central/models/transferred_extension_info.py", + "src/ring_central/models/voicemail_info.py", + "src/ring_central/models/shared_lines_info.py", + "src/ring_central/models/forwarding_rule_info.py", + "src/ring_central/models/fixed_order_agents.py", + "src/ring_central/models/transfer_extension_info.py", + "src/ring_central/models/fixed_order_agents_extension_info.py", + "src/ring_central/models/transferred_extension.py", + "src/ring_central/models/recipient_info.py", + "src/ring_central/models/missed_call_extension_info.py", + "src/ring_central/models/missed_call_extension_info_external_number.py", + "src/ring_central/models/callers_info_request.py", + "src/ring_central/models/forwarding_rule_create_request.py", + "src/ring_central/models/address_book_bulk_upload_resource.py", + "src/ring_central/models/address_book_bulk_contact_resource.py", + "src/ring_central/models/address_book_bulk_contact_address_info.py", + "src/ring_central/models/address_book_bulk_upload_task_result.py", + "src/ring_central/models/favorite_contact_resource.py", + "src/ring_central/models/user_contacts_navigation_info.py", + "src/ring_central/models/user_contacts_paging_info.py", + "src/ring_central/models/user_contacts_groups_info.py", + "src/ring_central/models/contact_address_info.py", + "src/ring_central/models/user_contacts_navigation_info_uri.py", + "src/ring_central/models/call_queue_service_level_settings.py", + "src/ring_central/models/call_queue_member_info.py", + "src/ring_central/models/bulk_assign_item.py", + "src/ring_central/models/queue_short_info_resource.py", + "src/ring_central/models/call_queue_id_resource.py", + "src/ring_central/models/call_queue_member_presence.py", + "src/ring_central/models/call_queue_member.py", + "src/ring_central/models/site_resource.py", + "src/ring_central/models/call_queue_update_member_presence.py", + "src/ring_central/models/call_queue_member_id.py", + "src/ring_central/models/presence_navigation_info.py", + "src/ring_central/models/presence_paging_info.py", + "src/ring_central/models/get_presence_extension_info.py", + "src/ring_central/models/detailed_call_info.py", + "src/ring_central/models/call_info_cq.py", + "src/ring_central/models/presence_navigation_info_uri.py", + "src/ring_central/models/extension_call_queue_presence.py", + "src/ring_central/models/presence_call_queue_info.py", + "src/ring_central/models/extension_call_queue_update_presence.py", + "src/ring_central/models/call_queue_id.py", + "src/ring_central/models/emergency_locations_paging.py", + "src/ring_central/models/short_site_info.py", + "src/ring_central/models/address_status.py", + "src/ring_central/models/usage_status.py", + "src/ring_central/models/sync_status.py", + "src/ring_central/models/emergency_address_type.py", + "src/ring_central/models/visibility.py", + "src/ring_central/models/location_owner_info.py", + "src/ring_central/models/common_emergency_location_address_info_au.py", + "src/ring_central/models/common_emergency_location_address_info_fr.py", + "src/ring_central/models/location_deletion_error_info.py", + "src/ring_central/models/task_result_info.py", + "src/ring_central/models/task_result_record.py", + "src/ring_central/models/task_result_record_errors_info.py", + "src/ring_central/models/automatic_location_updates_site_info.py", + "src/ring_central/models/emergency_address_auto_update_site_info.py", + "src/ring_central/models/emergency_location_info.py", + "src/ring_central/models/public_ip_range_info.py", + "src/ring_central/models/private_ip_range_info.py", + "src/ring_central/models/private_ip_range_info_request.py", + "src/ring_central/models/location_updates_emergency_address_info_request.py", + "src/ring_central/models/erl_location_info.py", + "src/ring_central/models/switch_site_info.py", + "src/ring_central/models/validation_error.py", + "src/ring_central/models/automatic_location_updates_device_info.py", + "src/ring_central/models/automatic_location_updates_device_type.py", + "src/ring_central/models/automatic_location_updates_model_info.py", + "src/ring_central/models/automatic_location_updates_phone_line.py", + "src/ring_central/models/automatic_location_updates_model_feature.py", + "src/ring_central/models/automatic_location_updates_phone_line_type.py", + "src/ring_central/models/automatic_location_updates_phone_number_info.py", + "src/ring_central/models/schedule_meeting_response.py", + "src/ring_central/models/account_lock_setting_record_response.py", + "src/ring_central/models/meeting_links.py", + "src/ring_central/models/meeting_schedule_resource.py", + "src/ring_central/models/host_info_request.py", + "src/ring_central/models/recurrence_info.py", + "src/ring_central/models/meeting_occurrence_info.py", + "src/ring_central/models/meetings_timezone_resource.py", + "src/ring_central/models/meeting_frequency.py", + "src/ring_central/models/week_day.py", + "src/ring_central/models/monthly_week.py", + "src/ring_central/models/meeting_recordings.py", + "src/ring_central/models/meeting_recordings_paging_info.py", + "src/ring_central/models/meeting_recordings_navigation_info.py", + "src/ring_central/models/meeting_info.py", + "src/ring_central/models/meeting_recordings_navigation_info_uri.py", + "src/ring_central/models/meetings_paging_info.py", + "src/ring_central/models/meetings_navigation_info.py", + "src/ring_central/models/meetings_navigation_info_uri.py", + "src/ring_central/models/telephony_user_meeting_settings.py", + "src/ring_central/models/user_in_meeting_response.py", + "src/ring_central/models/global_dial_in_country_response.py", + "src/ring_central/models/meeting_external_user_info_resource.py", + "src/ring_central/models/dial_in_number_resource.py", + "src/ring_central/models/meetings_country_resource.py", + "src/ring_central/models/assisted_user_resource.py", + "src/ring_central/models/assistant_resource.py", + "src/ring_central/models/extension_with_roles_resource.py", + "src/ring_central/models/assigned_role_resource.py", + "src/ring_central/models/permissions_capabilities.py", + "src/ring_central/models/account_history_public_record.py", + "src/ring_central/models/account_history_paging.py", + "src/ring_central/models/account_history_record_public_initiator.py", + "src/ring_central/models/account_history_record_public_details.py", + "src/ring_central/models/account_history_record_details_parameters.py", + "src/ring_central/models/pic_message_type_enum.py", + "src/ring_central/models/archive_info.py", + "src/ring_central/models/account_resource.py", + "src/ring_central/models/account_directory_profile_image_resource.py", + "src/ring_central/models/business_site_resource.py", + "src/ring_central/models/directory_role_resource.py", + "src/ring_central/models/call_queue_resource.py", + "src/ring_central/models/custom_field_resource.py", + "src/ring_central/models/group_resource.py", + "src/ring_central/models/cost_center_resource.py", + "src/ring_central/models/external_integration_resource.py", + "src/ring_central/models/contact_sub_type_enum.py", + "src/ring_central/models/search_directory_contact_type.py", + "src/ring_central/models/federated_account_resource.py", + "src/ring_central/models/federation_type.py", + "src/ring_central/models/paging_group_extension_info.py", + "src/ring_central/models/paging_device_info.py", + "src/ring_central/models/site_operator_reference.py", + "src/ring_central/models/site_member_info.py", + "src/ring_central/models/site_ivr_top_menu.py", + "src/ring_central/models/site_ivr_actions_extension_info.py", + "src/ring_central/models/site_ivr_top_menu_update.py", + "src/ring_central/models/site_ivr_actions_extension_info_update.py", + "src/ring_central/models/pager_caller_info_request.py", + "src/ring_central/models/role_id_resource.py", + "src/ring_central/models/permission_category_id_resource.py", + "src/ring_central/models/create_forwarding_number_device_info.py", + "src/ring_central/models/forwarding_number_id.py", + "src/ring_central/models/fax_request_to.py", + "src/ring_central/models/fax_response_to.py", + "src/ring_central/models/fax_cover_page_info.py", + "src/ring_central/models/make_ring_out_caller_info_request_from.py", + "src/ring_central/models/make_ring_out_caller_info_request_to.py", + "src/ring_central/models/make_ring_out_caller_id_info.py", + "src/ring_central/models/make_ring_out_country_info.py", + "src/ring_central/models/roles_business_site_resource.py", + "src/ring_central/models/basic_extension_info_resource.py", + "src/ring_central/models/contact_address_info_resource.py", + "src/ring_central/models/roles_timezone_resource.py", + "src/ring_central/models/roles_country_resource.py", + "src/ring_central/models/roles_language_resource.py", + "src/ring_central/models/currency_resource.py", + "src/ring_central/models/message_store_caller_info_request.py", + "src/ring_central/models/sms_request_country_info.py", + "src/ring_central/models/feature_info.py", + "src/ring_central/models/params_info.py", + "src/ring_central/models/blocked_caller_greeting_info.py", + "src/ring_central/models/country_info_minimal_model.py", + "src/ring_central/models/location_info.py", + "src/ring_central/models/location_state_info.py", + "src/ring_central/models/device_info_request.py", + "src/ring_central/models/sip_flags_response.py", + "src/ring_central/models/device_extension_info.py", + "src/ring_central/models/device_emergency_service_address_resource_default.py", + "src/ring_central/models/device_addon_info.py", + "src/ring_central/models/sip_registration_device_location_info.py", + "src/ring_central/models/device_emergency_service_address_resource_au.py", + "src/ring_central/models/device_emergency_service_address_resource_fr.py", + "src/ring_central/models/device_phone_lines_emergency_address_info.py", + "src/ring_central/models/device_phone_number_country_info.py", + "src/ring_central/models/authorization_type.py", + "src/ring_central/models/summary_output.py", + "src/ring_central/models/cai_error_response.py", + "src/ring_central/models/summary_timings_unit.py", + "src/ring_central/models/punctuate_output.py", + "src/ring_central/models/diarized_object.py", + "src/ring_central/models/diarize_segment.py", + "src/ring_central/models/speaker_identification_object.py", + "src/ring_central/models/transcribed_object.py", + "src/ring_central/models/utterance_object.py", + "src/ring_central/models/word_segment.py", + "src/ring_central/models/word_timings_unit.py", + "src/ring_central/models/interaction_object.py", + "src/ring_central/models/utterance_insights_object.py", + "src/ring_central/models/speaker_insights_object.py", + "src/ring_central/models/speaker_insights_values_items.py", + "src/ring_central/models/conversational_insights_unit_values.py", + "src/ring_central/models/summary_unit.py", + "src/ring_central/models/paging_schema.py", + "src/ring_central/models/speech_context_phrases_input.py", + "src/ring_central/models/insights_enum.py", + "src/ring_central/models/non_enumerated_paging_model.py", + "src/ring_central/models/content_attachment.py", + "src/ring_central/models/content_body_formatted.py", + "src/ring_central/models/content_body_input_format.py", + "src/ring_central/models/content_created_from.py", + "src/ring_central/models/content_source_type.py", + "src/ring_central/models/content_type.py", + "src/ring_central/models/soc_msg_gender.py", + "src/ring_central/models/identity_type.py", + "src/ring_central/models/scim_name.py", + "src/ring_central/models/scim_enterprise_user.py", + "src/ring_central/models/scim_authentication_scheme.py", + "src/ring_central/models/scim_bulk_supported.py", + "src/ring_central/models/scim_supported.py", + "src/ring_central/models/scim_filter_supported.py", + "src/ring_central/models/time_settings.py", + "src/ring_central/models/call_filters.py", + "src/ring_central/models/aggregation_response_options.py", + "src/ring_central/models/direct_grouping.py", + "src/ring_central/models/grouping_by_members.py", + "src/ring_central/models/grouping_options.py", + "src/ring_central/models/members_grouping_options.py", + "src/ring_central/models/time_range.py", + "src/ring_central/models/advanced_time_settings.py", + "src/ring_central/models/day_of_week.py", + "src/ring_central/models/hours_interval.py", + "src/ring_central/models/extension_filters.py", + "src/ring_central/models/direction.py", + "src/ring_central/models/origin.py", + "src/ring_central/models/call_response.py", + "src/ring_central/models/call_result.py", + "src/ring_central/models/call_segment_filter.py", + "src/ring_central/models/call_action.py", + "src/ring_central/models/company_hours_options.py", + "src/ring_central/models/call_duration_filter.py", + "src/ring_central/models/time_spent_filter.py", + "src/ring_central/models/queue_sla_options.py", + "src/ring_central/models/call_type.py", + "src/ring_central/models/call_segment_options.py", + "src/ring_central/models/call_segment_length_filter.py", + "src/ring_central/models/aggregation_type.py", + "src/ring_central/models/aggregation_interval.py", + "src/ring_central/models/queue_opportunities_aggregation_type.py", + "src/ring_central/models/response_paging.py", + "src/ring_central/models/aggregation_response_data.py", + "src/ring_central/models/aggregation_response_record.py", + "src/ring_central/models/key_info.py", + "src/ring_central/models/calls_timers.py", + "src/ring_central/models/calls_counters.py", + "src/ring_central/models/all_calls.py", + "src/ring_central/models/calls_by_direction.py", + "src/ring_central/models/calls_by_origin.py", + "src/ring_central/models/calls_by_response.py", + "src/ring_central/models/calls_by_segments.py", + "src/ring_central/models/calls_by_result.py", + "src/ring_central/models/calls_by_company_hours.py", + "src/ring_central/models/calls_by_queue_sla.py", + "src/ring_central/models/calls_by_type.py", + "src/ring_central/models/value_type.py", + "src/ring_central/models/calls_by_direction_breakdown.py", + "src/ring_central/models/calls_by_origin_breakdown.py", + "src/ring_central/models/calls_by_response_breakdown.py", + "src/ring_central/models/calls_by_segments_breakdown.py", + "src/ring_central/models/calls_by_result_breakdown.py", + "src/ring_central/models/calls_by_company_hours_breakdown.py", + "src/ring_central/models/calls_by_queue_sla_breakdown.py", + "src/ring_central/models/calls_by_type_breakdown.py", + "src/ring_central/models/calls_by_actions.py", + "src/ring_central/models/queue_opportunities.py", + "src/ring_central/models/calls_by_actions_breakdown.py", + "src/ring_central/models/timeline_response_options.py", + "src/ring_central/models/timeline_response_options_counters.py", + "src/ring_central/models/timeline_response_options_timers.py", + "src/ring_central/models/timeline_response_data.py", + "src/ring_central/models/timeline_response_record.py", + "src/ring_central/models/timeline_response_point.py", + "src/ring_central/models/tm_navigation_info.py", + "src/ring_central/models/tm_chat_member_info.py", + "src/ring_central/models/tm_attachment_author_info.py", + "src/ring_central/models/tm_attachment_footnote_info.py", + "src/ring_central/models/adaptive_card_column_info.py", + "src/ring_central/models/adaptive_card_column_item_info.py", + "src/ring_central/models/adaptive_card_creator.py", + "src/ring_central/models/tm_creator_info.py", + "src/ring_central/models/last_modified_by_info.py", + "src/ring_central/models/locked_by_info.py", + "src/ring_central/models/glip_data_export_navigation_info.py", + "src/ring_central/models/glip_data_export_paging_info.py", + "src/ring_central/models/creator_info.py", + "src/ring_central/models/specific_info.py", + "src/ring_central/models/export_task_result_info.py", + "src/ring_central/models/data_export_task_contact_info.py", + "src/ring_central/models/glip_data_export_navigation_info_uri.py", + "documentation/services/DelegationManagementService.md", + "documentation/services/AuditTrailService.md", + "documentation/services/VideoConfigurationService.md", + "documentation/services/PagerMessagesService.md", + "documentation/services/FeaturesService.md", + "documentation/services/DeviceSipRegistrationService.md", + "documentation/services/StatusService.md", + "documentation/services/InsightsService.md", + "documentation/models/SubscriptionInfo.md", + "documentation/models/CustomCompanyGreetingInfo.md", + "documentation/models/CustomUserGreetingInfo.md", + "documentation/models/DictionaryGreetingInfo.md", + "documentation/models/GetMessageInfoResponse.md", + "documentation/models/AddDeviceToInventoryRequest.md", + "documentation/models/DeviceResource.md", + "documentation/models/AssignPhoneNumberRequest.md", + "documentation/models/PartySuperviseRequest.md", + "documentation/models/SuperviseCallSessionRequest.md", + "documentation/models/CallLogRecord.md", + "documentation/models/ExtensionCreationRequest.md", + "documentation/models/ExtensionCreationResponse.md", + "documentation/models/OptOutBulkAssignResponse.md", + "documentation/models/CompanyAnsweringRuleRequest.md", + "documentation/models/CompanyAnsweringRuleInfo.md", + "documentation/models/CompanyAnsweringRuleUpdate.md", + "documentation/models/CreateAnsweringRuleRequest.md", + "documentation/models/GetLocationDeletionMultiResponse.md", + "documentation/models/AutomaticLocationUpdatesTaskInfo.md", + "documentation/models/AccountHistorySearchPublicRequest.md", + "documentation/models/ContactResource.md", + "documentation/models/SearchDirectoryEntriesRequest.md", + "documentation/models/UserVideoConfiguration.md", + "documentation/models/ForwardingNumberResource.md", + "documentation/models/AsrInput.md", + "documentation/models/DiarizeInput.md", + "documentation/models/IdentifyInput.md", + "documentation/models/InteractionInput.md", + "documentation/models/TmCompleteTaskRequest.md", + "documentation/models/TmChatInfo.md", + "documentation/models/TmNoteInfo.md", + "documentation/models/TmNoteWithBodyInfo.md", + "documentation/models/TmTeamInfo.md", + "documentation/models/WebhookDeliveryMode.md", + "documentation/models/MobileDeliveryMode.md", + "documentation/models/PubNubDeliveryMode.md", + "documentation/models/BatchProvisionUsersSuccessItem.md", + "documentation/models/EmailRecipientInfo.md", + "documentation/models/Recording.md", + "documentation/models/SignupInfoResource.md", + "documentation/models/BillingPlanInfo.md", + "documentation/models/EmergencyServiceAddressResource.md", + "documentation/models/ShippingMethodInfo.md", + "documentation/models/GreetingResource.md", + "documentation/models/CallStatusInfo.md", + "documentation/models/ReplyWithPattern.md", + "documentation/models/CallLogRecordLegInfo.md", + "documentation/models/ExtensionBulkUpdateInfo.md", + "documentation/models/OptOutResponse.md", + "documentation/models/CallQueueInfo.md", + "documentation/models/ActiveCallInfo.md", + "documentation/models/UpdateUnifiedPresenceGlip.md", + "documentation/models/MeetingRecordingInfo.md", + "documentation/models/ScheduleUserMeetingInfo.md", + "documentation/models/OrderBy.md", + "documentation/models/SiteIvrActions.md", + "documentation/models/SiteIvrActionsUpdate.md", + "documentation/models/SipRegistrationDeviceInfo.md", + "documentation/models/TaskRecurrenceInfo.md", + "documentation/models/EventRecurrenceInfo.md", + "documentation/models/TmMessageAttachmentInfo.md", + "src/ring_central/services/registration_management.py", + "src/ring_central/services/meeting_recordings.py", + "src/ring_central/services/meetings_history.py", + "src/ring_central/services/api_info.py", + "src/ring_central/services/fax.py", + "src/ring_central/services/site_administration.py", + "src/ring_central/services/sms.py", + "src/ring_central/services/text.py", + "src/ring_central/services/identities.py", + "src/ring_central/services/business_analytics.py", + "src/ring_central/services/profile.py", + "documentation/services/RegistrationManagementService.md", + "documentation/services/MeetingRecordingsService.md", + "documentation/services/MeetingsHistoryService.md", + "documentation/services/ApiInfoService.md", + "documentation/services/FaxService.md", + "documentation/services/SiteAdministrationService.md", + "documentation/services/SmsService.md", + "documentation/services/TextService.md", + "documentation/services/IdentitiesService.md", + "documentation/services/BusinessAnalyticsService.md", + "documentation/services/ProfileService.md", + "documentation/models/RegSessionModel.md", + "documentation/models/GetExtensionInfoResponse.md", + "documentation/models/ExtensionUpdateRequest.md", + "documentation/models/Meeting.md", + "documentation/models/CompanyPhoneNumberInfo.md", + "documentation/models/CustomAnsweringRuleInfo.md", + "documentation/models/AnsweringRuleInfo.md", + "documentation/models/UpdateAnsweringRuleRequest.md", + "documentation/models/CallQueueDetails.md", + "documentation/models/PresenceInfoRequest.md", + "documentation/models/EmergencyLocationRequestResource.md", + "documentation/models/MeetingResponseResource.md", + "documentation/models/MeetingRequestResource.md", + "documentation/models/ForwardingNumberInfo.md", + "documentation/models/CallerBlockingSettings.md", + "documentation/models/CallerBlockingSettingsUpdate.md", + "documentation/models/TmUpdateTaskRequest.md", + "documentation/models/TmCreateTaskRequest.md", + "documentation/models/AdaptiveCardRequest.md", + "documentation/models/AdaptiveCardInfo.md", + "documentation/models/WebinarSettingsModel.md", + "documentation/models/WcsWebinarSettingsModel.md", + "documentation/models/BridgePreferences.md", + "documentation/models/PhoneNumberInfoIntId.md", + "documentation/models/GetExtensionListInfoResponse.md", + "documentation/models/UnifiedPresenceGlip.md", + "documentation/models/UnifiedPresenceTelephony.md", + "documentation/models/RingOutStatusInfo.md", + "documentation/models/DevicePhoneNumberInfo.md", + "src/ring_central/models/batch_provision_users_response.py", + "src/ring_central/models/bulk_add_devices_response.py", + "src/ring_central/models/per_page.py", + "src/ring_central/models/create_content_request.py", + "src/ring_central/models/vertical_content_alignment.py", + "src/ring_central/models/image_fill_mode.py", + "src/ring_central/models/horizontal_alignment.py", + "src/ring_central/models/vertical_alignment.py", + "documentation/services/CallRecordingsService.md", + "documentation/services/MessageExportsService.md", + "documentation/services/PagingOnlyGroupsService.md", + "documentation/services/RingOutService.md", + "documentation/services/ContentsService.md", + "documentation/services/ConversationsService.md", + "documentation/services/ComplianceExportsService.md", + "documentation/models/CallParty.md", + "documentation/models/ForwardCallPartyResponse.md", + "documentation/models/DeviceEmergencyInfo.md", + "documentation/models/ScimSchemaAttribute.md", + "src/ring_central/models/participant_reduced_model.py", + "src/ring_central/models/invitee_model.py", + "src/ring_central/models/recording_download_model.py", + "src/ring_central/models/bulk_update_invitees_request.py", + "src/ring_central/models/greetings_create_company_greeting_request_1.py", + "src/ring_central/models/greetings_create_company_greeting_request_2.py", + "src/ring_central/models/greetings_create_custom_user_greeting_request_1.py", + "src/ring_central/models/greetings_create_custom_user_greeting_request_2.py", + "src/ring_central/models/bulk_delete_users_response.py", + "src/ring_central/models/create_bridge_request.py", + "src/ring_central/models/bridge_response.py", + "src/ring_central/models/token_info.py", + "src/ring_central/models/authorize_request.py", + "src/ring_central/models/revoke_token_request.py", + "src/ring_central/models/account_info.py", + "src/ring_central/models/get_account_info_response.py", + "src/ring_central/models/contracted_country_list_response.py", + "src/ring_central/models/add_device_to_inventory_response.py", + "src/ring_central/models/delete_device_from_inventory_request.py", + "src/ring_central/models/delete_device_from_inventory_response.py", + "src/ring_central/models/remove_line_response.py", + "src/ring_central/models/account_phone_number_info.py", + "src/ring_central/models/custom_field_create_request.py", + "src/ring_central/models/custom_field_model.py", + "src/ring_central/models/reply_party.py", + "src/ring_central/models/party_supervise_response.py", + "src/ring_central/models/hold_call_party_request.py", + "src/ring_central/models/supervise_call_session_response.py", + "src/ring_central/models/extension_bulk_update_task_resource.py", + "src/ring_central/models/message_batch_response.py", + "src/ring_central/models/address_book_bulk_upload_response.py", + "src/ring_central/models/personal_contact_resource.py", + "src/ring_central/models/unified_presence.py", + "src/ring_central/models/role_resource.py", + "src/ring_central/models/message_store_report.py", + "src/ring_central/models/get_internal_text_message_info_response.py", + "src/ring_central/models/permission_resource.py", + "src/ring_central/models/create_forwarding_number_request.py", + "src/ring_central/models/update_forwarding_number_request.py", + "src/ring_central/models/fax_response.py", + "src/ring_central/models/get_sms_message_info_response.py", + "src/ring_central/models/create_sip_registration_request.py", + "src/ring_central/models/summary_input.py", + "src/ring_central/models/enrollment_input.py", + "src/ring_central/models/enrollment_status.py", + "src/ring_central/models/enrollment_patch_input.py", + "src/ring_central/models/scim_schema_search_response.py", + "src/ring_central/models/scim_user_search_response.py", + "src/ring_central/models/scim_user.py", + "src/ring_central/models/scim_user_response.py", + "src/ring_central/models/scim_search_request.py", + "src/ring_central/models/scim_user_patch.py", + "src/ring_central/models/scim_provider_config.py", + "src/ring_central/models/scim_resource_type_search_response.py", + "src/ring_central/models/scim_resource_type_response.py", + "src/ring_central/models/tm_create_event_request.py", + "src/ring_central/models/tm_event_info.py", + "src/ring_central/models/tm_post_info.py", + "src/ring_central/models/adaptive_card_short_info.py", + "src/ring_central/models/tm_webhook_info.py", + "src/ring_central/models/create_conversation_request.py", + "src/ring_central/models/tm_conversation_info.py", + "src/ring_central/models/data_export_task.py", + "src/ring_central/models/everyone_team_info.py", + "src/ring_central/models/tm_create_team_request.py", + "src/ring_central/models/tm_remove_team_members_request.py", + "src/ring_central/models/tm_add_team_members_request.py", + "src/ring_central/models/web_socket_delivery_mode.py", + "src/ring_central/models/webhook_delivery_mode_request.py", + "src/ring_central/models/rcw_domain_user_model.py", + "src/ring_central/models/participant_extended_model.py", + "src/ring_central/models/reference_info.py", + "src/ring_central/models/regional_settings.py", + "src/ring_central/models/extension_service_feature_info.py", + "src/ring_central/models/extension_status_info.py", + "src/ring_central/models/pronounced_name_info.py", + "src/ring_central/models/pronounced_name_prompt_info.py", + "src/ring_central/models/extension_regional_setting_request.py", + "src/ring_central/models/extension_info_grants.py", + "src/ring_central/models/caller_id_by_feature.py", + "src/ring_central/models/caller_id_by_feature_request.py", + "src/ring_central/models/ivr_menu_prompt_info.py", + "src/ring_central/models/ivr_menu_actions_info.py", + "src/ring_central/models/bridge_join_preferences.py", + "src/ring_central/models/account_status_info.py", + "src/ring_central/models/service_info_package.py", + "src/ring_central/models/service_info_plan.py", + "src/ring_central/models/account_regional_settings.py", + "src/ring_central/models/service_plan_info.py", + "src/ring_central/models/target_service_plan_info.py", + "src/ring_central/models/service_feature_info.py", + "src/ring_central/models/emergency_address.py", + "src/ring_central/models/add_phone_number_request_item.py", + "src/ring_central/models/user_phone_number_extension_info.py", + "src/ring_central/models/call_recording_custom_greeting.py", + "src/ring_central/models/call_recording_extension_resource.py", + "src/ring_central/models/origin_info.py", + "src/ring_central/models/call_log_recording_info.py", + "src/ring_central/models/extension_update_short_result.py", + "src/ring_central/models/list_company_answering_rule_info.py", + "src/ring_central/models/company_answering_rule_schedule_info_request.py", + "src/ring_central/models/company_answering_rule_schedule_info.py", + "src/ring_central/models/forward_all_calls_reason.py", + "src/ring_central/models/schedule_info.py", + "src/ring_central/models/forwarding_info.py", + "src/ring_central/models/unconditional_forwarding_info.py", + "src/ring_central/models/missed_call_info.py", + "src/ring_central/models/create_answering_rule_forwarding_number_info.py", + "src/ring_central/models/transfer_info.py", + "src/ring_central/models/forwarding_info_create_rule_request.py", + "src/ring_central/models/forwarding_number_info_rules_create_rule_request.py", + "src/ring_central/models/sync_info.py", + "src/ring_central/models/primary_cq_info.py", + "src/ring_central/models/additional_cq_info.py", + "src/ring_central/models/unified_presence_meeting.py", + "src/ring_central/models/update_unified_presence_telephony.py", + "src/ring_central/models/location_deletion_info.py", + "src/ring_central/models/automatic_location_updates_user_info.py", + "src/ring_central/models/bulk_task_info.py", + "src/ring_central/models/switch_validated.py", + "src/ring_central/models/wireless_point_validated.py", + "src/ring_central/models/user_meeting_recording_setting.py", + "src/ring_central/models/permission_id_resource.py", + "src/ring_central/models/call_monitoring_extension_info.py", + "src/ring_central/models/call_monitoring_group_member_info.py", + "src/ring_central/models/account_history_record_target.py", + "src/ring_central/models/phone_number_resource.py", + "src/ring_central/models/active_permission_resource.py", + "src/ring_central/models/message_attachment_info_int_id.py", + "src/ring_central/models/roles_regional_settings_resource.py", + "src/ring_central/models/reason_info.py", + "src/ring_central/models/mobile_delivery_mode_request.py", + "src/ring_central/models/pub_nub_delivery_mode_request.py", + "src/ring_central/models/sip_info_request.py", + "src/ring_central/models/sip_info_response.py", + "src/ring_central/models/device_model_info.py", + "src/ring_central/models/device_phone_lines_info.py", + "src/ring_central/models/summary_output_unit.py", + "src/ring_central/models/cai_error_code_response.py", + "src/ring_central/models/emotion_segment.py", + "src/ring_central/models/conversational_insights_unit.py", + "src/ring_central/models/utterance_insights_unit.py", + "src/ring_central/models/speaker_insights_unit.py", + "src/ring_central/models/content_components.py", + "src/ring_central/models/scim_meta.py", + "src/ring_central/models/scim_user_address.py", + "src/ring_central/models/scim_email.py", + "src/ring_central/models/scim_phone_number.py", + "src/ring_central/models/scim_photo.py", + "src/ring_central/models/scim_patch_operation.py", + "src/ring_central/models/scim_schema_extension.py", + "src/ring_central/models/task_attachment.py", + "src/ring_central/models/tm_attachment_info.py", + "src/ring_central/models/tm_mentions_info.py", + "src/ring_central/models/tm_attachment_fields_info.py", + "src/ring_central/models/adaptive_card_info_request.py", + "src/ring_central/models/adaptive_card_action.py", + "src/ring_central/models/adaptive_card_select_action.py", + "src/ring_central/models/adaptive_card_info_request_item.py", + "src/ring_central/models/action_adaptive_card_info.py", + "src/ring_central/models/action_card_body.py", + "src/ring_central/models/background_image.py", + "src/ring_central/services/call_recordings.py", + "src/ring_central/services/message_exports.py", + "src/ring_central/services/paging_only_groups.py", + "src/ring_central/services/ring_out.py", + "src/ring_central/services/contents.py", + "src/ring_central/services/conversations.py", + "src/ring_central/services/compliance_exports.py", + "documentation/services/RegistrantsService.md", + "documentation/services/OAuth2_0OpenIdConnectService.md", + "documentation/services/BusinessHoursService.md", + "documentation/services/CustomFieldsService.md", + "documentation/services/InternalContactsService.md", + "documentation/services/AdaptiveCardsService.md", + "documentation/models/BatchProvisionUsersRequestItem.md", + "documentation/models/UserPhoneNumberInfo.md", + "documentation/models/QueueInfo.md", + "documentation/models/SipRegistrationDeviceEmergencyInfo.md", + "documentation/services/HistoricalRecordingsService.md", + "documentation/services/InviteesService.md", + "documentation/models/GetPresenceInfo.md", + "documentation/models/PresenceInfoResponse.md", + "documentation/models/DeviceDefinition.md", + "documentation/models/BulkAddDevicesItem.md", + "documentation/models/EmergencyAddressInfo.md", + "src/ring_central/services/registrants.py", + "src/ring_central/services/o_auth_2_0_open_id_connect.py", + "src/ring_central/services/business_hours.py", + "src/ring_central/services/custom_fields.py", + "src/ring_central/services/internal_contacts.py", + "src/ring_central/services/adaptive_cards.py", + "documentation/services/WebinarSubscriptionsService.md", + "documentation/services/ExtensionsService.md", + "documentation/services/CallMonitoringGroupsService.md", + "documentation/services/UserPermissionsService.md", + "documentation/services/CallForwardingService.md", + "documentation/services/SubscriptionsService.md", + "documentation/services/TasksService.md", + "documentation/services/ChatsService.md", + "documentation/services/PostsService.md", + "documentation/models/TmTaskInfo.md", + "src/ring_central/models/subscription_info.py", + "src/ring_central/models/custom_company_greeting_info.py", + "src/ring_central/models/custom_user_greeting_info.py", + "src/ring_central/models/dictionary_greeting_info.py", + "src/ring_central/models/get_message_info_response.py", + "src/ring_central/models/add_device_to_inventory_request.py", + "src/ring_central/models/device_resource.py", + "src/ring_central/models/assign_phone_number_request.py", + "src/ring_central/models/party_supervise_request.py", + "src/ring_central/models/supervise_call_session_request.py", + "src/ring_central/models/call_log_record.py", + "src/ring_central/models/extension_creation_request.py", + "src/ring_central/models/extension_creation_response.py", + "src/ring_central/models/opt_out_bulk_assign_response.py", + "src/ring_central/models/company_answering_rule_request.py", + "src/ring_central/models/company_answering_rule_info.py", + "src/ring_central/models/company_answering_rule_update.py", + "src/ring_central/models/create_answering_rule_request.py", + "src/ring_central/models/get_location_deletion_multi_response.py", + "src/ring_central/models/automatic_location_updates_task_info.py", + "src/ring_central/models/account_history_search_public_request.py", + "src/ring_central/models/contact_resource.py", + "src/ring_central/models/search_directory_entries_request.py", + "src/ring_central/models/user_video_configuration.py", + "src/ring_central/models/forwarding_number_resource.py", + "src/ring_central/models/asr_input.py", + "src/ring_central/models/diarize_input.py", + "src/ring_central/models/identify_input.py", + "src/ring_central/models/interaction_input.py", + "src/ring_central/models/tm_complete_task_request.py", + "src/ring_central/models/tm_chat_info.py", + "src/ring_central/models/tm_note_info.py", + "src/ring_central/models/tm_note_with_body_info.py", + "src/ring_central/models/tm_team_info.py", + "src/ring_central/models/webhook_delivery_mode.py", + "src/ring_central/models/mobile_delivery_mode.py", + "src/ring_central/models/pub_nub_delivery_mode.py", + "src/ring_central/models/batch_provision_users_success_item.py", + "src/ring_central/models/email_recipient_info.py", + "src/ring_central/models/recording.py", + "src/ring_central/models/signup_info_resource.py", + "src/ring_central/models/billing_plan_info.py", + "src/ring_central/models/emergency_service_address_resource.py", + "src/ring_central/models/shipping_method_info.py", + "src/ring_central/models/greeting_resource.py", + "src/ring_central/models/call_status_info.py", + "src/ring_central/models/reply_with_pattern.py", + "src/ring_central/models/call_log_record_leg_info.py", + "src/ring_central/models/extension_bulk_update_info.py", + "src/ring_central/models/opt_out_response.py", + "src/ring_central/models/call_queue_info.py", + "src/ring_central/models/active_call_info.py", + "src/ring_central/models/update_unified_presence_glip.py", + "src/ring_central/models/meeting_recording_info.py", + "src/ring_central/models/schedule_user_meeting_info.py", + "src/ring_central/models/order_by.py", + "src/ring_central/models/site_ivr_actions.py", + "src/ring_central/models/site_ivr_actions_update.py", + "src/ring_central/models/sip_registration_device_info.py", + "src/ring_central/models/task_recurrence_info.py", + "src/ring_central/models/event_recurrence_info.py", + "src/ring_central/models/tm_message_attachment_info.py", + "documentation/services/GreetingsService.md", + "documentation/services/BridgeManagementService.md", + "documentation/services/CallRecordingSettingsService.md", + "documentation/services/CallBlockingService.md", + "documentation/services/CalendarEventsService.md", + "documentation/services/IncomingWebhooksService.md", + "src/ring_central/services/historical_recordings.py", + "src/ring_central/services/invitees.py", + "documentation/services/HistoricalWebinarsService.md", + "documentation/services/HighVolumeSmsService.md", + "documentation/services/CallQueuesService.md", + "documentation/services/AudioService.md", + "documentation/services/NotesService.md", + "documentation/models/AggregationResponseOptionsTimers.md", + "src/ring_central/models/adaptive_card_request.py", + "src/ring_central/models/adaptive_card_info.py", + "README.md", + "documentation/services/CompanyService.md", + "documentation/services/CallLogService.md", + "documentation/services/PresenceService.md", + "documentation/services/MultiSiteService.md", + "documentation/services/RegionalSettingsService.md", + "src/ring_central/models/reg_session_model.py", + "src/ring_central/models/get_extension_info_response.py", + "src/ring_central/models/extension_update_request.py", + "src/ring_central/models/meeting.py", + "src/ring_central/models/company_phone_number_info.py", + "src/ring_central/models/custom_answering_rule_info.py", + "src/ring_central/models/answering_rule_info.py", + "src/ring_central/models/update_answering_rule_request.py", + "src/ring_central/models/call_queue_details.py", + "src/ring_central/models/presence_info_request.py", + "src/ring_central/models/emergency_location_request_resource.py", + "src/ring_central/models/meeting_response_resource.py", + "src/ring_central/models/meeting_request_resource.py", + "src/ring_central/models/forwarding_number_info.py", + "src/ring_central/models/caller_blocking_settings.py", + "src/ring_central/models/caller_blocking_settings_update.py", + "src/ring_central/models/tm_update_task_request.py", + "src/ring_central/models/tm_create_task_request.py", + "src/ring_central/models/webinar_settings_model.py", + "src/ring_central/models/wcs_webinar_settings_model.py", + "src/ring_central/models/bridge_preferences.py", + "src/ring_central/models/phone_number_info_int_id.py", + "src/ring_central/models/get_extension_list_info_response.py", + "src/ring_central/models/unified_presence_glip.py", + "src/ring_central/models/unified_presence_telephony.py", + "src/ring_central/models/ring_out_status_info.py", + "src/ring_central/models/device_phone_number_info.py", + "src/ring_central/services/webinar_subscriptions.py", + "src/ring_central/services/extensions.py", + "src/ring_central/services/call_monitoring_groups.py", + "src/ring_central/services/user_permissions.py", + "src/ring_central/services/call_forwarding.py", + "src/ring_central/services/subscriptions.py", + "src/ring_central/services/tasks.py", + "src/ring_central/services/chats.py", + "src/ring_central/services/posts.py", + "documentation/services/MessageStoreService.md", + "documentation/services/IvrService.md", + "documentation/services/DevicesService.md", + "documentation/services/PhoneNumbersService.md", + "documentation/services/SmsTemplatesService.md", + "documentation/models/AggregationResponseOptionsCounters.md", + "documentation/services/WebinarsAndSessionsService.md", + "documentation/services/ExternalContactsService.md", + "src/ring_central/services/greetings.py", + "src/ring_central/services/bridge_management.py", + "src/ring_central/services/call_recording_settings.py", + "src/ring_central/services/call_blocking.py", + "src/ring_central/services/calendar_events.py", + "src/ring_central/services/incoming_webhooks.py", + "documentation/services/CallHandlingRulesService.md", + "documentation/services/ScimService.md", + "src/ring_central/models/call_party.py", + "src/ring_central/models/forward_call_party_response.py", + "src/ring_central/models/device_emergency_info.py", + "src/ring_central/models/scim_schema_attribute.py", + "documentation/services/TeamsService.md", + "src/ring_central/services/historical_webinars.py", + "src/ring_central/services/high_volume_sms.py", + "src/ring_central/services/audio.py", + "src/ring_central/services/notes.py", + "src/ring_central/models/sip_registration_device_emergency_info.py", + "documentation/services/RoleManagementService.md", + "src/ring_central/models/batch_provision_users_request_item.py", + "src/ring_central/models/user_phone_number_info.py", + "src/ring_central/models/queue_info.py", + "src/ring_central/services/company.py", + "src/ring_central/services/call_log.py", + "src/ring_central/services/presence.py", + "src/ring_central/services/multi_site.py", + "src/ring_central/services/regional_settings.py", + "documentation/services/UserSettingsService.md", + "src/ring_central/models/device_definition.py", + "src/ring_central/models/bulk_add_devices_item.py", + "src/ring_central/models/emergency_address_info.py", + "src/ring_central/services/message_store.py", + "src/ring_central/services/ivr.py", + "src/ring_central/services/devices.py", + "src/ring_central/services/phone_numbers.py", + "src/ring_central/services/sms_templates.py", + "src/ring_central/services/call_queues.py", + "src/ring_central/models/get_presence_info.py", + "src/ring_central/models/presence_info_response.py", + "src/ring_central/services/webinars_and_sessions.py", + "src/ring_central/services/external_contacts.py", + "src/ring_central/models/tm_task_info.py", + "src/ring_central/services/call_handling_rules.py", + "src/ring_central/services/scim.py", + "src/ring_central/services/teams.py", + "documentation/services/CallControlService.md", + "src/ring_central/models/aggregation_response_options_timers.py", + "src/ring_central/services/role_management.py", + "documentation/models/GetTokenRequest.md", + "src/ring_central/services/user_settings.py", + "src/ring_central/models/aggregation_response_options_counters.py", + "src/ring_central/services/rcm_meetings_legacy.py", + "documentation/services/AutomaticLocationUpdatesService.md", + "src/ring_central/services/call_control.py", + "src/ring_central/models/job_status_response.py", + "src/ring_central/services/automatic_location_updates.py", + "src/ring_central/models/get_token_request.py" + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..db5ca622 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..4cbd3881 --- /dev/null +++ b/README.md @@ -0,0 +1,1858 @@ +# RingCentral Python SDK 1.0.0 + +Welcome to the RingCentral SDK documentation. This guide will help you get started with integrating and using the RingCentral SDK in your project. + +## Versions + +- API version: `1.0.58-20240529-47eda8bd` +- SDK version: `1.0.0` + +## About the API + +RingCentral API specification + +## Table of Contents + +- [Setup & Configuration](#setup--configuration) + - [Supported Language Versions](#supported-language-versions) + - [Installation](#installation) +- [Authentication](#authentication) + - [Access Token Authentication](#access-token-authentication) +- [Using Union Types](#using-union-types) +- [Services](#services) +- [Models](#models) +- [License](#license) + +## Setup & Configuration + +### Supported Language Versions + +This SDK is compatible with the following versions: `Python >= 3.7` + +### Installation + +To get started with the SDK, we recommend installing using `pip`: + +```bash +pip install ring-central-client +``` + +## Authentication + +### Access Token Authentication + +The RingCentral API uses an Access Token for authentication. + +This token must be provided to authenticate your requests to the API. + +#### Setting the Access Token + +When you initialize the SDK, you can set the access token as follows: + +```py +RingCentral( + access_token="YOUR_ACCESS_TOKEN" +) +``` + +If you need to set or update the access token after initializing the SDK, you can use: + +```py +sdk.set_access_token("YOUR_ACCESS_TOKEN") +``` + +## Using Union Types + +Union types allow you to specify that a variable can have more than one type. This is particularly useful when a function can accept multiple types of inputs. The Union type hint is used for this purpose. + +### Example Function with Union Types + +You can call service method with an instance of `TypeA`, `TypeB`, or a dictionary that can be converted to an instance of either type. + +```python +# Model Definition +ParamType = Union[TypeA, TypeB] + +# Service Method +def service_method(param: ParamType): +... + +## Usage +type_a = TypeA(key="value") +type_b = TypeB(key="value") + +sdk.service.service_method(type_a) +sdk.service.service_method(type_b) +sdk.service.service_method({"key": "value"}) +``` + +You cannot create an instance of a `Union` type itself. Instead, pass an instance of one of the types in the `Union`, or a dictionary that can be converted to one of those types. + +## Services + +The SDK provides various services to interact with the API. + +
+Below is a list of all available services with links to their detailed documentation: + +| Name | +| :------------------------------------------------------------------------------------------- | +| [WebinarSubscriptionsService](documentation/services/WebinarSubscriptionsService.md) | +| [HistoricalWebinarsService](documentation/services/HistoricalWebinarsService.md) | +| [HistoricalRecordingsService](documentation/services/HistoricalRecordingsService.md) | +| [RegistrationManagementService](documentation/services/RegistrationManagementService.md) | +| [RegistrantsService](documentation/services/RegistrantsService.md) | +| [WebinarsAndSessionsService](documentation/services/WebinarsAndSessionsService.md) | +| [InviteesService](documentation/services/InviteesService.md) | +| [CallRecordingsService](documentation/services/CallRecordingsService.md) | +| [GreetingsService](documentation/services/GreetingsService.md) | +| [UserSettingsService](documentation/services/UserSettingsService.md) | +| [MessageStoreService](documentation/services/MessageStoreService.md) | +| [IvrService](documentation/services/IvrService.md) | +| [BridgeManagementService](documentation/services/BridgeManagementService.md) | +| [MeetingRecordingsService](documentation/services/MeetingRecordingsService.md) | +| [DelegationManagementService](documentation/services/DelegationManagementService.md) | +| [MeetingsHistoryService](documentation/services/MeetingsHistoryService.md) | +| [ApiInfoService](documentation/services/ApiInfoService.md) | +| [OAuth2_0OpenIdConnectService](documentation/services/OAuth2_0OpenIdConnectService.md) | +| [CompanyService](documentation/services/CompanyService.md) | +| [DevicesService](documentation/services/DevicesService.md) | +| [PhoneNumbersService](documentation/services/PhoneNumbersService.md) | +| [BusinessHoursService](documentation/services/BusinessHoursService.md) | +| [CustomFieldsService](documentation/services/CustomFieldsService.md) | +| [CallRecordingSettingsService](documentation/services/CallRecordingSettingsService.md) | +| [CallControlService](documentation/services/CallControlService.md) | +| [SmsTemplatesService](documentation/services/SmsTemplatesService.md) | +| [CallLogService](documentation/services/CallLogService.md) | +| [ExtensionsService](documentation/services/ExtensionsService.md) | +| [HighVolumeSmsService](documentation/services/HighVolumeSmsService.md) | +| [CallHandlingRulesService](documentation/services/CallHandlingRulesService.md) | +| [ExternalContactsService](documentation/services/ExternalContactsService.md) | +| [CallQueuesService](documentation/services/CallQueuesService.md) | +| [PresenceService](documentation/services/PresenceService.md) | +| [AutomaticLocationUpdatesService](documentation/services/AutomaticLocationUpdatesService.md) | +| [RcmMeetingsLegacyService](documentation/services/RcmMeetingsLegacyService.md) | +| [RoleManagementService](documentation/services/RoleManagementService.md) | +| [CallMonitoringGroupsService](documentation/services/CallMonitoringGroupsService.md) | +| [AuditTrailService](documentation/services/AuditTrailService.md) | +| [MessageExportsService](documentation/services/MessageExportsService.md) | +| [InternalContactsService](documentation/services/InternalContactsService.md) | +| [PagingOnlyGroupsService](documentation/services/PagingOnlyGroupsService.md) | +| [MultiSiteService](documentation/services/MultiSiteService.md) | +| [VideoConfigurationService](documentation/services/VideoConfigurationService.md) | +| [PagerMessagesService](documentation/services/PagerMessagesService.md) | +| [UserPermissionsService](documentation/services/UserPermissionsService.md) | +| [CallForwardingService](documentation/services/CallForwardingService.md) | +| [FaxService](documentation/services/FaxService.md) | +| [RingOutService](documentation/services/RingOutService.md) | +| [SiteAdministrationService](documentation/services/SiteAdministrationService.md) | +| [SmsService](documentation/services/SmsService.md) | +| [FeaturesService](documentation/services/FeaturesService.md) | +| [CallBlockingService](documentation/services/CallBlockingService.md) | +| [SubscriptionsService](documentation/services/SubscriptionsService.md) | +| [RegionalSettingsService](documentation/services/RegionalSettingsService.md) | +| [DeviceSipRegistrationService](documentation/services/DeviceSipRegistrationService.md) | +| [StatusService](documentation/services/StatusService.md) | +| [TextService](documentation/services/TextService.md) | +| [AudioService](documentation/services/AudioService.md) | +| [InsightsService](documentation/services/InsightsService.md) | +| [ContentsService](documentation/services/ContentsService.md) | +| [IdentitiesService](documentation/services/IdentitiesService.md) | +| [ScimService](documentation/services/ScimService.md) | +| [BusinessAnalyticsService](documentation/services/BusinessAnalyticsService.md) | +| [TasksService](documentation/services/TasksService.md) | +| [CalendarEventsService](documentation/services/CalendarEventsService.md) | +| [ChatsService](documentation/services/ChatsService.md) | +| [PostsService](documentation/services/PostsService.md) | +| [AdaptiveCardsService](documentation/services/AdaptiveCardsService.md) | +| [NotesService](documentation/services/NotesService.md) | +| [IncomingWebhooksService](documentation/services/IncomingWebhooksService.md) | +| [ProfileService](documentation/services/ProfileService.md) | +| [ConversationsService](documentation/services/ConversationsService.md) | +| [ComplianceExportsService](documentation/services/ComplianceExportsService.md) | +| [TeamsService](documentation/services/TeamsService.md) | + +
+ +## Models + +The SDK includes several models that represent the data structures used in API requests and responses. These models help in organizing and managing the data efficiently. + +
+Below is a list of all available models with links to their detailed documentation: + +| Name | Description | +| :----------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [SubscriptionListResource](documentation/models/SubscriptionListResource.md) | | +| [CreateWebhookSubscriptionRequest](documentation/models/CreateWebhookSubscriptionRequest.md) | | +| [SubscriptionInfo](documentation/models/SubscriptionInfo.md) | | +| [UpdateSubscriptionRequest](documentation/models/UpdateSubscriptionRequest.md) | | +| [WebinarResource](documentation/models/WebinarResource.md) | | +| [SessionResource](documentation/models/SessionResource.md) | | +| [ParticipantListResource](documentation/models/ParticipantListResource.md) | | +| [RcwRoleEnum](documentation/models/RcwRoleEnum.md) | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| [ParticipantReducedModel](documentation/models/ParticipantReducedModel.md) | | +| [InviteeListResource](documentation/models/InviteeListResource.md) | | +| [InviteeModel](documentation/models/InviteeModel.md) | | +| [SessionGlobalListResource](documentation/models/SessionGlobalListResource.md) | | +| [RcwSessionStatusModel](documentation/models/RcwSessionStatusModel.md) | Webinar session status | +| [RecordingAdminListResource](documentation/models/RecordingAdminListResource.md) | | +| [RecordingStatusModel](documentation/models/RecordingStatusModel.md) | Recording status | +| [RecordingAdminExtendedItemModel](documentation/models/RecordingAdminExtendedItemModel.md) | | +| [RecordingListResource](documentation/models/RecordingListResource.md) | | +| [RecordingItemExtendedModel](documentation/models/RecordingItemExtendedModel.md) | | +| [RecordingDownloadModel](documentation/models/RecordingDownloadModel.md) | | +| [RecordingMediaType](documentation/models/RecordingMediaType.md) | Recording file media type. 'Video' implies multiplexed audio and video. 'Audio' refers to audio only. | +| [RegSessionModel](documentation/models/RegSessionModel.md) | | +| [RegistrantListResource](documentation/models/RegistrantListResource.md) | | +| [RegistrantBaseModelWithQuestionnaire](documentation/models/RegistrantBaseModelWithQuestionnaire.md) | | +| [RegistrantModelResponsePostWithQuestionnaire](documentation/models/RegistrantModelResponsePostWithQuestionnaire.md) | | +| [RegistrantModelWithQuestionnaire](documentation/models/RegistrantModelWithQuestionnaire.md) | | +| [WebinarListResource](documentation/models/WebinarListResource.md) | | +| [WebinarCreationRequest](documentation/models/WebinarCreationRequest.md) | | +| [WcsWebinarResource](documentation/models/WcsWebinarResource.md) | | +| [WebinarBaseModel](documentation/models/WebinarBaseModel.md) | | +| [WcsSessionWithLocaleCodeModel](documentation/models/WcsSessionWithLocaleCodeModel.md) | | +| [WcsSessionResource](documentation/models/WcsSessionResource.md) | | +| [WcsSessionGlobalListResource](documentation/models/WcsSessionGlobalListResource.md) | | +| [WcsSessionStatusModel](documentation/models/WcsSessionStatusModel.md) | Session status (for the purposes of Configuration service) | +| [WcsInviteeListResource](documentation/models/WcsInviteeListResource.md) | | +| [BulkUpdateInviteesRequest](documentation/models/BulkUpdateInviteesRequest.md) | | +| [BulkUpdateInviteesResponse](documentation/models/BulkUpdateInviteesResponse.md) | | +| [InviteeResource](documentation/models/InviteeResource.md) | | +| [UpdateInviteeRequest](documentation/models/UpdateInviteeRequest.md) | | +| [ContentDisposition](documentation/models/ContentDisposition.md) | | +| [CallRecordingIds](documentation/models/CallRecordingIds.md) | | +| [GetCallRecordingResponse](documentation/models/GetCallRecordingResponse.md) | | +| [GreetingsCreateCompanyGreetingRequest_1](documentation/models/GreetingsCreateCompanyGreetingRequest1.md) | | +| [GreetingsCreateCompanyGreetingRequest_2](documentation/models/GreetingsCreateCompanyGreetingRequest2.md) | | +| [CustomCompanyGreetingInfo](documentation/models/CustomCompanyGreetingInfo.md) | | +| [GreetingsCreateCustomUserGreetingRequest_1](documentation/models/GreetingsCreateCustomUserGreetingRequest1.md) | | +| [GreetingsCreateCustomUserGreetingRequest_2](documentation/models/GreetingsCreateCustomUserGreetingRequest2.md) | | +| [CustomUserGreetingInfo](documentation/models/CustomUserGreetingInfo.md) | | +| [DictionaryGreetingList](documentation/models/DictionaryGreetingList.md) | | +| [ListStandardGreetingsType](documentation/models/ListStandardGreetingsType.md) | | +| [ListStandardGreetingsUsageType](documentation/models/ListStandardGreetingsUsageType.md) | | +| [DictionaryGreetingInfo](documentation/models/DictionaryGreetingInfo.md) | | +| [ScaleSize](documentation/models/ScaleSize.md) | | +| [BatchProvisionUsersRequest](documentation/models/BatchProvisionUsersRequest.md) | Describes request for user extension provisioning | +| [BatchProvisionUsersResponse](documentation/models/BatchProvisionUsersResponse.md) | | +| [BulkDeleteUsersRequest](documentation/models/BulkDeleteUsersRequest.md) | | +| [BulkDeleteUsersResponse](documentation/models/BulkDeleteUsersResponse.md) | | +| [GetExtensionInfoResponse](documentation/models/GetExtensionInfoResponse.md) | | +| [ExtensionUpdateRequest](documentation/models/ExtensionUpdateRequest.md) | | +| [GetExtensionGrantListResponse](documentation/models/GetExtensionGrantListResponse.md) | | +| [ExtensionType](documentation/models/ExtensionType.md) | | +| [GetConferencingInfoResponse](documentation/models/GetConferencingInfoResponse.md) | | +| [UpdateConferencingInfoRequest](documentation/models/UpdateConferencingInfoRequest.md) | | +| [CreateUserProfileImageRequest](documentation/models/CreateUserProfileImageRequest.md) | | +| [UpdateUserProfileImageRequest](documentation/models/UpdateUserProfileImageRequest.md) | | +| [ExtensionCallerIdInfo](documentation/models/ExtensionCallerIdInfo.md) | | +| [ExtensionCallerIdInfoRequest](documentation/models/ExtensionCallerIdInfoRequest.md) | | +| [NotificationSettings](documentation/models/NotificationSettings.md) | | +| [NotificationSettingsUpdateRequest](documentation/models/NotificationSettingsUpdateRequest.md) | | +| [MessageStoreConfiguration](documentation/models/MessageStoreConfiguration.md) | | +| [GetMessageSyncResponse](documentation/models/GetMessageSyncResponse.md) | | +| [MessageDirectionEnum](documentation/models/MessageDirectionEnum.md) | Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound | +| [MessageTypeEnum](documentation/models/MessageTypeEnum.md) | Type of the message | +| [SyncTypeEnum](documentation/models/SyncTypeEnum.md) | Type of message synchronization request: - FSync -- full sync - ISync -- incremental sync | +| [GetMessageList](documentation/models/GetMessageList.md) | | +| [MessageAvailabilityEnum](documentation/models/MessageAvailabilityEnum.md) | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | +| [MessageReadStatusEnum](documentation/models/MessageReadStatusEnum.md) | Message read status | +| [DeleteMessageByFilterType](documentation/models/DeleteMessageByFilterType.md) | | +| [GetMessageInfoResponse](documentation/models/GetMessageInfoResponse.md) | | +| [GetMessageInfoMultiResponse](documentation/models/GetMessageInfoMultiResponse.md) | | +| [UpdateMessageRequest](documentation/models/UpdateMessageRequest.md) | | +| [UpdateMessageBulkRequest](documentation/models/UpdateMessageBulkRequest.md) | | +| [PatchMessageRequest](documentation/models/PatchMessageRequest.md) | Either `readStatus` or `availability` or both are required | +| [PatchMessageBulkRequest](documentation/models/PatchMessageBulkRequest.md) | | +| [IvrPrompts](documentation/models/IvrPrompts.md) | | +| [CreateIvrPromptRequest](documentation/models/CreateIvrPromptRequest.md) | | +| [PromptInfo](documentation/models/PromptInfo.md) | | +| [UpdateIvrPromptRequest](documentation/models/UpdateIvrPromptRequest.md) | | +| [IvrMenuList](documentation/models/IvrMenuList.md) | | +| [IvrMenuInfo](documentation/models/IvrMenuInfo.md) | | +| [CreateBridgeRequest](documentation/models/CreateBridgeRequest.md) | | +| [BridgeResponse](documentation/models/BridgeResponse.md) | | +| [UpdateBridgeRequest](documentation/models/UpdateBridgeRequest.md) | | +| [CloudRecordings](documentation/models/CloudRecordings.md) | Recordings page | +| [DelegatorsListResult](documentation/models/DelegatorsListResult.md) | | +| [MeetingPage](documentation/models/MeetingPage.md) | Meetings page | +| [ListVideoMeetingsType](documentation/models/ListVideoMeetingsType.md) | | +| [Meeting](documentation/models/Meeting.md) | Meeting information | +| [ApiVersionsList](documentation/models/ApiVersionsList.md) | | +| [ApiVersionInfo](documentation/models/ApiVersionInfo.md) | | +| [GetTokenRequest](documentation/models/GetTokenRequest.md) | | +| [TokenInfo](documentation/models/TokenInfo.md) | | +| [AuthorizeResponseType](documentation/models/AuthorizeResponseType.md) | | +| [DisplayModesEnum](documentation/models/DisplayModesEnum.md) | Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. | +| [CodeChallengeMethodEnum](documentation/models/CodeChallengeMethodEnum.md) | The code challenge method as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| [AuthorizeRequest](documentation/models/AuthorizeRequest.md) | | +| [RevokeTokenRequest](documentation/models/RevokeTokenRequest.md) | | +| [AccountInfo](documentation/models/AccountInfo.md) | | +| [SendWelcomeEmailV2Request](documentation/models/SendWelcomeEmailV2Request.md) | | +| [GetAccountInfoResponse](documentation/models/GetAccountInfoResponse.md) | | +| [AccountServiceInfo](documentation/models/AccountServiceInfo.md) | | +| [AccountBusinessAddressResource](documentation/models/AccountBusinessAddressResource.md) | | +| [ModifyAccountBusinessAddressRequest](documentation/models/ModifyAccountBusinessAddressRequest.md) | | +| [ContractedCountryListResponse](documentation/models/ContractedCountryListResponse.md) | | +| [CountryListDictionaryModel](documentation/models/CountryListDictionaryModel.md) | | +| [AddDeviceToInventoryRequest](documentation/models/AddDeviceToInventoryRequest.md) | | +| [AddDeviceToInventoryResponse](documentation/models/AddDeviceToInventoryResponse.md) | | +| [DeleteDeviceFromInventoryRequest](documentation/models/DeleteDeviceFromInventoryRequest.md) | | +| [DeleteDeviceFromInventoryResponse](documentation/models/DeleteDeviceFromInventoryResponse.md) | | +| [RemoveLineRequest](documentation/models/RemoveLineRequest.md) | | +| [RemoveLineResponse](documentation/models/RemoveLineResponse.md) | | +| [BulkAddDevicesRequest](documentation/models/BulkAddDevicesRequest.md) | | +| [BulkAddDevicesResponse](documentation/models/BulkAddDevicesResponse.md) | | +| [SwapDeviceRequest](documentation/models/SwapDeviceRequest.md) | Swap device request | +| [DeviceResource](documentation/models/DeviceResource.md) | | +| [AccountDeviceUpdate](documentation/models/AccountDeviceUpdate.md) | | +| [SipInfoResource](documentation/models/SipInfoResource.md) | | +| [GetExtensionDevicesResponse](documentation/models/GetExtensionDevicesResponse.md) | | +| [LinePooling](documentation/models/LinePooling.md) | | +| [DeviceFeatureEnum](documentation/models/DeviceFeatureEnum.md) | Device feature | +| [ListExtensionDevicesType](documentation/models/ListExtensionDevicesType.md) | | +| [PhoneLineTypeEnum](documentation/models/PhoneLineTypeEnum.md) | The type of phone line | +| [AccountPhoneNumberList](documentation/models/AccountPhoneNumberList.md) | | +| [PhoneNumberType](documentation/models/PhoneNumberType.md) | Type of phone number | +| [PhoneNumberUsageType](documentation/models/PhoneNumberUsageType.md) | Usage type of phone number | +| [PhoneNumberStatus](documentation/models/PhoneNumberStatus.md) | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral | +| [PhoneNumberTollType](documentation/models/PhoneNumberTollType.md) | Indicates if a number is toll or toll-free | +| [ExtensionStatus](documentation/models/ExtensionStatus.md) | Extension status | +| [DeletePhoneNumbersRequest](documentation/models/DeletePhoneNumbersRequest.md) | | +| [DeletePhoneNumbersResponse](documentation/models/DeletePhoneNumbersResponse.md) | | +| [AssignPhoneNumberRequest](documentation/models/AssignPhoneNumberRequest.md) | | +| [AccountPhoneNumberInfo](documentation/models/AccountPhoneNumberInfo.md) | | +| [ReplacePhoneNumberRequest](documentation/models/ReplacePhoneNumberRequest.md) | | +| [AddPhoneNumbersRequest](documentation/models/AddPhoneNumbersRequest.md) | | +| [AddPhoneNumbersResponse](documentation/models/AddPhoneNumbersResponse.md) | | +| [AddPhoneNumbersTask](documentation/models/AddPhoneNumbersTask.md) | | +| [GetExtensionPhoneNumbersResponse](documentation/models/GetExtensionPhoneNumbersResponse.md) | | +| [ListExtensionPhoneNumbersStatus](documentation/models/ListExtensionPhoneNumbersStatus.md) | | +| [ListExtensionPhoneNumbersUsageType](documentation/models/ListExtensionPhoneNumbersUsageType.md) | | +| [AccountPhoneNumbers](documentation/models/AccountPhoneNumbers.md) | | +| [ListAccountPhoneNumbersUsageType](documentation/models/ListAccountPhoneNumbersUsageType.md) | | +| [PlatformPaymentType](documentation/models/PlatformPaymentType.md) | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system | +| [ListAccountPhoneNumbersStatus](documentation/models/ListAccountPhoneNumbersStatus.md) | | +| [CompanyPhoneNumberInfo](documentation/models/CompanyPhoneNumberInfo.md) | | +| [ParsePhoneNumberRequest](documentation/models/ParsePhoneNumberRequest.md) | | +| [ParsePhoneNumberResponse](documentation/models/ParsePhoneNumberResponse.md) | | +| [CompanyBusinessHours](documentation/models/CompanyBusinessHours.md) | | +| [CompanyBusinessHoursUpdateRequest](documentation/models/CompanyBusinessHoursUpdateRequest.md) | | +| [GetUserBusinessHoursResponse](documentation/models/GetUserBusinessHoursResponse.md) | | +| [UserBusinessHoursUpdateRequest](documentation/models/UserBusinessHoursUpdateRequest.md) | | +| [UserBusinessHoursUpdateResponse](documentation/models/UserBusinessHoursUpdateResponse.md) | | +| [CustomFieldList](documentation/models/CustomFieldList.md) | | +| [CustomFieldCreateRequest](documentation/models/CustomFieldCreateRequest.md) | | +| [CustomFieldModel](documentation/models/CustomFieldModel.md) | | +| [CustomFieldUpdateRequest](documentation/models/CustomFieldUpdateRequest.md) | | +| [CallRecordingSettingsResource](documentation/models/CallRecordingSettingsResource.md) | | +| [CallRecordingCustomGreetings](documentation/models/CallRecordingCustomGreetings.md) | Returns data on call recording custom greetings. | +| [ListCallRecordingCustomGreetingsType](documentation/models/ListCallRecordingCustomGreetingsType.md) | | +| [BulkAccountCallRecordingsResource](documentation/models/BulkAccountCallRecordingsResource.md) | | +| [CallRecordingExtensions](documentation/models/CallRecordingExtensions.md) | | +| [MakeCallOutRequest](documentation/models/MakeCallOutRequest.md) | | +| [CallSession](documentation/models/CallSession.md) | | +| [CallSessionObject](documentation/models/CallSessionObject.md) | Call session information | +| [AddPartyRequest](documentation/models/AddPartyRequest.md) | | +| [CallParty](documentation/models/CallParty.md) | Information on a party of a call session | +| [PartyUpdateRequest](documentation/models/PartyUpdateRequest.md) | | +| [CallPartyFlip](documentation/models/CallPartyFlip.md) | | +| [CallPartyReply](documentation/models/CallPartyReply.md) | | +| [ReplyParty](documentation/models/ReplyParty.md) | | +| [BridgeTargetRequest](documentation/models/BridgeTargetRequest.md) | | +| [IgnoreRequestBody](documentation/models/IgnoreRequestBody.md) | | +| [PartySuperviseRequest](documentation/models/PartySuperviseRequest.md) | | +| [PartySuperviseResponse](documentation/models/PartySuperviseResponse.md) | | +| [CallRecordingUpdate](documentation/models/CallRecordingUpdate.md) | | +| [CallRecording](documentation/models/CallRecording.md) | | +| [AnswerTarget](documentation/models/AnswerTarget.md) | | +| [TransferTarget](documentation/models/TransferTarget.md) | Identifier of a call party the call will be transferred to. Only **one of** these parameters: `phoneNumber`, `voicemail`, `extensionNumber` or `parkOrbit` must be specified, otherwise an error is returned. | +| [HoldCallPartyRequest](documentation/models/HoldCallPartyRequest.md) | | +| [PickupTarget](documentation/models/PickupTarget.md) | | +| [ForwardTarget](documentation/models/ForwardTarget.md) | Identifier of a call party the call will be forwarded to. Only **one of** these parameters: `phoneNumber`, `voicemail` or `extensionNumber` must be specified, otherwise an error is returned. | +| [ForwardCallPartyResponse](documentation/models/ForwardCallPartyResponse.md) | Information on a party of a call session | +| [SuperviseCallSessionRequest](documentation/models/SuperviseCallSessionRequest.md) | | +| [SuperviseCallSessionResponse](documentation/models/SuperviseCallSessionResponse.md) | | +| [MessageTemplatesListResponse](documentation/models/MessageTemplatesListResponse.md) | | +| [MessageTemplateRequest](documentation/models/MessageTemplateRequest.md) | | +| [MessageTemplateResponse](documentation/models/MessageTemplateResponse.md) | | +| [VisibilityType](documentation/models/VisibilityType.md) | Specifies if a template is available on a user (Personal) or a company (Company) level | +| [CallLogResponse](documentation/models/CallLogResponse.md) | | +| [CallDirectionEnum](documentation/models/CallDirectionEnum.md) | The direction of a call | +| [CallTypeEnum](documentation/models/CallTypeEnum.md) | The type of call | +| [ReadCompanyCallLogView](documentation/models/ReadCompanyCallLogView.md) | | +| [RecordingType](documentation/models/RecordingType.md) | | +| [CallLogRecord](documentation/models/CallLogRecord.md) | | +| [CallLogSyncResponse](documentation/models/CallLogSyncResponse.md) | | +| [SyncAccountCallLogSyncType](documentation/models/SyncAccountCallLogSyncType.md) | Type of call log synchronization request: full or incremental sync | +| [StatusGroup](documentation/models/StatusGroup.md) | | +| [CallTransportEnum](documentation/models/CallTransportEnum.md) | The type of call transport. 'PSTN' indicates that a call leg was initiated from the PSTN network provider; 'VoIP' - from an RC phone. | +| [ConferenceType](documentation/models/ConferenceType.md) | | +| [ExtensionBulkUpdateRequest](documentation/models/ExtensionBulkUpdateRequest.md) | List of extensions to be updated | +| [ExtensionBulkUpdateTaskResource](documentation/models/ExtensionBulkUpdateTaskResource.md) | Information on a task for updating multiple extensions | +| [UserTemplates](documentation/models/UserTemplates.md) | | +| [ListUserTemplatesType](documentation/models/ListUserTemplatesType.md) | | +| [TemplateInfo](documentation/models/TemplateInfo.md) | Text message template information | +| [GetExtensionListResponse](documentation/models/GetExtensionListResponse.md) | | +| [ListExtensionsStatus](documentation/models/ListExtensionsStatus.md) | | +| [ListExtensionsType](documentation/models/ListExtensionsType.md) | | +| [ExtensionCreationRequest](documentation/models/ExtensionCreationRequest.md) | | +| [ExtensionCreationResponse](documentation/models/ExtensionCreationResponse.md) | | +| [MessageStatusesResponse](documentation/models/MessageStatusesResponse.md) | The messages status object with details of each status | +| [SmsDirectionEnum](documentation/models/SmsDirectionEnum.md) | Direction of the SMS message | +| [MessageListResponse](documentation/models/MessageListResponse.md) | List of messages retrieved for an account and other filter criteria such as `batchId` and `fromPhoneNumber` specified in the request | +| [ListA2PsmsView](documentation/models/ListA2PsmsView.md) | | +| [MessageDetailsResponse](documentation/models/MessageDetailsResponse.md) | Complete details of the message | +| [OptOutListResponse](documentation/models/OptOutListResponse.md) | The list of opt outs | +| [ReadA2PsmsOptOutsStatus](documentation/models/ReadA2PsmsOptOutsStatus.md) | | +| [OptOutBulkAssignRequest](documentation/models/OptOutBulkAssignRequest.md) | Consists of `from` field and `optOuts` and `optIns` lists. Both `optOuts` and `optIns` can be empty but not simultaneously - at least one of the lists must be entered." | +| [OptOutBulkAssignResponse](documentation/models/OptOutBulkAssignResponse.md) | The results of adding opt-outs and opt-ins | +| [BatchListResponse](documentation/models/BatchListResponse.md) | The list of batches retrieved for an account and other filter criteria such as fromPhoneNumber, date specified in the request. | +| [ListA2PBatchesStatus](documentation/models/ListA2PBatchesStatus.md) | | +| [MessageBatchCreateRequest](documentation/models/MessageBatchCreateRequest.md) | Batch of A2P SMS messages. This object provides specification to send message(s) to many recipients. It contains top-level attributes, such as `text` which apply to all `messages`. In addition to that, it is possible to override this attribute for each message. This way a single API call may be used to send individual messages to many recipients. | +| [MessageBatchResponse](documentation/models/MessageBatchResponse.md) | Batch of A2P SMS messages. This object provides a specification to send message(s) to many recipients. It contains top-level attributes which apply to all messages. In addition to that, it is possible to override this attribute for each message. This way a single API call may be used to send individual messages to many recipients | +| [CompanyAnsweringRuleList](documentation/models/CompanyAnsweringRuleList.md) | | +| [CompanyAnsweringRuleRequest](documentation/models/CompanyAnsweringRuleRequest.md) | | +| [CompanyAnsweringRuleInfo](documentation/models/CompanyAnsweringRuleInfo.md) | | +| [CompanyAnsweringRuleUpdate](documentation/models/CompanyAnsweringRuleUpdate.md) | | +| [ForwardAllCompanyCallsInfo](documentation/models/ForwardAllCompanyCallsInfo.md) | | +| [ForwardAllCompanyCallsRequest](documentation/models/ForwardAllCompanyCallsRequest.md) | | +| [UserAnsweringRuleList](documentation/models/UserAnsweringRuleList.md) | | +| [ListAnsweringRulesType](documentation/models/ListAnsweringRulesType.md) | | +| [ListAnsweringRulesView](documentation/models/ListAnsweringRulesView.md) | | +| [CreateAnsweringRuleRequest](documentation/models/CreateAnsweringRuleRequest.md) | | +| [CustomAnsweringRuleInfo](documentation/models/CustomAnsweringRuleInfo.md) | | +| [AnsweringRuleInfo](documentation/models/AnsweringRuleInfo.md) | | +| [UpdateAnsweringRuleRequest](documentation/models/UpdateAnsweringRuleRequest.md) | | +| [AddressBookBulkUploadRequest](documentation/models/AddressBookBulkUploadRequest.md) | | +| [AddressBookBulkUploadResponse](documentation/models/AddressBookBulkUploadResponse.md) | Information on a task for adding multiple contacts to multiple extensions | +| [FavoriteContactList](documentation/models/FavoriteContactList.md) | | +| [FavoriteCollection](documentation/models/FavoriteCollection.md) | | +| [ContactList](documentation/models/ContactList.md) | | +| [SortBy](documentation/models/SortBy.md) | | +| [PersonalContactRequest](documentation/models/PersonalContactRequest.md) | | +| [PersonalContactResource](documentation/models/PersonalContactResource.md) | | +| [AddressBookSync](documentation/models/AddressBookSync.md) | | +| [SyncAddressBookSyncType](documentation/models/SyncAddressBookSyncType.md) | | +| [CallQueues](documentation/models/CallQueues.md) | | +| [CallQueueDetails](documentation/models/CallQueueDetails.md) | | +| [CallQueueBulkAssignResource](documentation/models/CallQueueBulkAssignResource.md) | | +| [CallQueueMembers](documentation/models/CallQueueMembers.md) | | +| [DepartmentMemberList](documentation/models/DepartmentMemberList.md) | Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [DepartmentBulkAssignResource](documentation/models/DepartmentBulkAssignResource.md) | Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [UserCallQueues](documentation/models/UserCallQueues.md) | | +| [CallQueueOverflowSettings](documentation/models/CallQueueOverflowSettings.md) | | +| [CallQueueOverflowSettingsRequestResource](documentation/models/CallQueueOverflowSettingsRequestResource.md) | | +| [CallQueuePresence](documentation/models/CallQueuePresence.md) | | +| [CallQueueUpdatePresence](documentation/models/CallQueueUpdatePresence.md) | | +| [AccountPresenceInfo](documentation/models/AccountPresenceInfo.md) | | +| [ExtensionCallQueuePresenceList](documentation/models/ExtensionCallQueuePresenceList.md) | | +| [ExtensionCallQueueUpdatePresenceList](documentation/models/ExtensionCallQueueUpdatePresenceList.md) | | +| [GetPresenceInfo](documentation/models/GetPresenceInfo.md) | | +| [PresenceInfoRequest](documentation/models/PresenceInfoRequest.md) | | +| [PresenceInfoResponse](documentation/models/PresenceInfoResponse.md) | | +| [UnifiedPresence](documentation/models/UnifiedPresence.md) | | +| [UnifiedPresenceListEntry](documentation/models/UnifiedPresenceListEntry.md) | | +| [UpdateUnifiedPresence](documentation/models/UpdateUnifiedPresence.md) | | +| [EmergencyLocationsResource](documentation/models/EmergencyLocationsResource.md) | | +| [EmergencyAddressStatus](documentation/models/EmergencyAddressStatus.md) | | +| [EmergencyLocationUsageStatus](documentation/models/EmergencyLocationUsageStatus.md) | | +| [ListEmergencyLocationsOrderBy](documentation/models/ListEmergencyLocationsOrderBy.md) | | +| [EmergencyLocationRequestResource](documentation/models/EmergencyLocationRequestResource.md) | | +| [EmergencyLocationResponseResource](documentation/models/EmergencyLocationResponseResource.md) | | +| [CommonEmergencyLocationResource](documentation/models/CommonEmergencyLocationResource.md) | Company emergency response location details | +| [GetLocationDeletionMultiResponse](documentation/models/GetLocationDeletionMultiResponse.md) | | +| [GetExtensionEmergencyLocationsOrderBy](documentation/models/GetExtensionEmergencyLocationsOrderBy.md) | | +| [CreateUserEmergencyLocationRequest](documentation/models/CreateUserEmergencyLocationRequest.md) | | +| [AutomaticLocationUpdatesTaskInfo](documentation/models/AutomaticLocationUpdatesTaskInfo.md) | | +| [AutomaticLocationUpdatesUserList](documentation/models/AutomaticLocationUpdatesUserList.md) | | +| [ListAutomaticLocationUpdatesUsersType](documentation/models/ListAutomaticLocationUpdatesUsersType.md) | | +| [EmergencyAddressAutoUpdateUsersBulkAssignResource](documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md) | | +| [CreateMultipleWirelessPointsRequest](documentation/models/CreateMultipleWirelessPointsRequest.md) | | +| [CreateMultipleWirelessPointsResponse](documentation/models/CreateMultipleWirelessPointsResponse.md) | | +| [NetworksList](documentation/models/NetworksList.md) | | +| [CreateNetworkRequest](documentation/models/CreateNetworkRequest.md) | | +| [NetworkInfo](documentation/models/NetworkInfo.md) | | +| [UpdateNetworkRequest](documentation/models/UpdateNetworkRequest.md) | | +| [ValidateMultipleSwitchesRequest](documentation/models/ValidateMultipleSwitchesRequest.md) | | +| [ValidateMultipleSwitchesResponse](documentation/models/ValidateMultipleSwitchesResponse.md) | | +| [SwitchesList](documentation/models/SwitchesList.md) | | +| [CreateSwitchInfo](documentation/models/CreateSwitchInfo.md) | | +| [SwitchInfo](documentation/models/SwitchInfo.md) | | +| [UpdateSwitchInfo](documentation/models/UpdateSwitchInfo.md) | | +| [ValidateMultipleWirelessPointsRequest](documentation/models/ValidateMultipleWirelessPointsRequest.md) | | +| [ValidateMultipleWirelessPointsResponse](documentation/models/ValidateMultipleWirelessPointsResponse.md) | | +| [WirelessPointsList](documentation/models/WirelessPointsList.md) | | +| [CreateWirelessPoint](documentation/models/CreateWirelessPoint.md) | | +| [WirelessPointInfo](documentation/models/WirelessPointInfo.md) | | +| [UpdateWirelessPoint](documentation/models/UpdateWirelessPoint.md) | | +| [ListDevicesAutomaticLocationUpdates](documentation/models/ListDevicesAutomaticLocationUpdates.md) | | +| [AssignMultipleDevicesAutomaticLocationUpdates](documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md) | | +| [CreateMultipleSwitchesRequest](documentation/models/CreateMultipleSwitchesRequest.md) | | +| [CreateMultipleSwitchesResponse](documentation/models/CreateMultipleSwitchesResponse.md) | Information on a task for multiple switches creation | +| [UpdateMultipleWirelessPointsRequest](documentation/models/UpdateMultipleWirelessPointsRequest.md) | | +| [UpdateMultipleWirelessPointsResponse](documentation/models/UpdateMultipleWirelessPointsResponse.md) | | +| [UpdateMultipleSwitchesRequest](documentation/models/UpdateMultipleSwitchesRequest.md) | | +| [UpdateMultipleSwitchesResponse](documentation/models/UpdateMultipleSwitchesResponse.md) | | +| [AccountLockedSettingResponse](documentation/models/AccountLockedSettingResponse.md) | | +| [MeetingResponseResource](documentation/models/MeetingResponseResource.md) | | +| [ListMeetingRecordingsResponse](documentation/models/ListMeetingRecordingsResponse.md) | | +| [CreateUserMeetingProfileImageRequest](documentation/models/CreateUserMeetingProfileImageRequest.md) | | +| [MeetingsResource](documentation/models/MeetingsResource.md) | | +| [MeetingRequestResource](documentation/models/MeetingRequestResource.md) | | +| [MeetingUserSettingsResponse](documentation/models/MeetingUserSettingsResponse.md) | | +| [PublicMeetingInvitationResponse](documentation/models/PublicMeetingInvitationResponse.md) | | +| [MeetingServiceInfoResource](documentation/models/MeetingServiceInfoResource.md) | | +| [MeetingServiceInfoRequest](documentation/models/MeetingServiceInfoRequest.md) | | +| [AssistedUsersResource](documentation/models/AssistedUsersResource.md) | | +| [AssistantsResource](documentation/models/AssistantsResource.md) | | +| [ExtensionWithRolesCollectionResource](documentation/models/ExtensionWithRolesCollectionResource.md) | | +| [RolesCollectionResource](documentation/models/RolesCollectionResource.md) | | +| [RoleResource](documentation/models/RoleResource.md) | | +| [DefaultUserRole](documentation/models/DefaultUserRole.md) | | +| [DefaultUserRoleRequest](documentation/models/DefaultUserRoleRequest.md) | | +| [BulkRoleAssignResource](documentation/models/BulkRoleAssignResource.md) | | +| [AssignedRolesResource](documentation/models/AssignedRolesResource.md) | | +| [CallMonitoringGroups](documentation/models/CallMonitoringGroups.md) | | +| [CreateCallMonitoringGroupRequest](documentation/models/CreateCallMonitoringGroupRequest.md) | | +| [CallMonitoringGroup](documentation/models/CallMonitoringGroup.md) | | +| [CallMonitoringBulkAssign](documentation/models/CallMonitoringBulkAssign.md) | | +| [CallMonitoringGroupMemberList](documentation/models/CallMonitoringGroupMemberList.md) | | +| [AccountHistorySearchPublicRequest](documentation/models/AccountHistorySearchPublicRequest.md) | | +| [AccountHistorySearchPublicResponse](documentation/models/AccountHistorySearchPublicResponse.md) | | +| [CreateMessageStoreReportRequest](documentation/models/CreateMessageStoreReportRequest.md) | | +| [MessageStoreReport](documentation/models/MessageStoreReport.md) | | +| [MessageStoreReportArchive](documentation/models/MessageStoreReportArchive.md) | | +| [DirectoryResource](documentation/models/DirectoryResource.md) | | +| [ListDirectoryEntriesType](documentation/models/ListDirectoryEntriesType.md) | | +| [TypeGroup](documentation/models/TypeGroup.md) | | +| [ContactResource](documentation/models/ContactResource.md) | | +| [SearchDirectoryEntriesRequest](documentation/models/SearchDirectoryEntriesRequest.md) | | +| [SearchDirectoryExtensionType](documentation/models/SearchDirectoryExtensionType.md) | Type of extension to filter the contacts | +| [FederationResource](documentation/models/FederationResource.md) | | +| [FederationTypes](documentation/models/FederationTypes.md) | Federation types for search | +| [PagingOnlyGroupUsers](documentation/models/PagingOnlyGroupUsers.md) | | +| [EditPagingGroupRequest](documentation/models/EditPagingGroupRequest.md) | | +| [PagingOnlyGroupDevices](documentation/models/PagingOnlyGroupDevices.md) | | +| [SitesList](documentation/models/SitesList.md) | | +| [CreateSiteRequest](documentation/models/CreateSiteRequest.md) | | +| [SiteInfo](documentation/models/SiteInfo.md) | | +| [SiteUpdateRequest](documentation/models/SiteUpdateRequest.md) | | +| [SiteMembersBulkUpdate](documentation/models/SiteMembersBulkUpdate.md) | | +| [SiteMembersList](documentation/models/SiteMembersList.md) | | +| [SiteIvrSettings](documentation/models/SiteIvrSettings.md) | | +| [SiteIvrSettingsUpdate](documentation/models/SiteIvrSettingsUpdate.md) | | +| [UserVideoConfiguration](documentation/models/UserVideoConfiguration.md) | | +| [CreateInternalTextMessageRequest](documentation/models/CreateInternalTextMessageRequest.md) | | +| [GetInternalTextMessageInfoResponse](documentation/models/GetInternalTextMessageInfoResponse.md) | | +| [AuthProfileResource](documentation/models/AuthProfileResource.md) | | +| [AuthProfileCheckResource](documentation/models/AuthProfileCheckResource.md) | | +| [PermissionCollectionResource](documentation/models/PermissionCollectionResource.md) | | +| [PermissionResource](documentation/models/PermissionResource.md) | | +| [PermissionCategoryCollectionResource](documentation/models/PermissionCategoryCollectionResource.md) | | +| [PermissionCategoryResource](documentation/models/PermissionCategoryResource.md) | | +| [GetExtensionForwardingNumberListResponse](documentation/models/GetExtensionForwardingNumberListResponse.md) | | +| [CreateForwardingNumberRequest](documentation/models/CreateForwardingNumberRequest.md) | | +| [ForwardingNumberInfo](documentation/models/ForwardingNumberInfo.md) | | +| [DeleteForwardingNumbersRequest](documentation/models/DeleteForwardingNumbersRequest.md) | | +| [ForwardingNumberResource](documentation/models/ForwardingNumberResource.md) | | +| [UpdateForwardingNumberRequest](documentation/models/UpdateForwardingNumberRequest.md) | | +| [CreateFaxMessageRequest](documentation/models/CreateFaxMessageRequest.md) | | +| [FaxResponse](documentation/models/FaxResponse.md) | | +| [ListFaxCoverPagesResponse](documentation/models/ListFaxCoverPagesResponse.md) | | +| [MakeRingOutRequest](documentation/models/MakeRingOutRequest.md) | | +| [GetRingOutStatusResponse](documentation/models/GetRingOutStatusResponse.md) | | +| [BusinessSiteCollectionResource](documentation/models/BusinessSiteCollectionResource.md) | | +| [BusinessSiteCollectionRequest](documentation/models/BusinessSiteCollectionRequest.md) | | +| [CreateSmsMessage](documentation/models/CreateSmsMessage.md) | | +| [GetSmsMessageInfoResponse](documentation/models/GetSmsMessageInfoResponse.md) | | +| [CreateMmsMessage](documentation/models/CreateMmsMessage.md) | | +| [FeatureList](documentation/models/FeatureList.md) | | +| [CallerBlockingSettings](documentation/models/CallerBlockingSettings.md) | Returns the lists of blocked and allowed phone numbers | +| [CallerBlockingSettingsUpdate](documentation/models/CallerBlockingSettingsUpdate.md) | Returns the lists of blocked and allowed phone numbers | +| [BlockedAllowedPhoneNumbersList](documentation/models/BlockedAllowedPhoneNumbersList.md) | List of blocked or allowed phone numbers | +| [BlockedNumberStatusEnum](documentation/models/BlockedNumberStatusEnum.md) | Status of a phone number | +| [AddBlockedAllowedPhoneNumber](documentation/models/AddBlockedAllowedPhoneNumber.md) | Updates either blocked or allowed phone number list with a new phone number. | +| [BlockedAllowedPhoneNumberInfo](documentation/models/BlockedAllowedPhoneNumberInfo.md) | Information on a blocked/allowed phone number | +| [CreateSubscriptionRequest](documentation/models/CreateSubscriptionRequest.md) | | +| [GetStateListResponse](documentation/models/GetStateListResponse.md) | | +| [GetStateInfoResponse](documentation/models/GetStateInfoResponse.md) | | +| [GetLocationListResponse](documentation/models/GetLocationListResponse.md) | | +| [ListLocationsOrderBy](documentation/models/ListLocationsOrderBy.md) | | +| [LanguageList](documentation/models/LanguageList.md) | | +| [LanguageInfo](documentation/models/LanguageInfo.md) | User interface language data | +| [GetTimezoneListResponse](documentation/models/GetTimezoneListResponse.md) | | +| [GetTimezoneInfoResponse](documentation/models/GetTimezoneInfoResponse.md) | | +| [CountryInfoDictionaryModel](documentation/models/CountryInfoDictionaryModel.md) | | +| [CreateSipRegistrationRequest](documentation/models/CreateSipRegistrationRequest.md) | | +| [CreateSipRegistrationResponse](documentation/models/CreateSipRegistrationResponse.md) | | +| [SummaryInput](documentation/models/SummaryInput.md) | | +| [CaiAsyncApiResponse](documentation/models/CaiAsyncApiResponse.md) | | +| [PunctuateInput](documentation/models/PunctuateInput.md) | | +| [ListEnrolledSpeakers](documentation/models/ListEnrolledSpeakers.md) | | +| [EnrollmentInput](documentation/models/EnrollmentInput.md) | | +| [EnrollmentStatus](documentation/models/EnrollmentStatus.md) | | +| [EnrollmentPatchInput](documentation/models/EnrollmentPatchInput.md) | | +| [AsrInput](documentation/models/AsrInput.md) | | +| [DiarizeInput](documentation/models/DiarizeInput.md) | | +| [IdentifyInput](documentation/models/IdentifyInput.md) | | +| [InteractionInput](documentation/models/InteractionInput.md) | | +| [ContentList](documentation/models/ContentList.md) | | +| [ContentStatus](documentation/models/ContentStatus.md) | Content status. | +| [SocMsgCreationTimeOrder](documentation/models/SocMsgCreationTimeOrder.md) | Ordering by creationTime is descending by default. | +| [CreateContentRequest](documentation/models/CreateContentRequest.md) | | +| [ContentModel](documentation/models/ContentModel.md) | | +| [IdentitiesList](documentation/models/IdentitiesList.md) | | +| [IdentityModel](documentation/models/IdentityModel.md) | | +| [ScimSchemaSearchResponse](documentation/models/ScimSchemaSearchResponse.md) | | +| [ScimSchemaResponse](documentation/models/ScimSchemaResponse.md) | | +| [ScimUserSearchResponse](documentation/models/ScimUserSearchResponse.md) | | +| [ScimUser](documentation/models/ScimUser.md) | | +| [ScimUserResponse](documentation/models/ScimUserResponse.md) | | +| [ScimSearchRequest](documentation/models/ScimSearchRequest.md) | | +| [ScimUserPatch](documentation/models/ScimUserPatch.md) | | +| [ScimProviderConfig](documentation/models/ScimProviderConfig.md) | | +| [ScimResourceTypeSearchResponse](documentation/models/ScimResourceTypeSearchResponse.md) | | +| [ScimResourceTypeResponse](documentation/models/ScimResourceTypeResponse.md) | | +| [AggregationRequest](documentation/models/AggregationRequest.md) | | +| [AggregationResponse](documentation/models/AggregationResponse.md) | | +| [TimelineRequest](documentation/models/TimelineRequest.md) | | +| [TimelineResponse](documentation/models/TimelineResponse.md) | | +| [Interval](documentation/models/Interval.md) | | +| [TmTaskInfo](documentation/models/TmTaskInfo.md) | | +| [TmUpdateTaskRequest](documentation/models/TmUpdateTaskRequest.md) | | +| [TmTaskList](documentation/models/TmTaskList.md) | | +| [TmCompleteTaskRequest](documentation/models/TmCompleteTaskRequest.md) | | +| [ListChatTasksNewStatus](documentation/models/ListChatTasksNewStatus.md) | | +| [AssignmentStatus](documentation/models/AssignmentStatus.md) | | +| [AssigneeStatus](documentation/models/AssigneeStatus.md) | | +| [TmCreateTaskRequest](documentation/models/TmCreateTaskRequest.md) | | +| [TmEventList](documentation/models/TmEventList.md) | | +| [TmCreateEventRequest](documentation/models/TmCreateEventRequest.md) | | +| [TmEventInfo](documentation/models/TmEventInfo.md) | | +| [TmChatListWithoutNavigation](documentation/models/TmChatListWithoutNavigation.md) | | +| [ListRecentChatsNewType](documentation/models/ListRecentChatsNewType.md) | | +| [TmChatList](documentation/models/TmChatList.md) | | +| [ListGlipChatsNewType](documentation/models/ListGlipChatsNewType.md) | | +| [TmChatInfo](documentation/models/TmChatInfo.md) | | +| [CreateGlipFileNewRequest](documentation/models/CreateGlipFileNewRequest.md) | | +| [TmAddFileRequest](documentation/models/TmAddFileRequest.md) | | +| [TmPostsList](documentation/models/TmPostsList.md) | | +| [TmCreatePostRequest](documentation/models/TmCreatePostRequest.md) | Post data. At least one attribute should be provided (text or attachments) | +| [TmPostInfo](documentation/models/TmPostInfo.md) | | +| [TmUpdatePostRequest](documentation/models/TmUpdatePostRequest.md) | | +| [AdaptiveCardRequest](documentation/models/AdaptiveCardRequest.md) | | +| [AdaptiveCardShortInfo](documentation/models/AdaptiveCardShortInfo.md) | | +| [AdaptiveCardInfo](documentation/models/AdaptiveCardInfo.md) | | +| [TmNoteList](documentation/models/TmNoteList.md) | | +| [ListChatNotesNewStatus](documentation/models/ListChatNotesNewStatus.md) | | +| [TmCreateNoteRequest](documentation/models/TmCreateNoteRequest.md) | | +| [TmNoteInfo](documentation/models/TmNoteInfo.md) | | +| [TmNoteWithBodyInfo](documentation/models/TmNoteWithBodyInfo.md) | | +| [TmWebhookList](documentation/models/TmWebhookList.md) | | +| [TmWebhookInfo](documentation/models/TmWebhookInfo.md) | | +| [TmCompanyInfo](documentation/models/TmCompanyInfo.md) | | +| [TmPersonInfo](documentation/models/TmPersonInfo.md) | | +| [TmConversationList](documentation/models/TmConversationList.md) | | +| [CreateConversationRequest](documentation/models/CreateConversationRequest.md) | | +| [TmConversationInfo](documentation/models/TmConversationInfo.md) | | +| [DataExportTaskList](documentation/models/DataExportTaskList.md) | | +| [ListDataExportTasksNewStatus](documentation/models/ListDataExportTasksNewStatus.md) | | +| [CreateDataExportTaskRequest](documentation/models/CreateDataExportTaskRequest.md) | | +| [DataExportTask](documentation/models/DataExportTask.md) | | +| [EveryoneTeamInfo](documentation/models/EveryoneTeamInfo.md) | | +| [UpdateEveryoneTeamRequest](documentation/models/UpdateEveryoneTeamRequest.md) | | +| [TmTeamList](documentation/models/TmTeamList.md) | | +| [TmCreateTeamRequest](documentation/models/TmCreateTeamRequest.md) | | +| [TmTeamInfo](documentation/models/TmTeamInfo.md) | | +| [TmUpdateTeamRequest](documentation/models/TmUpdateTeamRequest.md) | | +| [TmRemoveTeamMembersRequest](documentation/models/TmRemoveTeamMembersRequest.md) | | +| [TmAddTeamMembersRequest](documentation/models/TmAddTeamMembersRequest.md) | | +| [DisabledFilterInfo](documentation/models/DisabledFilterInfo.md) | | +| [SubscriptionInfoStatus](documentation/models/SubscriptionInfoStatus.md) | Subscription status | +| [NotificationDeliveryMode](documentation/models/NotificationDeliveryMode.md) | Notification delivery transport information | +| [BlacklistedData](documentation/models/BlacklistedData.md) | Returned if a WebHook subscription is blacklisted | +| [WebhookDeliveryMode](documentation/models/WebhookDeliveryMode.md) | | +| [MobileDeliveryMode](documentation/models/MobileDeliveryMode.md) | | +| [PubNubDeliveryMode](documentation/models/PubNubDeliveryMode.md) | | +| [WebSocketDeliveryMode](documentation/models/WebSocketDeliveryMode.md) | | +| [WebhookDeliveryModeTransportType](documentation/models/WebhookDeliveryModeTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [WebhookDeliveryModeEncryption](documentation/models/WebhookDeliveryModeEncryption.md) | Specifies if notification messages will be encrypted or not. | +| [MobileDeliveryModeTransportType](documentation/models/MobileDeliveryModeTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [MobileDeliveryModeEncryption](documentation/models/MobileDeliveryModeEncryption.md) | Specifies if notification messages will be encrypted or not. | +| [PubNubDeliveryModeTransportType](documentation/models/PubNubDeliveryModeTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [EncryptionAlgorithm](documentation/models/EncryptionAlgorithm.md) | (Only for a "PubNub" transport, returned only if `encryption` is `true`) Encryption algorithm used | +| [WebSocketDeliveryModeTransportType](documentation/models/WebSocketDeliveryModeTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [WebhookDeliveryModeRequest](documentation/models/WebhookDeliveryModeRequest.md) | | +| [WebhookDeliveryModeRequestTransportType](documentation/models/WebhookDeliveryModeRequestTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [WebinarSettingsModel](documentation/models/WebinarSettingsModel.md) | Various settings which define behavior of this Webinar's Sessions | +| [HostModel](documentation/models/HostModel.md) | | +| [WebinarSettingsModelPanelistAuthentication](documentation/models/WebinarSettingsModelPanelistAuthentication.md) | Indicates if Panelists have to be authenticated users | +| [WebinarSettingsModelAttendeeAuthentication](documentation/models/WebinarSettingsModelAttendeeAuthentication.md) | Indicates if attendees have to be authenticated users | +| [WebinarSettingsModelArtifactsAccessAuthentication](documentation/models/WebinarSettingsModelArtifactsAccessAuthentication.md) | Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. | +| [RcwDomainUserModel](documentation/models/RcwDomainUserModel.md) | | +| [Domain](documentation/models/Domain.md) | Identity domain | +| [SessionRuntimeStatusModel](documentation/models/SessionRuntimeStatusModel.md) | Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active | +| [RecordingExtendedModel](documentation/models/RecordingExtendedModel.md) | | +| [SessionLivestreamMinimalModel](documentation/models/SessionLivestreamMinimalModel.md) | | +| [SessionLivestreamStatusModel](documentation/models/SessionLivestreamStatusModel.md) | Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS | +| [ParticipantExtendedModel](documentation/models/ParticipantExtendedModel.md) | | +| [RcwPagingModel](documentation/models/RcwPagingModel.md) | | +| [ParticipantExtendedModelType](documentation/models/ParticipantExtendedModelType.md) | The type of the participant specified in invite or determined at join time | +| [ParticipantReducedModelType](documentation/models/ParticipantReducedModelType.md) | The type of the participant specified in invite or determined at join time | +| [InviteeModelType](documentation/models/InviteeModelType.md) | The type of the participant specified in invite or determined at join time | +| [SessionGlobalResource](documentation/models/SessionGlobalResource.md) | | +| [WebinarRefModel](documentation/models/WebinarRefModel.md) | | +| [RecordingModel](documentation/models/RecordingModel.md) | | +| [RecordingAdminModel](documentation/models/RecordingAdminModel.md) | | +| [SessionRefAdminModel](documentation/models/SessionRefAdminModel.md) | | +| [RecordingItemModel](documentation/models/RecordingItemModel.md) | | +| [SessionRefModel](documentation/models/SessionRefModel.md) | | +| [DownloadContentType](documentation/models/DownloadContentType.md) | MIME type of the file to download. | +| [RegistrationStatus](documentation/models/RegistrationStatus.md) | Status of the registration | +| [Settings](documentation/models/Settings.md) | | +| [OnDemandDuration](documentation/models/OnDemandDuration.md) | Duration of on-demand webinar. The default value can only be used if the session is on demand. | +| [RcwPagingForwardModel](documentation/models/RcwPagingForwardModel.md) | | +| [RegAnswerModel](documentation/models/RegAnswerModel.md) | | +| [FixedAnswerModel](documentation/models/FixedAnswerModel.md) | | +| [VariableAnswerModel](documentation/models/VariableAnswerModel.md) | | +| [WcsWebinarSettingsModel](documentation/models/WcsWebinarSettingsModel.md) | Various settings which define behavior of this Webinar's Sessions | +| [WcsHostModel](documentation/models/WcsHostModel.md) | | +| [WcsWebinarSettingsModelPanelistAuthentication](documentation/models/WcsWebinarSettingsModelPanelistAuthentication.md) | Indicates if Panelists have to be authenticated users | +| [WcsWebinarSettingsModelAttendeeAuthentication](documentation/models/WcsWebinarSettingsModelAttendeeAuthentication.md) | Indicates if attendees have to be authenticated users | +| [WcsWebinarSettingsModelArtifactsAccessAuthentication](documentation/models/WcsWebinarSettingsModelArtifactsAccessAuthentication.md) | Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. | +| [RcwLinkedUserModel](documentation/models/RcwLinkedUserModel.md) | The internal IDs of RC-authenticated users. | +| [SessionGlobalListEntry](documentation/models/SessionGlobalListEntry.md) | | +| [WcsWebinarRefModel](documentation/models/WcsWebinarRefModel.md) | | +| [RcwInviteeTypeEnum](documentation/models/RcwInviteeTypeEnum.md) | The type of the webinar invitee | +| [AddInviteeRequest](documentation/models/AddInviteeRequest.md) | | +| [UpdatedInvitees](documentation/models/UpdatedInvitees.md) | | +| [RcwResourceIdModel](documentation/models/RcwResourceIdModel.md) | | +| [CreateCompanyGreetingRequestType_1](documentation/models/CreateCompanyGreetingRequestType1.md) | Type of greeting, specifying the case when the greeting is played. | +| [AnsweringRuleQueryRequest](documentation/models/AnsweringRuleQueryRequest.md) | | +| [CreateCompanyGreetingRequestType_2](documentation/models/CreateCompanyGreetingRequestType2.md) | Type of greeting, specifying the case when the greeting is played. | +| [CustomCompanyGreetingInfoType](documentation/models/CustomCompanyGreetingInfoType.md) | Type of company greeting | +| [CustomCompanyGreetingInfoContentType](documentation/models/CustomCompanyGreetingInfoContentType.md) | Content media type | +| [CustomGreetingAnsweringRuleInfo](documentation/models/CustomGreetingAnsweringRuleInfo.md) | Information on an answering rule that the greeting is applied to | +| [CustomCompanyGreetingLanguageInfo](documentation/models/CustomCompanyGreetingLanguageInfo.md) | Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording' | +| [CreateCustomUserGreetingRequestType_1](documentation/models/CreateCustomUserGreetingRequestType1.md) | Type of greeting, specifying the case when the greeting is played. | +| [CreateCustomUserGreetingRequestType_2](documentation/models/CreateCustomUserGreetingRequestType2.md) | Type of greeting, specifying the case when the greeting is played. | +| [CustomUserGreetingInfoType](documentation/models/CustomUserGreetingInfoType.md) | Type of custom user greeting | +| [CustomUserGreetingInfoContentType](documentation/models/CustomUserGreetingInfoContentType.md) | Content media type | +| [PageNavigationModel](documentation/models/PageNavigationModel.md) | Links to other pages of the current result set | +| [EnumeratedPagingModel](documentation/models/EnumeratedPagingModel.md) | | +| [DictionaryGreetingInfoUsageType](documentation/models/DictionaryGreetingInfoUsageType.md) | Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension. | +| [GreetingTypeEnum](documentation/models/GreetingTypeEnum.md) | Type of greeting, specifying the case when the greeting is played. | +| [DictionaryGreetingInfoCategory](documentation/models/DictionaryGreetingInfoCategory.md) | Category of a greeting, specifying data form. The category value 'None' specifies that greetings of a certain type ('Introductory', 'ConnectingAudio', etc.) are switched off for an extension = ['Music', 'Message', 'RingTones', 'None'] | +| [PageNavigationUri](documentation/models/PageNavigationUri.md) | | +| [BatchProvisionUsersRequestItem](documentation/models/BatchProvisionUsersRequestItem.md) | Describes request for user extension provisioning | +| [BatchProvisionUsersRequestItemStatus](documentation/models/BatchProvisionUsersRequestItemStatus.md) | Extension status. Only "Enabled" can be specified | +| [Contact](documentation/models/Contact.md) | | +| [CostCenter](documentation/models/CostCenter.md) | | +| [BatchProvisionUsersRequestItemRoles](documentation/models/BatchProvisionUsersRequestItemRoles.md) | | +| [BatchProvisionUsersRequestItemDevices](documentation/models/BatchProvisionUsersRequestItemDevices.md) | | +| [DeviceDefinition](documentation/models/DeviceDefinition.md) | | +| [DeviceDefinitionType](documentation/models/DeviceDefinitionType.md) | Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment | +| [Emergency_1_1](documentation/models/Emergency1_1.md) | | +| [Emergency_2_1](documentation/models/Emergency2_1.md) | | +| [PostalAddress](documentation/models/PostalAddress.md) | Postal address/location | +| [Emergency_2Location_1](documentation/models/Emergency2Location1.md) | | +| [PhoneNumberDefinitionTollType](documentation/models/PhoneNumberDefinitionTollType.md) | To use as selection criteria when a number to be selected from the number pool. | +| [PhoneNumberDefinitionPreferredAreaCode](documentation/models/PhoneNumberDefinitionPreferredAreaCode.md) | To use as selection hint when a "toll" number to be selected from the number pool. | +| [PhoneNumberDefinitionDirectNumberWithReservationId](documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md) | To be used for direct number assignment in case number pool is not supported | +| [PhoneNumberDefinitionNumberId](documentation/models/PhoneNumberDefinitionNumberId.md) | To be used to assign a number by ID | +| [BatchProvisionUsersResponseResults](documentation/models/BatchProvisionUsersResponseResults.md) | | +| [BatchProvisionUsersSuccessItem](documentation/models/BatchProvisionUsersSuccessItem.md) | | +| [BatchProvisionErrorItem](documentation/models/BatchProvisionErrorItem.md) | | +| [BatchProvisionUsersSuccessItemExtension](documentation/models/BatchProvisionUsersSuccessItemExtension.md) | | +| [ExtensionDevices](documentation/models/ExtensionDevices.md) | | +| [ApiErrorWithParameter](documentation/models/ApiErrorWithParameter.md) | | +| [BulkOperationExtensionReference](documentation/models/BulkOperationExtensionReference.md) | Information about an extension this device is assigned to | +| [BulkDeleteUsersResponseRecords](documentation/models/BulkDeleteUsersResponseRecords.md) | | +| [GetExtensionAccountInfo](documentation/models/GetExtensionAccountInfo.md) | Account information | +| [ContactInfo](documentation/models/ContactInfo.md) | Detailed contact information | +| [CostCenterInfo](documentation/models/CostCenterInfo.md) | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | +| [CustomFieldInfo](documentation/models/CustomFieldInfo.md) | | +| [DepartmentInfo](documentation/models/DepartmentInfo.md) | Please note that the `Department` extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [ExtensionPermissions](documentation/models/ExtensionPermissions.md) | Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' | +| [ProfileImageInfo](documentation/models/ProfileImageInfo.md) | Information on profile image | +| [ReferenceInfo](documentation/models/ReferenceInfo.md) | | +| [Roles](documentation/models/Roles.md) | | +| [RegionalSettings](documentation/models/RegionalSettings.md) | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| [ExtensionServiceFeatureInfo](documentation/models/ExtensionServiceFeatureInfo.md) | | +| [SetupWizardStateForUpdateEnum](documentation/models/SetupWizardStateForUpdateEnum.md) | Initial configuration wizard state | +| [GetExtensionInfoResponseStatus](documentation/models/GetExtensionInfoResponseStatus.md) | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| [ExtensionStatusInfo](documentation/models/ExtensionStatusInfo.md) | Status information (reason, comment). Returned for 'Disabled' status only | +| [GetExtensionInfoResponseType](documentation/models/GetExtensionInfoResponseType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [GetExtensionInfoResponseSubType](documentation/models/GetExtensionInfoResponseSubType.md) | Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned | +| [CallQueueExtensionInfo](documentation/models/CallQueueExtensionInfo.md) | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [ProvisioningSiteInfo](documentation/models/ProvisioningSiteInfo.md) | Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` | +| [AssignedCountryInfo](documentation/models/AssignedCountryInfo.md) | Information on a country assigned to an extension user. Returned for the User extension type only | +| [ContactBusinessAddressInfo](documentation/models/ContactBusinessAddressInfo.md) | User's business address. The default is Company (Auto-Receptionist) settings | +| [PronouncedNameInfo](documentation/models/PronouncedNameInfo.md) | | +| [PronouncedNameInfoType](documentation/models/PronouncedNameInfoType.md) | The method used to pronounce the user's name: - `Default` - default extension name; first and last name specified in user's profile are pronounced using text-to-speech; - `TextToSpeech` - custom text specified by a user pronounced using text-to-speech; - `Recorded` - custom audio uploaded by a user, the name recorded in user's own voice (supported only for extension retrieval). | +| [PronouncedNamePromptInfo](documentation/models/PronouncedNamePromptInfo.md) | | +| [PronouncedNamePromptInfoContentType](documentation/models/PronouncedNamePromptInfoContentType.md) | Content media type | +| [PermissionInfoAdmin](documentation/models/PermissionInfoAdmin.md) | Admin permission | +| [PermissionInfoInt](documentation/models/PermissionInfoInt.md) | International Calling permission | +| [ProfileImageInfoUri](documentation/models/ProfileImageInfoUri.md) | | +| [ReferenceInfoType](documentation/models/ReferenceInfoType.md) | Type of external identifier | +| [CountryInfoShortModel](documentation/models/CountryInfoShortModel.md) | | +| [TimezoneInfo](documentation/models/TimezoneInfo.md) | Extension timezone information | +| [RegionalLanguageInfo](documentation/models/RegionalLanguageInfo.md) | Information on a language set as regional | +| [GreetingLanguageInfo](documentation/models/GreetingLanguageInfo.md) | Information on language used for telephony greetings | +| [FormattingLocaleInfo](documentation/models/FormattingLocaleInfo.md) | Formatting language preferences for numbers, dates and currencies | +| [RegionalSettingsTimeFormat](documentation/models/RegionalSettingsTimeFormat.md) | Time format setting. The default value is '12h' = ['12h', '24h'] | +| [ExtensionServiceFeatureInfoFeatureName](documentation/models/ExtensionServiceFeatureInfoFeatureName.md) | Feature name | +| [ExtensionStatusInfoReason](documentation/models/ExtensionStatusInfoReason.md) | Type of suspension | +| [ExtensionUpdateRequestStatus](documentation/models/ExtensionUpdateRequestStatus.md) | | +| [ContactInfoUpdateRequest](documentation/models/ContactInfoUpdateRequest.md) | | +| [ExtensionRegionalSettingRequest](documentation/models/ExtensionRegionalSettingRequest.md) | | +| [CallQueueInfoRequest](documentation/models/CallQueueInfoRequest.md) | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [UserTransitionInfo](documentation/models/UserTransitionInfo.md) | For NotActivated extensions only. Welcome email settings | +| [SiteReference](documentation/models/SiteReference.md) | | +| [ExtensionUpdateRequestType](documentation/models/ExtensionUpdateRequestType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [ExtensionUpdateRequestSubType](documentation/models/ExtensionUpdateRequestSubType.md) | Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned | +| [ExtensionCountryInfoRequest](documentation/models/ExtensionCountryInfoRequest.md) | | +| [ExtensionTimezoneInfoRequest](documentation/models/ExtensionTimezoneInfoRequest.md) | | +| [ExtensionLanguageInfoRequest](documentation/models/ExtensionLanguageInfoRequest.md) | | +| [ExtensionGreetingLanguageInfoRequest](documentation/models/ExtensionGreetingLanguageInfoRequest.md) | | +| [ExtensionFormattingLocaleInfoRequest](documentation/models/ExtensionFormattingLocaleInfoRequest.md) | | +| [ExtensionCurrencyInfoRequest](documentation/models/ExtensionCurrencyInfoRequest.md) | | +| [ExtensionRegionalSettingRequestTimeFormat](documentation/models/ExtensionRegionalSettingRequestTimeFormat.md) | Time format setting | +| [GrantInfo](documentation/models/GrantInfo.md) | | +| [ExtensionInfoGrants](documentation/models/ExtensionInfoGrants.md) | Extension information | +| [ExtensionInfoGrantsType](documentation/models/ExtensionInfoGrantsType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [PhoneNumberInfoConferencing](documentation/models/PhoneNumberInfoConferencing.md) | | +| [ConferencePhoneNumberInfo](documentation/models/ConferencePhoneNumberInfo.md) | | +| [CallerIdByDevice](documentation/models/CallerIdByDevice.md) | Caller ID settings by device | +| [CallerIdByFeature](documentation/models/CallerIdByFeature.md) | Caller ID settings by feature | +| [CallerIdDeviceInfo](documentation/models/CallerIdDeviceInfo.md) | | +| [CallerIdByDeviceInfo](documentation/models/CallerIdByDeviceInfo.md) | | +| [CallerIdPhoneInfo](documentation/models/CallerIdPhoneInfo.md) | | +| [CallerIdByFeatureFeature](documentation/models/CallerIdByFeatureFeature.md) | | +| [CallerIdByFeatureInfo](documentation/models/CallerIdByFeatureInfo.md) | | +| [CallerIdByDeviceRequest](documentation/models/CallerIdByDeviceRequest.md) | Caller ID settings by device | +| [CallerIdByFeatureRequest](documentation/models/CallerIdByFeatureRequest.md) | Caller ID settings by feature | +| [CallerIdDeviceInfoRequest](documentation/models/CallerIdDeviceInfoRequest.md) | | +| [CallerIdByDeviceInfoRequest](documentation/models/CallerIdByDeviceInfoRequest.md) | | +| [CallerIdPhoneInfoRequest](documentation/models/CallerIdPhoneInfoRequest.md) | | +| [CallerIdByFeatureRequestFeature](documentation/models/CallerIdByFeatureRequestFeature.md) | | +| [CallerIdByFeatureInfoRequest](documentation/models/CallerIdByFeatureInfoRequest.md) | | +| [EmailRecipientInfo](documentation/models/EmailRecipientInfo.md) | | +| [VoicemailsInfo](documentation/models/VoicemailsInfo.md) | | +| [InboundFaxesInfo](documentation/models/InboundFaxesInfo.md) | | +| [OutboundFaxesInfo](documentation/models/OutboundFaxesInfo.md) | | +| [InboundTextsInfo](documentation/models/InboundTextsInfo.md) | | +| [MissedCallsInfo](documentation/models/MissedCallsInfo.md) | | +| [EmailRecipientInfoStatus](documentation/models/EmailRecipientInfoStatus.md) | Current state of an extension | +| [Permission](documentation/models/Permission.md) | Call queue manager permission | +| [SyncInfoMessages](documentation/models/SyncInfoMessages.md) | Sync type, token and time | +| [MessageAttachmentInfo](documentation/models/MessageAttachmentInfo.md) | | +| [ConversationInfo](documentation/models/ConversationInfo.md) | SMS and Pager only. Information about a conversation the message belongs to | +| [FaxResolutionEnum](documentation/models/FaxResolutionEnum.md) | Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi | +| [MessageStoreCallerInfoResponseFrom](documentation/models/MessageStoreCallerInfoResponseFrom.md) | Sender information | +| [MessageStatusEnum](documentation/models/MessageStatusEnum.md) | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| [MessagePriorityEnum](documentation/models/MessagePriorityEnum.md) | Message priority | +| [MessageStoreCallerInfoResponseTo](documentation/models/MessageStoreCallerInfoResponseTo.md) | | +| [GetMessageInfoResponseType](documentation/models/GetMessageInfoResponseType.md) | Message type | +| [VmTranscriptionStatus](documentation/models/VmTranscriptionStatus.md) | Voicemail only. Status of a voicemail to text transcription. If 'VoicemailToText' feature is not activated for account, the 'NotAvailable' value is returned | +| [MessageAttachmentTypeEnum](documentation/models/MessageAttachmentTypeEnum.md) | Type of message attachment | +| [FaxErrorCodeEnum](documentation/models/FaxErrorCodeEnum.md) | | +| [MessagingNavigationInfo](documentation/models/MessagingNavigationInfo.md) | Information on navigation | +| [MessagingPagingInfo](documentation/models/MessagingPagingInfo.md) | Information on paging | +| [MessagingNavigationInfoUri](documentation/models/MessagingNavigationInfoUri.md) | Canonical URI for the corresponding page of the list | +| [IvrMenuListInfo](documentation/models/IvrMenuListInfo.md) | | +| [IvrMenuSiteInfo](documentation/models/IvrMenuSiteInfo.md) | Site data | +| [IvrMenuPromptInfo](documentation/models/IvrMenuPromptInfo.md) | Prompt metadata | +| [IvrMenuActionsInfo](documentation/models/IvrMenuActionsInfo.md) | | +| [IvrMenuPromptInfoMode](documentation/models/IvrMenuPromptInfoMode.md) | Prompt mode: custom media or text | +| [AudioPromptInfo](documentation/models/AudioPromptInfo.md) | For 'Audio' mode only. Prompt media reference | +| [PromptLanguageInfo](documentation/models/PromptLanguageInfo.md) | For 'TextToSpeech' mode only. Prompt language metadata | +| [IvrMenuActionsInfoAction](documentation/models/IvrMenuActionsInfoAction.md) | Internal identifier of an answering rule | +| [IvrMenuExtensionInfo](documentation/models/IvrMenuExtensionInfo.md) | For 'Connect' or 'Voicemail' actions only. Extension reference | +| [CreateBridgeRequestType](documentation/models/CreateBridgeRequestType.md) | Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. | +| [BridgePins](documentation/models/BridgePins.md) | | +| [BridgeRequestSecurity](documentation/models/BridgeRequestSecurity.md) | | +| [BridgePreferences](documentation/models/BridgePreferences.md) | | +| [BridgePstnPins](documentation/models/BridgePstnPins.md) | | +| [BridgeJoinPreferences](documentation/models/BridgeJoinPreferences.md) | | +| [PlayTones](documentation/models/PlayTones.md) | Specifies enter and exit tones mode. 1) On - Enter and exit tones switched on. 2) Off - Enter and exit tones switched off. 3) ExitOnly - Only exit tones switched on. 4) EnterOnly - Only enter tones switched on. | +| [RecordingsMode](documentation/models/RecordingsMode.md) | Controls whether recordings are enabled automatically or by user decision | +| [TranscriptionsMode](documentation/models/TranscriptionsMode.md) | Controls whether transcriptions are enabled automatically or by user decision | +| [RecordingsPreferences](documentation/models/RecordingsPreferences.md) | Recordings preferences | +| [WaitingRoomRequired](documentation/models/WaitingRoomRequired.md) | Specifies rules for the waiting room before the host starts the meeting. 1) Nobody - No waiting room. Participants are not waiting for meeting start. 2) Everybody - All participants are waiting for meeting start. 3) GuestsOnly - Only unauthenticated participants (guests) are waiting for meeting start. 4) OtherAccount - Only participants who have other account are waiting for meeting start. Default value depends on the bridge type: - PMI -> OtherAccount - Instant, Scheduled -> Nobody | +| [BridgeJoinPstnPreferences](documentation/models/BridgeJoinPstnPreferences.md) | | +| [EveryoneCanControl](documentation/models/EveryoneCanControl.md) | Controls whether participants can start and pause recording | +| [AutoShared](documentation/models/AutoShared.md) | Controls whether recording can be auto shared | +| [BridgeResponseType](documentation/models/BridgeResponseType.md) | Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. | +| [User](documentation/models/User.md) | | +| [BridgePinsWithAliases](documentation/models/BridgePinsWithAliases.md) | | +| [BridgeResponseSecurity](documentation/models/BridgeResponseSecurity.md) | | +| [BridgeDiscovery](documentation/models/BridgeDiscovery.md) | | +| [BridgeResponseSecurityPassword](documentation/models/BridgeResponseSecurityPassword.md) | | +| [BridgePinsWithoutPstn](documentation/models/BridgePinsWithoutPstn.md) | | +| [CloudRecording](documentation/models/CloudRecording.md) | Recording information | +| [Paging](documentation/models/Paging.md) | Paging information | +| [Host](documentation/models/Host.md) | Meeting host | +| [Delegate](documentation/models/Delegate.md) | | +| [MeetingType](documentation/models/MeetingType.md) | Meeting type | +| [MeetingStatus](documentation/models/MeetingStatus.md) | Meeting status | +| [Rights](documentation/models/Rights.md) | | +| [Participant](documentation/models/Participant.md) | Participant information | +| [Recording](documentation/models/Recording.md) | Recording information | +| [RecordingStatus](documentation/models/RecordingStatus.md) | Recording processing status | +| [AvailabilityStatus](documentation/models/AvailabilityStatus.md) | Availability status | +| [GetTokenRequest_1](documentation/models/GetTokenRequest1.md) | | +| [GetTokenRequest_2](documentation/models/GetTokenRequest2.md) | | +| [GetTokenRequest_3](documentation/models/GetTokenRequest3.md) | | +| [GetTokenRequest_4](documentation/models/GetTokenRequest4.md) | | +| [GetTokenRequest_5](documentation/models/GetTokenRequest5.md) | | +| [GetTokenRequest_6](documentation/models/GetTokenRequest6.md) | | +| [GetTokenRequest_7](documentation/models/GetTokenRequest7.md) | | +| [GetTokenRequest_8](documentation/models/GetTokenRequest8.md) | | +| [GetTokenRequest_9](documentation/models/GetTokenRequest9.md) | | +| [GetTokenRequest_1GrantType](documentation/models/GetTokenRequest1GrantType.md) | Grant type | +| [GetTokenRequest_1ClientAssertionType](documentation/models/GetTokenRequest1ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_2GrantType](documentation/models/GetTokenRequest2GrantType.md) | Grant type | +| [GetTokenRequest_2ClientAssertionType](documentation/models/GetTokenRequest2ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_3GrantType](documentation/models/GetTokenRequest3GrantType.md) | Grant type | +| [GetTokenRequest_3ClientAssertionType](documentation/models/GetTokenRequest3ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_4GrantType](documentation/models/GetTokenRequest4GrantType.md) | Grant type | +| [GetTokenRequest_4ClientAssertionType](documentation/models/GetTokenRequest4ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_5GrantType](documentation/models/GetTokenRequest5GrantType.md) | Grant type | +| [GetTokenRequest_5ClientAssertionType](documentation/models/GetTokenRequest5ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_6GrantType](documentation/models/GetTokenRequest6GrantType.md) | Grant type | +| [GetTokenRequest_6ClientAssertionType](documentation/models/GetTokenRequest6ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_7_1](documentation/models/GetTokenRequest7_1.md) | | +| [GetTokenRequest_7_2](documentation/models/GetTokenRequest7_2.md) | | +| [GetTokenRequest_7_1GrantType](documentation/models/GetTokenRequest7_1GrantType.md) | Grant type | +| [GetTokenRequest_7_1ClientAssertionType](documentation/models/GetTokenRequest7_1ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_7_2GrantType](documentation/models/GetTokenRequest7_2GrantType.md) | Grant type | +| [GetTokenRequest_7_2ClientAssertionType](documentation/models/GetTokenRequest7_2ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_8GrantType](documentation/models/GetTokenRequest8GrantType.md) | Grant type | +| [GetTokenRequest_8ClientAssertionType](documentation/models/GetTokenRequest8ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [GetTokenRequest_9GrantType](documentation/models/GetTokenRequest9GrantType.md) | Grant type | +| [GetTokenRequest_9ClientAssertionType](documentation/models/GetTokenRequest9ClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [TokenType](documentation/models/TokenType.md) | Type of the token. The only supported value is `bearer`. This value should be used when specifying access token in `Authorization` header of subsequent API requests | +| [AuthorizeRequestResponseType](documentation/models/AuthorizeRequestResponseType.md) | Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" | +| [RevokeTokenRequestClientAssertionType](documentation/models/RevokeTokenRequestClientAssertionType.md) | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| [AccountInfoStatus](documentation/models/AccountInfoStatus.md) | Account status | +| [AccountStatusInfo](documentation/models/AccountStatusInfo.md) | Optional information to be used when account is moved to "Disabled" status | +| [ServiceInfoV2](documentation/models/ServiceInfoV2.md) | Service Plan information (billing package, brand, etc.) | +| [SystemUserContactInfo](documentation/models/SystemUserContactInfo.md) | | +| [AccountStatusInfoReason](documentation/models/AccountStatusInfoReason.md) | Type of suspension, voluntarily or not | +| [ServiceInfoPackage](documentation/models/ServiceInfoPackage.md) | Billing package information | +| [ServiceInfoBrand](documentation/models/ServiceInfoBrand.md) | Internal RC "brand" information | +| [ServiceInfoCountryShortModel](documentation/models/ServiceInfoCountryShortModel.md) | | +| [ServiceInfoUBrand](documentation/models/ServiceInfoUBrand.md) | Account sub-brand information | +| [ServiceInfoPlan](documentation/models/ServiceInfoPlan.md) | Information on account service plan | +| [Version](documentation/models/Version.md) | Billing package version | +| [ServiceInfoPlanFreemiumProductType](documentation/models/ServiceInfoPlanFreemiumProductType.md) | | +| [AccountOperatorInfo](documentation/models/AccountOperatorInfo.md) | Operator extension information. This extension will receive all calls and messages addressed to an operator. | +| [ServiceInfo](documentation/models/ServiceInfo.md) | Account service information, including brand, sub-brand, service plan and billing plan | +| [SetupWizardStateEnum](documentation/models/SetupWizardStateEnum.md) | Initial configuration wizard state | +| [SignupInfoResource](documentation/models/SignupInfoResource.md) | Account sign up data | +| [GetAccountInfoResponseStatus](documentation/models/GetAccountInfoResponseStatus.md) | Status of the current account | +| [AccountRegionalSettings](documentation/models/AccountRegionalSettings.md) | Account level region data (web service Auto-Receptionist settings) | +| [AccountLimits](documentation/models/AccountLimits.md) | Limits which are effective for the account | +| [BillingPlanInfo](documentation/models/BillingPlanInfo.md) | Information on account billing plan | +| [BrandInfo](documentation/models/BrandInfo.md) | Information on account brand | +| [ServicePlanInfo](documentation/models/ServicePlanInfo.md) | Information on account service plan | +| [TargetServicePlanInfo](documentation/models/TargetServicePlanInfo.md) | Information on account target service plan | +| [UBrandInfo](documentation/models/UBrandInfo.md) | Account sub-brand information | +| [DurationUnit](documentation/models/DurationUnit.md) | Duration period | +| [BillingPlanInfoType](documentation/models/BillingPlanInfoType.md) | Billing plan type | +| [ServicePlanInfoFreemiumProductType](documentation/models/ServicePlanInfoFreemiumProductType.md) | | +| [TargetServicePlanInfoFreemiumProductType](documentation/models/TargetServicePlanInfoFreemiumProductType.md) | | +| [SignupState](documentation/models/SignupState.md) | | +| [VerificationReason](documentation/models/VerificationReason.md) | | +| [AccountRegionalSettingsTimeFormat](documentation/models/AccountRegionalSettingsTimeFormat.md) | Time format setting. The default value is '12h' = ['12h', '24h'] | +| [CurrencyInfo](documentation/models/CurrencyInfo.md) | Currency information | +| [ServiceFeatureInfo](documentation/models/ServiceFeatureInfo.md) | | +| [PackageInfo](documentation/models/PackageInfo.md) | | +| [ServiceFeatureInfoFeatureName](documentation/models/ServiceFeatureInfoFeatureName.md) | Feature name | +| [BusinessAddressInfo](documentation/models/BusinessAddressInfo.md) | Company business address | +| [ContractedCountryListResponseRecords](documentation/models/ContractedCountryListResponseRecords.md) | | +| [AddDeviceToInventoryRequestType](documentation/models/AddDeviceToInventoryRequestType.md) | Device type. Use `OtherPhone` to indicate BYOD (customer provided) device | +| [AddDeviceToInventoryRequestSite](documentation/models/AddDeviceToInventoryRequestSite.md) | | +| [AddDeviceToInventoryResponseDevices](documentation/models/AddDeviceToInventoryResponseDevices.md) | | +| [SiteBasicInfo](documentation/models/SiteBasicInfo.md) | | +| [DeleteDeviceFromInventoryRequestRecords](documentation/models/DeleteDeviceFromInventoryRequestRecords.md) | | +| [DeleteDeviceFromInventoryResponseRecords](documentation/models/DeleteDeviceFromInventoryResponseRecords.md) | | +| [RemoveLineResponseType](documentation/models/RemoveLineResponseType.md) | Device type | +| [BulkAddDevicesItem](documentation/models/BulkAddDevicesItem.md) | | +| [BulkAddDevicesItemType](documentation/models/BulkAddDevicesItemType.md) | Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment | +| [Emergency_1_2](documentation/models/Emergency1_2.md) | | +| [Emergency_2_2](documentation/models/Emergency2_2.md) | | +| [Emergency_2Location_2](documentation/models/Emergency2Location2.md) | | +| [BulkAddDevicesSuccessItem](documentation/models/BulkAddDevicesSuccessItem.md) | | +| [BulkAddDevicesErrorItem](documentation/models/BulkAddDevicesErrorItem.md) | | +| [DeviceResourceType](documentation/models/DeviceResourceType.md) | Device type | +| [DeviceResourceStatus](documentation/models/DeviceResourceStatus.md) | Device status | +| [ModelInfo](documentation/models/ModelInfo.md) | HardPhone model information | +| [ExtensionInfoIntId](documentation/models/ExtensionInfoIntId.md) | This attribute can be omitted for unassigned devices | +| [DeviceEmergencyInfo](documentation/models/DeviceEmergencyInfo.md) | Device emergency settings | +| [EmergencyServiceAddressResource](documentation/models/EmergencyServiceAddressResource.md) | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| [PhoneLinesInfo](documentation/models/PhoneLinesInfo.md) | | +| [ShippingInfo](documentation/models/ShippingInfo.md) | Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer | +| [DeviceSiteInfo](documentation/models/DeviceSiteInfo.md) | Site data | +| [LinePoolingEnum](documentation/models/LinePoolingEnum.md) | Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.) | +| [BillingStatementInfo](documentation/models/BillingStatementInfo.md) | Billing information. Returned for device update request if `prestatement` query parameter is set to 'true' | +| [AddonInfo](documentation/models/AddonInfo.md) | | +| [CommonEmergencyLocationAddressInfoDefault](documentation/models/CommonEmergencyLocationAddressInfoDefault.md) | | +| [DeviceEmergencyLocationInfo](documentation/models/DeviceEmergencyLocationInfo.md) | Company emergency response location details | +| [DeviceEmergencyInfoAddressStatus](documentation/models/DeviceEmergencyInfoAddressStatus.md) | Emergency address status | +| [DeviceEmergencyInfoVisibility](documentation/models/DeviceEmergencyInfoVisibility.md) | Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array | +| [DeviceEmergencyInfoSyncStatus](documentation/models/DeviceEmergencyInfoSyncStatus.md) | Resulting status of the emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| [DeviceEmergencyInfoAddressEditableStatus](documentation/models/DeviceEmergencyInfoAddressEditableStatus.md) | Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) | +| [EmergencyServiceAddressResourceSyncStatus](documentation/models/EmergencyServiceAddressResourceSyncStatus.md) | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| [EmergencyServiceAddressResourceLineProvisioningStatus](documentation/models/EmergencyServiceAddressResourceLineProvisioningStatus.md) | Status of digital line provisioning | +| [PhoneNumberInfoIntId](documentation/models/PhoneNumberInfoIntId.md) | Phone number information | +| [EmergencyAddress](documentation/models/EmergencyAddress.md) | | +| [PhoneNumberCountryInfo](documentation/models/PhoneNumberCountryInfo.md) | Brief information on a phone number country | +| [DeviceProvisioningExtensionInfo](documentation/models/DeviceProvisioningExtensionInfo.md) | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| [PhoneNumberInfoIntIdPaymentType](documentation/models/PhoneNumberInfoIntIdPaymentType.md) | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system | +| [PhoneNumberInfoIntIdType](documentation/models/PhoneNumberInfoIntIdType.md) | Phone number type | +| [PhoneNumberInfoIntIdUsageType](documentation/models/PhoneNumberInfoIntIdUsageType.md) | Usage type of the phone number | +| [EmergencyAddressLineProvisioningStatus](documentation/models/EmergencyAddressLineProvisioningStatus.md) | This status is associated with a phone line provision state | +| [ShippingStatus](documentation/models/ShippingStatus.md) | Order item shipping status. It is set to `Initial` when the order is submitted. Then it is changed to `Accepted` when a distributor starts processing the order. Finally, it is changed to `Shipped` which means that the distributor has shipped the device. | +| [ShippingMethodInfo](documentation/models/ShippingMethodInfo.md) | | +| [ShippingAddressInfo](documentation/models/ShippingAddressInfo.md) | Shipping address for the order. If it coincides with the Emergency Service Address, then can be omitted. By default, the same value as the emergencyServiceAddress. Multiple addresses can be specified; in case an order contains several devices, they can be delivered to different addresses | +| [Id](documentation/models/Id.md) | Shipping method ID: - "1" - Ground Shipping (5-7 business days) - "2" - Expedited Shipping (2-days) - "3" - Overnight Shipping | +| [ShippingMethodInfoName](documentation/models/ShippingMethodInfoName.md) | Method name, corresponding to the identifier | +| [BillingStatementCharges](documentation/models/BillingStatementCharges.md) | | +| [BillingStatementFees](documentation/models/BillingStatementFees.md) | | +| [EmergencyServiceAddressResourceRequest](documentation/models/EmergencyServiceAddressResourceRequest.md) | Address for emergency cases. The same emergency address is assigned to all numbers of a single device. If the emergency address is also specified in `emergency` resource, then this value is ignored | +| [DeviceUpdateExtensionInfo](documentation/models/DeviceUpdateExtensionInfo.md) | Information on extension that the device is assigned to | +| [DeviceUpdatePhoneLinesInfo](documentation/models/DeviceUpdatePhoneLinesInfo.md) | Information on phone lines added to a device | +| [UpdateDevicePhoneInfo](documentation/models/UpdateDevicePhoneInfo.md) | | +| [OutboundProxyInfo](documentation/models/OutboundProxyInfo.md) | | +| [AccountPhoneNumberInfoExtension](documentation/models/AccountPhoneNumberInfoExtension.md) | Reference to the extension this number is assigned to. Omitted for company numbers | +| [DeletePhoneNumbersRequestItem](documentation/models/DeletePhoneNumbersRequestItem.md) | The indication of a number to be deleted - either "id" or "phoneNumber" must be specified. | +| [DeletePhoneNumbersResponseItem](documentation/models/DeletePhoneNumbersResponseItem.md) | | +| [AssignPhoneNumberRequestUsageType](documentation/models/AssignPhoneNumberRequestUsageType.md) | Target usage type of phone number (only listed values are supported) | +| [AssignPhoneNumberRequestExtension](documentation/models/AssignPhoneNumberRequestExtension.md) | | +| [AddPhoneNumberRequestItem](documentation/models/AddPhoneNumberRequestItem.md) | | +| [AddPhoneNumberRequestItemUsageType](documentation/models/AddPhoneNumberRequestItemUsageType.md) | Usage type of phone number. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. | +| [AddPhoneNumbersResponseItem](documentation/models/AddPhoneNumbersResponseItem.md) | | +| [UserPhoneNumberInfo](documentation/models/UserPhoneNumberInfo.md) | | +| [CountryInfoBasicModel](documentation/models/CountryInfoBasicModel.md) | | +| [ContactCenterProvider](documentation/models/ContactCenterProvider.md) | CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' | +| [UserPhoneNumberExtensionInfo](documentation/models/UserPhoneNumberExtensionInfo.md) | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| [UserPhoneNumberInfoStatus](documentation/models/UserPhoneNumberInfoStatus.md) | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral | +| [UserPhoneNumberInfoType](documentation/models/UserPhoneNumberInfoType.md) | Phone number type | +| [UserPhoneNumberInfoSubType](documentation/models/UserPhoneNumberInfoSubType.md) | Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned | +| [UserPhoneNumberInfoUsageType](documentation/models/UserPhoneNumberInfoUsageType.md) | Usage type of phone number. Numbers of 'NumberPool' type will not be returned for phone number list requests | +| [UserPhoneNumberInfoFeatures](documentation/models/UserPhoneNumberInfoFeatures.md) | | +| [UserPhoneNumberExtensionInfoType](documentation/models/UserPhoneNumberExtensionInfoType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [ExtensionInfo](documentation/models/ExtensionInfo.md) | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| [CompanyPhoneNumberInfoStatus](documentation/models/CompanyPhoneNumberInfoStatus.md) | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. If the value is 'Pending' it is an external number not yet ported to RingCentral. | +| [CompanyPhoneNumberInfoType](documentation/models/CompanyPhoneNumberInfoType.md) | Phone number type | +| [CompanyPhoneNumberInfoUsageType](documentation/models/CompanyPhoneNumberInfoUsageType.md) | Usage type of phone number. Usage type of phone number. Numbers of 'NumberPool' type are not returned in phone number list requests | +| [TemporaryNumberInfo](documentation/models/TemporaryNumberInfo.md) | Temporary phone number, if any. Returned for phone numbers in `Pending` porting status only | +| [GetCountryInfoNumberParser](documentation/models/GetCountryInfoNumberParser.md) | | +| [PhoneNumberInfoNumberParser](documentation/models/PhoneNumberInfoNumberParser.md) | | +| [CompanyBusinessHoursScheduleInfo](documentation/models/CompanyBusinessHoursScheduleInfo.md) | Schedule when an answering rule is applied | +| [WeeklyScheduleInfo](documentation/models/WeeklyScheduleInfo.md) | Weekly schedule | +| [TimeInterval](documentation/models/TimeInterval.md) | | +| [ScheduleInfoUserBusinessHours](documentation/models/ScheduleInfoUserBusinessHours.md) | Schedule when an answering rule is applied | +| [UserBusinessHoursScheduleInfo](documentation/models/UserBusinessHoursScheduleInfo.md) | Schedule when an answering rule is applied | +| [CustomFieldModelCategory](documentation/models/CustomFieldModelCategory.md) | Object category to attach custom fields | +| [CustomFieldCreateRequestCategory](documentation/models/CustomFieldCreateRequestCategory.md) | Object category to attach custom fields | +| [OnDemandResource](documentation/models/OnDemandResource.md) | | +| [AutomaticRecordingResource](documentation/models/AutomaticRecordingResource.md) | | +| [GreetingResource](documentation/models/GreetingResource.md) | | +| [GreetingResourceType](documentation/models/GreetingResourceType.md) | | +| [GreetingResourceMode](documentation/models/GreetingResourceMode.md) | Here `Default` indicates that all greetings of that type (in all languages) are default. If at least one greeting (in any language) of the specified type is custom, then `Custom` is returned. | +| [CallRecordingCustomGreeting](documentation/models/CallRecordingCustomGreeting.md) | | +| [CallRecordingCustomGreetingType](documentation/models/CallRecordingCustomGreetingType.md) | | +| [CallRecordingCustomGreetingData](documentation/models/CallRecordingCustomGreetingData.md) | Custom greeting data | +| [CallRecordingCustomGreetingLanguage](documentation/models/CallRecordingCustomGreetingLanguage.md) | Custom greeting language | +| [CallRecordingExtensionResource](documentation/models/CallRecordingExtensionResource.md) | | +| [CallDirection](documentation/models/CallDirection.md) | Direction of call | +| [CallRecordingExtensionInfo](documentation/models/CallRecordingExtensionInfo.md) | | +| [MakeCallOutCallerInfoRequestFrom](documentation/models/MakeCallOutCallerInfoRequestFrom.md) | Instance id of the caller. It corresponds to the 1st leg of the CallOut call. | +| [MakeCallOutCallerInfoRequestTo](documentation/models/MakeCallOutCallerInfoRequestTo.md) | Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call | +| [OriginInfo](documentation/models/OriginInfo.md) | Session origin details | +| [OriginInfoType](documentation/models/OriginInfoType.md) | Session origin type | +| [CallStatusInfo](documentation/models/CallStatusInfo.md) | Status data of a call session | +| [ParkInfo](documentation/models/ParkInfo.md) | Call park information | +| [PartyInfo](documentation/models/PartyInfo.md) | | +| [OwnerInfo](documentation/models/OwnerInfo.md) | Deprecated. Information on a call owner | +| [CallPartyDirection](documentation/models/CallPartyDirection.md) | Direction of a call | +| [CallPartyConferenceRole](documentation/models/CallPartyConferenceRole.md) | A party's role in the conference scenarios. For calls of 'Conference' type only | +| [CallPartyRingOutRole](documentation/models/CallPartyRingOutRole.md) | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only | +| [CallPartyRingMeRole](documentation/models/CallPartyRingMeRole.md) | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only | +| [RecordingInfo](documentation/models/RecordingInfo.md) | | +| [CallStatusInfoCode](documentation/models/CallStatusInfoCode.md) | Status code of a call | +| [PeerInfo](documentation/models/PeerInfo.md) | Peer session/party details. Valid in 'Gone' state of a call | +| [CallStatusInfoReason](documentation/models/CallStatusInfoReason.md) | Reason for call termination. For 'Disconnected' code only | +| [PartyUpdateInfo](documentation/models/PartyUpdateInfo.md) | Party update data | +| [ReplyWithPattern](documentation/models/ReplyWithPattern.md) | | +| [Pattern](documentation/models/Pattern.md) | Predefined reply pattern name. | +| [TimeUnit](documentation/models/TimeUnit.md) | Time unit name. | +| [ReplyPartyDirection](documentation/models/ReplyPartyDirection.md) | Direction of a call | +| [PartySuperviseRequestMode](documentation/models/PartySuperviseRequestMode.md) | Supervising mode | +| [PartySuperviseRequestMediaSdp](documentation/models/PartySuperviseRequestMediaSdp.md) | Specifies session description protocol (SDP) setting. The possible values are 'sendOnly' (only sending) meaning one-way audio streaming; and 'sendRecv' (sending/receiving) meaning two-way audio streaming | +| [PartySuperviseResponseDirection](documentation/models/PartySuperviseResponseDirection.md) | Direction of a call | +| [Proto](documentation/models/Proto.md) | Protocol for hold mode initiation | +| [ForwardCallPartyResponseDirection](documentation/models/ForwardCallPartyResponseDirection.md) | Direction of a call | +| [ForwardCallPartyResponseConferenceRole](documentation/models/ForwardCallPartyResponseConferenceRole.md) | A party's role in the conference scenarios. For calls of 'Conference' type only | +| [ForwardCallPartyResponseRingOutRole](documentation/models/ForwardCallPartyResponseRingOutRole.md) | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only | +| [ForwardCallPartyResponseRingMeRole](documentation/models/ForwardCallPartyResponseRingMeRole.md) | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only | +| [SuperviseCallSessionRequestMode](documentation/models/SuperviseCallSessionRequestMode.md) | Supervising mode | +| [SuperviseCallSessionRequestMediaSdp](documentation/models/SuperviseCallSessionRequestMediaSdp.md) | Specifies session description protocol setting | +| [SuperviseCallSessionResponseDirection](documentation/models/SuperviseCallSessionResponseDirection.md) | Direction of a call | +| [Site](documentation/models/Site.md) | Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. The default is `main-site` value. | +| [ExtensionInfoCallLog](documentation/models/ExtensionInfoCallLog.md) | Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned | +| [CallLogRecordTransferTarget](documentation/models/CallLogRecordTransferTarget.md) | | +| [CallLogRecordTransferee](documentation/models/CallLogRecordTransferee.md) | | +| [CallLogFromParty](documentation/models/CallLogFromParty.md) | | +| [CallLogToParty](documentation/models/CallLogToParty.md) | | +| [CallLogRecordMessage](documentation/models/CallLogRecordMessage.md) | Linked message (Fax/Voicemail) | +| [CallLogDelegateInfo](documentation/models/CallLogDelegateInfo.md) | Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension | +| [DelegationTypeEnum](documentation/models/DelegationTypeEnum.md) | Call delegation type | +| [CallActionEnum](documentation/models/CallActionEnum.md) | The internal action corresponding to the call operation | +| [CallResultEnum](documentation/models/CallResultEnum.md) | The result of the call operation | +| [CallResultReasonEnum](documentation/models/CallResultReasonEnum.md) | The reason of the call result: _ `Accepted` - The call was connected to and accepted by this number _ `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) _ `Line Busy` - The phone number you dialed was busy _ `Not Answered` - The phone number you dialed was not answered _ `No Answer` - You did not answer the call _ `Hang Up` - The caller hung up before the call was answered _ `Stopped` - This attempt was stopped because the call was answered by another phone _ `Internal Error` - An internal error occurred when making the call. Please try again _ `No Credit` - There was not enough Calling Credit on your account to make this call _ `Restricted Number` - The number you dialed is restricted by RingCentral _ `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again _ `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling _ `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator _ `Bad Number` - An error occurred when making the call. Please check the number before trying again _ `Info 411 Restricted` - Calling to 411 Information Services is restricted _ `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> _ `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection _ `Failed Try Again` - Call failed. Please try again _ `Max Call Limit` - The number of simultaneous calls to your account has reached its limit _ `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service _ `Calls Not Accepted` - Your account was not accepting calls at this time _ `Number Not Allowed` - The number that was dialed to access your account is not allowed _ `Number Blocked` - This number is in your Blocked Numbers list _ `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator _ `Resource Error` - An error occurred when making the call. Please try again _ `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account _ `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established _ `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped _ `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine _ `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax _ `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again _ `Fax Save Error` - An internal error occurred when saving the fax. Please try again _ `Fax Send Error` - An error occurred when sending the fax. Please try again _ `Emergency Address not defined` - The call was rejected due to no E911 address _ `Carrier is not active` - The call was rejected due to carrier inactivity _ `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration _ `Internal Call Error` - An internal error occurred when making the call. Please try again _ `Receive Error` - Fax receive error | +| [CallLogRecordingInfo](documentation/models/CallLogRecordingInfo.md) | Call recording data. Returned if the call was recorded | +| [BillingInfo](documentation/models/BillingInfo.md) | Billing information related to the call. Returned for 'Detailed' view only | +| [CallInternalTypeEnum](documentation/models/CallInternalTypeEnum.md) | The internal type of the call | +| [CallLogRecordLegInfo](documentation/models/CallLogRecordLegInfo.md) | | +| [CallLogRecordDeviceInfo](documentation/models/CallLogRecordDeviceInfo.md) | | +| [CallLogRecordingInfoType](documentation/models/CallLogRecordingInfoType.md) | Indicates recording mode used | +| [CallLogRecordLegInfoTransferTarget](documentation/models/CallLogRecordLegInfoTransferTarget.md) | | +| [CallLogRecordLegInfoTransferee](documentation/models/CallLogRecordLegInfoTransferee.md) | | +| [CallLegTypeEnum](documentation/models/CallLegTypeEnum.md) | Leg type | +| [CallLogSyncInfo](documentation/models/CallLogSyncInfo.md) | | +| [CallLogSyncTypeEnum](documentation/models/CallLogSyncTypeEnum.md) | Type of call log synchronization request: full or incremental sync | +| [ExtensionBulkUpdateInfo](documentation/models/ExtensionBulkUpdateInfo.md) | | +| [ExtensionBulkUpdateInfoStatus](documentation/models/ExtensionBulkUpdateInfoStatus.md) | | +| [ExtensionBulkUpdateInfoType](documentation/models/ExtensionBulkUpdateInfoType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [ExtensionBulkUpdateTaskResourceStatus](documentation/models/ExtensionBulkUpdateTaskResourceStatus.md) | Task status | +| [ExtensionBulkUpdateTaskResult](documentation/models/ExtensionBulkUpdateTaskResult.md) | Result record on multiple extension update task | +| [ExtensionUpdateShortResult](documentation/models/ExtensionUpdateShortResult.md) | | +| [ErrorEntity](documentation/models/ErrorEntity.md) | | +| [ExtensionUpdateShortResultStatus](documentation/models/ExtensionUpdateShortResultStatus.md) | Extension update status | +| [GetExtensionListInfoResponse](documentation/models/GetExtensionListInfoResponse.md) | | +| [GetExtensionListInfoResponseStatus](documentation/models/GetExtensionListInfoResponseStatus.md) | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| [GetExtensionListInfoResponseType](documentation/models/GetExtensionListInfoResponseType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [GetExtensionListInfoResponseSubType](documentation/models/GetExtensionListInfoResponseSubType.md) | Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned | +| [ContactInfoCreationRequest](documentation/models/ContactInfoCreationRequest.md) | Contact Information | +| [ExtensionCreationRequestStatus](documentation/models/ExtensionCreationRequestStatus.md) | Extension current state | +| [ExtensionCreationRequestType](documentation/models/ExtensionCreationRequestType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [OperatorInfo](documentation/models/OperatorInfo.md) | Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled | +| [ExtensionCreationResponseStatus](documentation/models/ExtensionCreationResponseStatus.md) | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| [ExtensionCreationResponseType](documentation/models/ExtensionCreationResponseType.md) | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| [MessageStatusCounts](documentation/models/MessageStatusCounts.md) | Message status parameters | +| [MessageListMessageResponse](documentation/models/MessageListMessageResponse.md) | The short detail of the message in the get batch response | +| [PagingResource](documentation/models/PagingResource.md) | Pagination details | +| [SmsStatusEnum](documentation/models/SmsStatusEnum.md) | Current status of a message | +| [OptOutResponse](documentation/models/OptOutResponse.md) | Opt-out record | +| [OptOutResponseStatus](documentation/models/OptOutResponseStatus.md) | Status of a phone number | +| [Source](documentation/models/Source.md) | | +| [OptIns](documentation/models/OptIns.md) | Contains successful and failed opt-ins | +| [OptOuts](documentation/models/OptOuts.md) | Contains successful and failed opt-outs | +| [OptOutBulkAssignFailedEntry](documentation/models/OptOutBulkAssignFailedEntry.md) | Represents a failure of adding opt-out / opt-in. A pair of a recipient phone number and an error message | +| [MessageBatchResponseStatus](documentation/models/MessageBatchResponseStatus.md) | Current status of a message batch | +| [RejectedRecipientResponseResource](documentation/models/RejectedRecipientResponseResource.md) | The rejected recipient details | +| [MessageCreateRequest](documentation/models/MessageCreateRequest.md) | Single individual SMS resource | +| [ListCompanyAnsweringRuleInfo](documentation/models/ListCompanyAnsweringRuleInfo.md) | | +| [ListCompanyAnsweringRuleInfoType](documentation/models/ListCompanyAnsweringRuleInfoType.md) | Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] | +| [CalledNumberInfo](documentation/models/CalledNumberInfo.md) | | +| [CompanyAnsweringRuleExtensionInfo](documentation/models/CompanyAnsweringRuleExtensionInfo.md) | | +| [CompanyAnsweringRuleRequestType](documentation/models/CompanyAnsweringRuleRequestType.md) | Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] | +| [CompanyAnsweringRuleCallersInfoRequest](documentation/models/CompanyAnsweringRuleCallersInfoRequest.md) | | +| [CompanyAnsweringRuleCalledNumberInfo](documentation/models/CompanyAnsweringRuleCalledNumberInfo.md) | | +| [CompanyAnsweringRuleScheduleInfoRequest](documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md) | Schedule when an answering rule should be applied | +| [CompanyAnsweringRuleRequestCallHandlingAction](documentation/models/CompanyAnsweringRuleRequestCallHandlingAction.md) | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| [CompanyAnsweringRuleExtensionInfoRequest](documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md) | Extension to which the call is forwarded in 'Bypass' mode | +| [GreetingInfo](documentation/models/GreetingInfo.md) | | +| [CompanyAnsweringRuleWeeklyScheduleInfoRequest](documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md) | Weekly schedule. If specified, ranges cannot be specified | +| [RangesInfo](documentation/models/RangesInfo.md) | | +| [CompanyAnsweringRuleScheduleInfoRequestRef](documentation/models/CompanyAnsweringRuleScheduleInfoRequestRef.md) | Reference to Business Hours or After Hours schedule | +| [CompanyAnsweringRuleTimeIntervalRequest](documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md) | | +| [PresetInfo](documentation/models/PresetInfo.md) | | +| [CustomGreetingInfoRequest](documentation/models/CustomGreetingInfoRequest.md) | | +| [CompanyAnsweringRuleInfoType](documentation/models/CompanyAnsweringRuleInfoType.md) | Type of an answering rule | +| [CompanyAnsweringRuleCalledNumberInfoRequest](documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md) | | +| [CompanyAnsweringRuleScheduleInfo](documentation/models/CompanyAnsweringRuleScheduleInfo.md) | Schedule when an answering rule should be applied | +| [CompanyAnsweringRuleInfoCallHandlingAction](documentation/models/CompanyAnsweringRuleInfoCallHandlingAction.md) | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| [CompanyAnsweringRuleScheduleInfoRef](documentation/models/CompanyAnsweringRuleScheduleInfoRef.md) | Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours'] | +| [CompanyAnsweringRuleUpdateCallHandlingAction](documentation/models/CompanyAnsweringRuleUpdateCallHandlingAction.md) | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect','Bypass'] | +| [CompanyAnsweringRuleUpdateType](documentation/models/CompanyAnsweringRuleUpdateType.md) | Type of an answering rule | +| [IvrCallHandlingActionEnum](documentation/models/IvrCallHandlingActionEnum.md) | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| [ExtensionShortInfoResource](documentation/models/ExtensionShortInfoResource.md) | | +| [ForwardAllCallsReason](documentation/models/ForwardAllCallsReason.md) | | +| [ForwardAllCallsReasonCode](documentation/models/ForwardAllCallsReasonCode.md) | Specifies the type of limitation. `ExtensionLimitation` means that the feature is turned off for this particular extension. `FeatureLimitation` means that the user may enable this feature and setup the rule via the Service Web UI | +| [AnsweringRuleInfoType](documentation/models/AnsweringRuleInfoType.md) | Type of an answering rule | +| [ScheduleInfo](documentation/models/ScheduleInfo.md) | Schedule when an answering rule should be applied | +| [CallersInfo](documentation/models/CallersInfo.md) | | +| [AnsweringRuleInfoCallHandlingAction](documentation/models/AnsweringRuleInfoCallHandlingAction.md) | Specifies how incoming calls are forwarded | +| [ForwardingInfo](documentation/models/ForwardingInfo.md) | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| [UnconditionalForwardingInfo](documentation/models/UnconditionalForwardingInfo.md) | Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter | +| [QueueInfo](documentation/models/QueueInfo.md) | Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action | +| [TransferredExtensionInfo](documentation/models/TransferredExtensionInfo.md) | | +| [VoicemailInfo](documentation/models/VoicemailInfo.md) | Specifies whether to take a voicemail and who should do it | +| [AnsweringRuleInfoScreening](documentation/models/AnsweringRuleInfoScreening.md) | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| [SharedLinesInfo](documentation/models/SharedLinesInfo.md) | SharedLines call handling action settings | +| [MissedCallInfo](documentation/models/MissedCallInfo.md) | Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' | +| [ScheduleInfoRef](documentation/models/ScheduleInfoRef.md) | The user's schedule specified for business hours or after hours; it can also be set/retrieved calling the corresponding method | +| [ForwardingInfoRingingMode](documentation/models/ForwardingInfoRingingMode.md) | Specifies the order in which the forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ring all at the same time | +| [ForwardingRuleInfo](documentation/models/ForwardingRuleInfo.md) | | +| [CreateAnsweringRuleForwardingNumberInfo](documentation/models/CreateAnsweringRuleForwardingNumberInfo.md) | | +| [CreateAnsweringRuleForwardingNumberInfoType](documentation/models/CreateAnsweringRuleForwardingNumberInfoType.md) | Type of forwarding number | +| [UnconditionalForwardingInfoAction](documentation/models/UnconditionalForwardingInfoAction.md) | Event that initiates forwarding to the specified phone number | +| [TransferMode](documentation/models/TransferMode.md) | Specifies how calls are transferred to group members | +| [TransferInfo](documentation/models/TransferInfo.md) | | +| [NoAnswerAction](documentation/models/NoAnswerAction.md) | Specifies the type of action to be taken if: members are available but no one answers, or all members are busy/unavailable. This option is available for Business hours only. For simultaneous transfer mode only 'WaitPrimaryMembers' and 'WaitPrimaryAndOverflowMembers' are supported | +| [FixedOrderAgents](documentation/models/FixedOrderAgents.md) | | +| [HoldAudioInterruptionMode](documentation/models/HoldAudioInterruptionMode.md) | Connecting audio interruption mode | +| [HoldTimeExpirationAction](documentation/models/HoldTimeExpirationAction.md) | Specifies the type of action to be taken after the hold time (waiting for an available call queue member) expires. If 'TransferToExtension' option is selected, the extension specified in `transfer` field is used. The default value is `Voicemail` | +| [MaxCallersAction](documentation/models/MaxCallersAction.md) | Specifies the type of action to be taken if count of callers on hold exceeds the supported maximum | +| [TransferExtensionInfo](documentation/models/TransferExtensionInfo.md) | | +| [TransferInfoAction](documentation/models/TransferInfoAction.md) | Event that initiates transferring to the specified extension | +| [FixedOrderAgentsExtensionInfo](documentation/models/FixedOrderAgentsExtensionInfo.md) | | +| [TransferredExtension](documentation/models/TransferredExtension.md) | Transfer extension settings, set/returned if `callHandlingAction` is specified as `TransferToExtension` | +| [RecipientInfo](documentation/models/RecipientInfo.md) | Recipient data | +| [ActionType](documentation/models/ActionType.md) | Specifies the action that should be executed on a missed call. It can either be playing greeting message and disconnection, or sending call to a calling group. If 'ConnectToExtension' is set, then calling group extension should be specified | +| [MissedCallExtensionInfo](documentation/models/MissedCallExtensionInfo.md) | Specifies an extension (a calling group) which should be used for the missed call transfer. Returned only if the `actionType` is set to 'ConnectToExtension' | +| [MissedCallExtensionInfoExternalNumber](documentation/models/MissedCallExtensionInfoExternalNumber.md) | Specifies an external PSTN number which should be used for the missed call transfer. Returned only if the actionType is set to `ConnectToExternalNumber` | +| [CallersInfoRequest](documentation/models/CallersInfoRequest.md) | | +| [CreateAnsweringRuleRequestCallHandlingAction](documentation/models/CreateAnsweringRuleRequestCallHandlingAction.md) | Specifies how incoming calls are forwarded | +| [CreateAnsweringRuleRequestScreening](documentation/models/CreateAnsweringRuleRequestScreening.md) | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| [CustomAnsweringRuleInfoType](documentation/models/CustomAnsweringRuleInfoType.md) | Type of an answering rule | +| [CustomAnsweringRuleInfoCallHandlingAction](documentation/models/CustomAnsweringRuleInfoCallHandlingAction.md) | Specifies how incoming calls are forwarded | +| [CustomAnsweringRuleInfoScreening](documentation/models/CustomAnsweringRuleInfoScreening.md) | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| [ForwardingInfoCreateRuleRequest](documentation/models/ForwardingInfoCreateRuleRequest.md) | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| [UpdateAnsweringRuleRequestCallHandlingAction](documentation/models/UpdateAnsweringRuleRequestCallHandlingAction.md) | Specifies how incoming calls are forwarded | +| [UpdateAnsweringRuleRequestType](documentation/models/UpdateAnsweringRuleRequestType.md) | Type of an answering rule | +| [UpdateAnsweringRuleRequestScreening](documentation/models/UpdateAnsweringRuleRequestScreening.md) | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| [ForwardingInfoCreateRuleRequestRingingMode](documentation/models/ForwardingInfoCreateRuleRequestRingingMode.md) | Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ringing all at the same time. The default value is 'Sequentially' | +| [ForwardingRuleCreateRequest](documentation/models/ForwardingRuleCreateRequest.md) | | +| [ForwardingNumberInfoRulesCreateRuleRequest](documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md) | | +| [ForwardingNumberInfoRulesCreateRuleRequestType](documentation/models/ForwardingNumberInfoRulesCreateRuleRequestType.md) | Forwarding phone number type | +| [AddressBookBulkUploadResource](documentation/models/AddressBookBulkUploadResource.md) | | +| [AddressBookBulkContactResource](documentation/models/AddressBookBulkContactResource.md) | | +| [AddressBookBulkContactAddressInfo](documentation/models/AddressBookBulkContactAddressInfo.md) | | +| [AddressBookBulkUploadResponseStatus](documentation/models/AddressBookBulkUploadResponseStatus.md) | Task status | +| [AddressBookBulkUploadTaskResult](documentation/models/AddressBookBulkUploadTaskResult.md) | | +| [FavoriteContactResource](documentation/models/FavoriteContactResource.md) | | +| [UserContactsNavigationInfo](documentation/models/UserContactsNavigationInfo.md) | Information on navigation | +| [UserContactsPagingInfo](documentation/models/UserContactsPagingInfo.md) | Information on paging | +| [UserContactsGroupsInfo](documentation/models/UserContactsGroupsInfo.md) | Information on address book groups | +| [PersonalContactResourceAvailability](documentation/models/PersonalContactResourceAvailability.md) | This property has a special meaning only on Address Book Sync (e.g. a contact can be `Deleted`). For simple contact list reading it has always the default value - `Alive` | +| [ContactAddressInfo](documentation/models/ContactAddressInfo.md) | | +| [UserContactsNavigationInfoUri](documentation/models/UserContactsNavigationInfoUri.md) | Canonical URI for a corresponding page of a list | +| [SyncInfo](documentation/models/SyncInfo.md) | | +| [SyncInfoSyncType](documentation/models/SyncInfoSyncType.md) | | +| [CallQueueInfo](documentation/models/CallQueueInfo.md) | | +| [CallQueueInfoStatus](documentation/models/CallQueueInfoStatus.md) | Call queue status | +| [CallQueueInfoSubType](documentation/models/CallQueueInfoSubType.md) | Indicates whether it is an emergency call queue extension or not | +| [CallQueueDetailsStatus](documentation/models/CallQueueDetailsStatus.md) | Call queue status | +| [CallQueueDetailsSubType](documentation/models/CallQueueDetailsSubType.md) | Indicates whether it is an emergency call queue extension or not | +| [CallQueueServiceLevelSettings](documentation/models/CallQueueServiceLevelSettings.md) | Call queue service level settings | +| [AlertTimer](documentation/models/AlertTimer.md) | Alert timer or pickup setting. Delay time in seconds before call queue group members are notified when calls are queued | +| [CallQueueMemberInfo](documentation/models/CallQueueMemberInfo.md) | | +| [BulkAssignItem](documentation/models/BulkAssignItem.md) | | +| [QueueShortInfoResource](documentation/models/QueueShortInfoResource.md) | | +| [CallQueueIdResource](documentation/models/CallQueueIdResource.md) | | +| [CallQueueMemberPresence](documentation/models/CallQueueMemberPresence.md) | | +| [CallQueueMember](documentation/models/CallQueueMember.md) | Call queue member information | +| [SiteResource](documentation/models/SiteResource.md) | Site extension information | +| [CallQueueUpdateMemberPresence](documentation/models/CallQueueUpdateMemberPresence.md) | | +| [CallQueueMemberId](documentation/models/CallQueueMemberId.md) | Call queue member information | +| [PresenceNavigationInfo](documentation/models/PresenceNavigationInfo.md) | Information on navigation | +| [PresencePagingInfo](documentation/models/PresencePagingInfo.md) | Information on paging | +| [GetPresenceInfoCallerIdVisibility](documentation/models/GetPresenceInfoCallerIdVisibility.md) | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | +| [GetPresenceInfoDndStatus](documentation/models/GetPresenceInfoDndStatus.md) | Extended DnD (Do not Disturb) status. Cannot be set for Department/Announcement/Voicemail (Take Messages Only)/Fax User/Shared Lines Group/Paging Only Group/IVR Menu/Application Extension/Park Location extensions. The 'DoNotAcceptDepartmentCalls' and 'TakeDepartmentCallsOnly' values are applicable only for extensions - members of a Department; if these values are set for department outsiders, the 400 Bad Request error code is returned. The 'TakeDepartmentCallsOnly' status can be set through the old RingCentral user interface and is available for some migrated accounts only. | +| [GetPresenceExtensionInfo](documentation/models/GetPresenceExtensionInfo.md) | Information on extension, for which this presence data is returned | +| [GetPresenceInfoPresenceStatus](documentation/models/GetPresenceInfoPresenceStatus.md) | Aggregated presence status, calculated from a number of sources | +| [GetPresenceInfoTelephonyStatus](documentation/models/GetPresenceInfoTelephonyStatus.md) | Telephony presence status | +| [GetPresenceInfoUserStatus](documentation/models/GetPresenceInfoUserStatus.md) | User-defined presence status (as previously published by the user) | +| [GetPresenceInfoMeetingStatus](documentation/models/GetPresenceInfoMeetingStatus.md) | RingCentral Meetings presence | +| [ActiveCallInfo](documentation/models/ActiveCallInfo.md) | | +| [ActiveCallInfoDirection](documentation/models/ActiveCallInfoDirection.md) | | +| [ActiveCallInfoTelephonyStatus](documentation/models/ActiveCallInfoTelephonyStatus.md) | Telephony presence status | +| [DetailedCallInfo](documentation/models/DetailedCallInfo.md) | | +| [CallInfoCq](documentation/models/CallInfoCq.md) | Primary/additional CQ information | +| [PrimaryCqInfo](documentation/models/PrimaryCqInfo.md) | Primary call session information. Supported for Call Queues only | +| [AdditionalCqInfo](documentation/models/AdditionalCqInfo.md) | Additional call session information. Supported for Call Queues only | +| [PrimaryCqInfoType](documentation/models/PrimaryCqInfoType.md) | Call information to be displayed as 'Line 1' for a call queue call session | +| [AdditionalCqInfoType](documentation/models/AdditionalCqInfoType.md) | Call information to be displayed as 'Line 2' for a call queue call session | +| [PresenceNavigationInfoUri](documentation/models/PresenceNavigationInfoUri.md) | Canonical URI for the corresponding page of the list | +| [ExtensionCallQueuePresence](documentation/models/ExtensionCallQueuePresence.md) | | +| [PresenceCallQueueInfo](documentation/models/PresenceCallQueueInfo.md) | Call queue information | +| [ExtensionCallQueueUpdatePresence](documentation/models/ExtensionCallQueueUpdatePresence.md) | | +| [CallQueueId](documentation/models/CallQueueId.md) | Call queue information | +| [PresenceInfoRequestUserStatus](documentation/models/PresenceInfoRequestUserStatus.md) | | +| [PresenceInfoRequestDndStatus](documentation/models/PresenceInfoRequestDndStatus.md) | | +| [PresenceInfoRequestCallerIdVisibility](documentation/models/PresenceInfoRequestCallerIdVisibility.md) | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | +| [PresenceInfoResponseUserStatus](documentation/models/PresenceInfoResponseUserStatus.md) | | +| [PresenceInfoResponseDndStatus](documentation/models/PresenceInfoResponseDndStatus.md) | | +| [PresenceInfoResponseCallerIdVisibility](documentation/models/PresenceInfoResponseCallerIdVisibility.md) | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | +| [PresenceInfoResponseMeetingStatus](documentation/models/PresenceInfoResponseMeetingStatus.md) | Meetings presence status | +| [PresenceInfoResponseTelephonyStatus](documentation/models/PresenceInfoResponseTelephonyStatus.md) | Telephony presence status. Returned if telephony status is changed | +| [PresenceInfoResponsePresenceStatus](documentation/models/PresenceInfoResponsePresenceStatus.md) | Aggregated presence status, calculated from a number of sources | +| [UnifiedPresenceStatus](documentation/models/UnifiedPresenceStatus.md) | Aggregated presence status of the user | +| [UnifiedPresenceGlip](documentation/models/UnifiedPresenceGlip.md) | Returned if _Glip_ feature is switched on | +| [UnifiedPresenceTelephony](documentation/models/UnifiedPresenceTelephony.md) | Returned if _BLF_ feature is switched on | +| [UnifiedPresenceMeeting](documentation/models/UnifiedPresenceMeeting.md) | Returned if _Meetings_ feature is switched on | +| [UnifiedPresenceGlipStatus](documentation/models/UnifiedPresenceGlipStatus.md) | Glip connection status calculated from all user's apps. Returned always for the requester's extension; returned for another users if their glip visibility is set to 'Visible' | +| [UnifiedPresenceGlipVisibility](documentation/models/UnifiedPresenceGlipVisibility.md) | Visibility setting allowing other users to see the user's Glip presence status; returned only for requester's extension | +| [UnifiedPresenceGlipAvailability](documentation/models/UnifiedPresenceGlipAvailability.md) | Shows whether user wants to receive Glip notifications or not. | +| [UnifiedPresenceTelephonyStatus](documentation/models/UnifiedPresenceTelephonyStatus.md) | Telephony status calculated from all user's phone numbers. Returned always for the requester's extension; returned for another users if their telephony visibility is set to 'Visible' | +| [UnifiedPresenceTelephonyVisibility](documentation/models/UnifiedPresenceTelephonyVisibility.md) | Specifies if the user's phone presence status is visible to other users; returned only for requester's extension | +| [UnifiedPresenceTelephonyAvailability](documentation/models/UnifiedPresenceTelephonyAvailability.md) | Telephony DND status. Returned if _DND_ feature is switched on | +| [UnifiedPresenceMeetingStatus](documentation/models/UnifiedPresenceMeetingStatus.md) | Meeting status calculated from all user`s meetings | +| [UpdateUnifiedPresenceGlip](documentation/models/UpdateUnifiedPresenceGlip.md) | | +| [UpdateUnifiedPresenceTelephony](documentation/models/UpdateUnifiedPresenceTelephony.md) | | +| [UpdateUnifiedPresenceGlipVisibility](documentation/models/UpdateUnifiedPresenceGlipVisibility.md) | Visibility setting allowing other users to see Glip presence status | +| [UpdateUnifiedPresenceGlipAvailability](documentation/models/UpdateUnifiedPresenceGlipAvailability.md) | Availability setting specifying whether to receive Glip notifications or not | +| [UpdateUnifiedPresenceTelephonyAvailability](documentation/models/UpdateUnifiedPresenceTelephonyAvailability.md) | Telephony DND status | +| [EmergencyLocationsPaging](documentation/models/EmergencyLocationsPaging.md) | | +| [CommonEmergencyLocationAddressInfo](documentation/models/CommonEmergencyLocationAddressInfo.md) | | +| [ShortSiteInfo](documentation/models/ShortSiteInfo.md) | | +| [AddressStatus](documentation/models/AddressStatus.md) | Emergency address status | +| [UsageStatus](documentation/models/UsageStatus.md) | Status of emergency response location usage. | +| [SyncStatus](documentation/models/SyncStatus.md) | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| [EmergencyAddressType](documentation/models/EmergencyAddressType.md) | | +| [Visibility](documentation/models/Visibility.md) | Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array | +| [LocationOwnerInfo](documentation/models/LocationOwnerInfo.md) | | +| [CommonEmergencyLocationAddressInfoAu](documentation/models/CommonEmergencyLocationAddressInfoAu.md) | | +| [CommonEmergencyLocationAddressInfoFr](documentation/models/CommonEmergencyLocationAddressInfoFr.md) | | +| [EmergencyLocationRequestResourceAddressStatus](documentation/models/EmergencyLocationRequestResourceAddressStatus.md) | Emergency address status | +| [EmergencyLocationRequestResourceUsageStatus](documentation/models/EmergencyLocationRequestResourceUsageStatus.md) | Status of an emergency response location usage. | +| [EmergencyLocationRequestResourceVisibility](documentation/models/EmergencyLocationRequestResourceVisibility.md) | Visibility of an emergency response location. If `Private` is set, then a location is visible only for restricted number of users, specified in `owners` array | +| [GetLocationDeletionMultiResponseDeletion](documentation/models/GetLocationDeletionMultiResponseDeletion.md) | | +| [Reassignment](documentation/models/Reassignment.md) | | +| [LocationDeletionInfo](documentation/models/LocationDeletionInfo.md) | | +| [LocationDeletionInfoDeletion](documentation/models/LocationDeletionInfoDeletion.md) | Identifies the possibility and status of emergency location deletion | +| [LocationDeletionErrorInfo](documentation/models/LocationDeletionErrorInfo.md) | | +| [AutomaticLocationUpdatesTaskInfoStatus](documentation/models/AutomaticLocationUpdatesTaskInfoStatus.md) | Status of a task | +| [AutomaticLocationUpdatesTaskInfoType](documentation/models/AutomaticLocationUpdatesTaskInfoType.md) | Type of task | +| [TaskResultInfo](documentation/models/TaskResultInfo.md) | Task detailed result. Returned for failed and completed tasks | +| [TaskResultRecord](documentation/models/TaskResultRecord.md) | | +| [TaskResultRecordErrorsInfo](documentation/models/TaskResultRecordErrorsInfo.md) | | +| [AutomaticLocationUpdatesUserInfo](documentation/models/AutomaticLocationUpdatesUserInfo.md) | | +| [AutomaticLocationUpdatesUserInfoType](documentation/models/AutomaticLocationUpdatesUserInfoType.md) | User extension type | +| [AutomaticLocationUpdatesSiteInfo](documentation/models/AutomaticLocationUpdatesSiteInfo.md) | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | +| [EmergencyAddressAutoUpdateSiteInfo](documentation/models/EmergencyAddressAutoUpdateSiteInfo.md) | | +| [EmergencyAddressInfo](documentation/models/EmergencyAddressInfo.md) | | +| [EmergencyLocationInfo](documentation/models/EmergencyLocationInfo.md) | Emergency response location information | +| [EmergencyAddressInfo_1](documentation/models/EmergencyAddressInfo1.md) | | +| [EmergencyAddressInfo_2](documentation/models/EmergencyAddressInfo2.md) | | +| [EmergencyAddressInfo_3](documentation/models/EmergencyAddressInfo3.md) | | +| [EmergencyAddressInfo_1SyncStatus](documentation/models/EmergencyAddressInfo1SyncStatus.md) | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | +| [EmergencyAddressInfo_2SyncStatus](documentation/models/EmergencyAddressInfo2SyncStatus.md) | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | +| [EmergencyAddressInfo_3SyncStatus](documentation/models/EmergencyAddressInfo3SyncStatus.md) | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | +| [BulkTaskInfo](documentation/models/BulkTaskInfo.md) | | +| [BulkTaskInfoStatus](documentation/models/BulkTaskInfoStatus.md) | Status of a task | +| [PublicIpRangeInfo](documentation/models/PublicIpRangeInfo.md) | | +| [PrivateIpRangeInfo](documentation/models/PrivateIpRangeInfo.md) | | +| [PrivateIpRangeInfoRequest](documentation/models/PrivateIpRangeInfoRequest.md) | | +| [LocationUpdatesEmergencyAddressInfoRequest](documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md) | Emergency address assigned to the switch. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned | +| [ErlLocationInfo](documentation/models/ErlLocationInfo.md) | Emergency response location information | +| [SwitchSiteInfo](documentation/models/SwitchSiteInfo.md) | | +| [SwitchValidated](documentation/models/SwitchValidated.md) | | +| [SwitchValidatedStatus](documentation/models/SwitchValidatedStatus.md) | Validation result status | +| [ValidationError](documentation/models/ValidationError.md) | | +| [WirelessPointValidated](documentation/models/WirelessPointValidated.md) | | +| [WirelessPointValidatedStatus](documentation/models/WirelessPointValidatedStatus.md) | Validation result status | +| [AutomaticLocationUpdatesDeviceInfo](documentation/models/AutomaticLocationUpdatesDeviceInfo.md) | | +| [AutomaticLocationUpdatesDeviceType](documentation/models/AutomaticLocationUpdatesDeviceType.md) | Device type | +| [AutomaticLocationUpdatesModelInfo](documentation/models/AutomaticLocationUpdatesModelInfo.md) | HardPhone model information | +| [AutomaticLocationUpdatesPhoneLine](documentation/models/AutomaticLocationUpdatesPhoneLine.md) | | +| [AutomaticLocationUpdatesModelFeature](documentation/models/AutomaticLocationUpdatesModelFeature.md) | | +| [AutomaticLocationUpdatesPhoneLineType](documentation/models/AutomaticLocationUpdatesPhoneLineType.md) | | +| [AutomaticLocationUpdatesPhoneNumberInfo](documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md) | | +| [ScheduleMeetingResponse](documentation/models/ScheduleMeetingResponse.md) | | +| [AccountLockSettingRecordResponse](documentation/models/AccountLockSettingRecordResponse.md) | | +| [MeetingResponseResourceMeetingType](documentation/models/MeetingResponseResourceMeetingType.md) | | +| [MeetingLinks](documentation/models/MeetingLinks.md) | Meeting links | +| [MeetingScheduleResource](documentation/models/MeetingScheduleResource.md) | Timing of a meeting | +| [HostInfoRequest](documentation/models/HostInfoRequest.md) | Meeting host information | +| [MeetingResponseResourceAudioOptions](documentation/models/MeetingResponseResourceAudioOptions.md) | | +| [RecurrenceInfo](documentation/models/RecurrenceInfo.md) | | +| [MeetingResponseResourceAutoRecordType](documentation/models/MeetingResponseResourceAutoRecordType.md) | Automatic record type | +| [MeetingOccurrenceInfo](documentation/models/MeetingOccurrenceInfo.md) | | +| [MeetingsTimezoneResource](documentation/models/MeetingsTimezoneResource.md) | | +| [MeetingFrequency](documentation/models/MeetingFrequency.md) | Recurrence time frame | +| [WeekDay](documentation/models/WeekDay.md) | This field is used only if you're scheduling a recurring meeting of type `3` to state a specific day in a week when the monthly meeting should recur; it works together with `MonthlyByWeek` field. The values are: 1 - Sunday; 2 - Monday; 3 - Tuesday; 4 - Wednesday; 5 - Thursday; 6 - Friday; 7- Saturday | +| [MonthlyWeek](documentation/models/MonthlyWeek.md) | Supported together with `weeklyByDay` | +| [MeetingRecordings](documentation/models/MeetingRecordings.md) | | +| [MeetingRecordingsPagingInfo](documentation/models/MeetingRecordingsPagingInfo.md) | | +| [MeetingRecordingsNavigationInfo](documentation/models/MeetingRecordingsNavigationInfo.md) | | +| [MeetingInfo](documentation/models/MeetingInfo.md) | | +| [MeetingRecordingInfo](documentation/models/MeetingRecordingInfo.md) | | +| [MeetingRecordingInfoContentType](documentation/models/MeetingRecordingInfoContentType.md) | | +| [MeetingRecordingInfoStatus](documentation/models/MeetingRecordingInfoStatus.md) | | +| [MeetingRecordingsNavigationInfoUri](documentation/models/MeetingRecordingsNavigationInfoUri.md) | Canonical URI for the corresponding page of the list | +| [MeetingsPagingInfo](documentation/models/MeetingsPagingInfo.md) | | +| [MeetingsNavigationInfo](documentation/models/MeetingsNavigationInfo.md) | | +| [MeetingsNavigationInfoUri](documentation/models/MeetingsNavigationInfoUri.md) | | +| [MeetingRequestResourceMeetingType](documentation/models/MeetingRequestResourceMeetingType.md) | | +| [MeetingRequestResourceAudioOptions](documentation/models/MeetingRequestResourceAudioOptions.md) | | +| [MeetingRequestResourceAutoRecordType](documentation/models/MeetingRequestResourceAutoRecordType.md) | Automatic record type | +| [UserMeetingRecordingSetting](documentation/models/UserMeetingRecordingSetting.md) | Meeting recording settings locked on account level | +| [ScheduleUserMeetingInfo](documentation/models/ScheduleUserMeetingInfo.md) | Scheduling meeting settings locked on account level \|\| Settings defining how to schedule user meetings | +| [TelephonyUserMeetingSettings](documentation/models/TelephonyUserMeetingSettings.md) | | +| [UserInMeetingResponse](documentation/models/UserInMeetingResponse.md) | | +| [AutoRecording](documentation/models/AutoRecording.md) | Automatic recording (local/cloud/none) of meetings as they start | +| [ScheduleUserMeetingInfoAudioOptions](documentation/models/ScheduleUserMeetingInfoAudioOptions.md) | | +| [RequirePasswordForPmiMeetings](documentation/models/RequirePasswordForPmiMeetings.md) | Specifies whether to require a password for meetings using Personal Meeting ID (PMI). The supported values are: 'none', 'all' and 'jbhOnly' (joined before host only) | +| [GlobalDialInCountryResponse](documentation/models/GlobalDialInCountryResponse.md) | | +| [MeetingExternalUserInfoResource](documentation/models/MeetingExternalUserInfoResource.md) | | +| [DialInNumberResource](documentation/models/DialInNumberResource.md) | | +| [MeetingsCountryResource](documentation/models/MeetingsCountryResource.md) | | +| [AssistedUserResource](documentation/models/AssistedUserResource.md) | | +| [AssistantResource](documentation/models/AssistantResource.md) | | +| [ExtensionWithRolesResource](documentation/models/ExtensionWithRolesResource.md) | | +| [AssignedRoleResource](documentation/models/AssignedRoleResource.md) | | +| [Scope](documentation/models/Scope.md) | Specifies resource for permission | +| [PermissionIdResource](documentation/models/PermissionIdResource.md) | | +| [PermissionIdResourceSiteCompatible](documentation/models/PermissionIdResourceSiteCompatible.md) | Site compatibility flag set for permission | +| [PermissionsCapabilities](documentation/models/PermissionsCapabilities.md) | Advanced permissions capabilities. Returned if `advancedPermissions` query parameter is set to `true`. | +| [CallMonitoringExtensionInfo](documentation/models/CallMonitoringExtensionInfo.md) | | +| [CallMonitoringExtensionInfoPermissions](documentation/models/CallMonitoringExtensionInfoPermissions.md) | | +| [CallMonitoringGroupMemberInfo](documentation/models/CallMonitoringGroupMemberInfo.md) | | +| [CallMonitoringGroupMemberInfoPermissions](documentation/models/CallMonitoringGroupMemberInfoPermissions.md) | Call monitoring permission; multiple values are allowed: - `Monitoring` - User can monitor a group; - `Monitored` - User can be monitored. | +| [ActionIds](documentation/models/ActionIds.md) | | +| [ExcludeActionIds](documentation/models/ExcludeActionIds.md) | | +| [AccountHistoryPublicRecord](documentation/models/AccountHistoryPublicRecord.md) | | +| [AccountHistoryPaging](documentation/models/AccountHistoryPaging.md) | | +| [AccountHistoryRecordPublicInitiator](documentation/models/AccountHistoryRecordPublicInitiator.md) | Event initiator info | +| [AccountHistoryRecordTarget](documentation/models/AccountHistoryRecordTarget.md) | Action target object (company/extension) | +| [AccountHistoryRecordPublicDetails](documentation/models/AccountHistoryRecordPublicDetails.md) | | +| [ObjectType](documentation/models/ObjectType.md) | Type of the entity. | +| [AccountHistoryRecordDetailsParameters](documentation/models/AccountHistoryRecordDetailsParameters.md) | | +| [PicMessageTypeEnum](documentation/models/PicMessageTypeEnum.md) | Type of messages to be collected | +| [MessageStoreReportStatus](documentation/models/MessageStoreReportStatus.md) | Status of a message store report task | +| [ArchiveInfo](documentation/models/ArchiveInfo.md) | | +| [ContactResourceType](documentation/models/ContactResourceType.md) | Contact type | +| [ContactResourceStatus](documentation/models/ContactResourceStatus.md) | Contact status | +| [AccountResource](documentation/models/AccountResource.md) | | +| [PhoneNumberResource](documentation/models/PhoneNumberResource.md) | | +| [AccountDirectoryProfileImageResource](documentation/models/AccountDirectoryProfileImageResource.md) | | +| [BusinessSiteResource](documentation/models/BusinessSiteResource.md) | | +| [DirectoryRoleResource](documentation/models/DirectoryRoleResource.md) | | +| [CallQueueResource](documentation/models/CallQueueResource.md) | | +| [CustomFieldResource](documentation/models/CustomFieldResource.md) | | +| [GroupResource](documentation/models/GroupResource.md) | | +| [CostCenterResource](documentation/models/CostCenterResource.md) | | +| [ExternalIntegrationResource](documentation/models/ExternalIntegrationResource.md) | | +| [ContactSubTypeEnum](documentation/models/ContactSubTypeEnum.md) | Extension subtype | +| [PhoneNumberResourceUsageType](documentation/models/PhoneNumberResourceUsageType.md) | Usage type of phone number | +| [PerPage_2](documentation/models/PerPage2.md) | | +| [SearchFields](documentation/models/SearchFields.md) | | +| [SearchDirectoryContactType](documentation/models/SearchDirectoryContactType.md) | Type of directory contact to filter | +| [ExtensionStatuses](documentation/models/ExtensionStatuses.md) | | +| [OrderBy](documentation/models/OrderBy.md) | | +| [FieldName](documentation/models/FieldName.md) | Field name by which to sort the contacts | +| [OrderByDirection](documentation/models/OrderByDirection.md) | Sorting direction | +| [FederatedAccountResource](documentation/models/FederatedAccountResource.md) | | +| [FederationType](documentation/models/FederationType.md) | Federation type | +| [PagingGroupExtensionInfo](documentation/models/PagingGroupExtensionInfo.md) | | +| [PagingDeviceInfo](documentation/models/PagingDeviceInfo.md) | | +| [SiteOperatorReference](documentation/models/SiteOperatorReference.md) | Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled | +| [SiteMemberInfo](documentation/models/SiteMemberInfo.md) | | +| [SiteIvrTopMenu](documentation/models/SiteIvrTopMenu.md) | Top IVR Menu extension. Mandatory for MultiLevel mode | +| [SiteIvrActions](documentation/models/SiteIvrActions.md) | Keys handling settings | +| [SiteIvrActionsInput](documentation/models/SiteIvrActionsInput.md) | | +| [SiteIvrActionsAction](documentation/models/SiteIvrActionsAction.md) | Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput only; - Disconnect - end call, for NoInput only. | +| [SiteIvrActionsExtensionInfo](documentation/models/SiteIvrActionsExtensionInfo.md) | Extension information | +| [SiteIvrTopMenuUpdate](documentation/models/SiteIvrTopMenuUpdate.md) | Top IVR Menu extension | +| [SiteIvrActionsUpdate](documentation/models/SiteIvrActionsUpdate.md) | Keys handling settings | +| [SiteIvrActionsUpdateInput](documentation/models/SiteIvrActionsUpdateInput.md) | | +| [SiteIvrActionsUpdateAction](documentation/models/SiteIvrActionsUpdateAction.md) | Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput and "0" (zero) only; - Disconnect - end call, for NoInput only. | +| [SiteIvrActionsExtensionInfoUpdate](documentation/models/SiteIvrActionsExtensionInfoUpdate.md) | Extension information | +| [Provider](documentation/models/Provider.md) | Video provider of the user | +| [UserLicenseType](documentation/models/UserLicenseType.md) | Specifies if the user is 'paid' (has meeting license) or 'free' (w/o meeting license) | +| [PagerCallerInfoRequest](documentation/models/PagerCallerInfoRequest.md) | Sender of a pager message. | +| [GetInternalTextMessageInfoResponseType](documentation/models/GetInternalTextMessageInfoResponseType.md) | Message type | +| [ActivePermissionResource](documentation/models/ActivePermissionResource.md) | | +| [RoleIdResource](documentation/models/RoleIdResource.md) | | +| [Scopes](documentation/models/Scopes.md) | | +| [PermissionResourceSiteCompatible](documentation/models/PermissionResourceSiteCompatible.md) | Site compatibility flag set for permission | +| [PermissionCategoryIdResource](documentation/models/PermissionCategoryIdResource.md) | | +| [ForwardingNumberInfoFeatures](documentation/models/ForwardingNumberInfoFeatures.md) | | +| [CreateForwardingNumberDeviceInfo](documentation/models/CreateForwardingNumberDeviceInfo.md) | Forwarding device information. Applicable for 'PhoneLine' type only. Cannot be specified together with 'phoneNumber' parameter | +| [ForwardingNumberInfoType](documentation/models/ForwardingNumberInfoType.md) | Forwarding phone number type | +| [ForwardingNumberInfoExtension](documentation/models/ForwardingNumberInfoExtension.md) | Extension information. Returned only if extension type is 'ExtensionApps' | +| [CreateForwardingNumberRequestType](documentation/models/CreateForwardingNumberRequestType.md) | Forwarding/Call flip phone type. If specified, 'label' attribute value is ignored. The default value is 'Other' | +| [ForwardingNumberId](documentation/models/ForwardingNumberId.md) | | +| [ForwardingNumberResourceFeatures](documentation/models/ForwardingNumberResourceFeatures.md) | | +| [ForwardingNumberResourceType](documentation/models/ForwardingNumberResourceType.md) | Forwarding phone number type | +| [UpdateForwardingNumberRequestType](documentation/models/UpdateForwardingNumberRequestType.md) | Forwarding phone number type | +| [FaxRequestTo](documentation/models/FaxRequestTo.md) | | +| [FaxResponseType](documentation/models/FaxResponseType.md) | Message type - 'Fax' | +| [FaxResponseTo](documentation/models/FaxResponseTo.md) | | +| [MessageAttachmentInfoIntId](documentation/models/MessageAttachmentInfoIntId.md) | | +| [MessageAttachmentInfoIntIdType](documentation/models/MessageAttachmentInfoIntIdType.md) | Type of message attachment | +| [FaxCoverPageInfo](documentation/models/FaxCoverPageInfo.md) | | +| [MakeRingOutCallerInfoRequestFrom](documentation/models/MakeRingOutCallerInfoRequestFrom.md) | Phone number of a caller. This number corresponds to the 1st leg of a RingOut call. This number can be one of the user's configured forwarding numbers or an arbitrary number | +| [MakeRingOutCallerInfoRequestTo](documentation/models/MakeRingOutCallerInfoRequestTo.md) | Phone number of a called party. This number corresponds to the 2nd leg of a RingOut call | +| [MakeRingOutCallerIdInfo](documentation/models/MakeRingOutCallerIdInfo.md) | Phone number which will be displayed to the called party | +| [MakeRingOutCountryInfo](documentation/models/MakeRingOutCountryInfo.md) | Optional. Dialing plan country data. If not specified, then an extension home country is applied by default | +| [RingOutStatusInfo](documentation/models/RingOutStatusInfo.md) | RingOut status information | +| [CallStatus](documentation/models/CallStatus.md) | Status of a call | +| [CallerStatus](documentation/models/CallerStatus.md) | Status of a calling party | +| [CalleeStatus](documentation/models/CalleeStatus.md) | Status of a called party | +| [RolesBusinessSiteResource](documentation/models/RolesBusinessSiteResource.md) | | +| [BasicExtensionInfoResource](documentation/models/BasicExtensionInfoResource.md) | | +| [RolesRegionalSettingsResource](documentation/models/RolesRegionalSettingsResource.md) | | +| [ContactAddressInfoResource](documentation/models/ContactAddressInfoResource.md) | | +| [RolesTimezoneResource](documentation/models/RolesTimezoneResource.md) | | +| [RolesCountryResource](documentation/models/RolesCountryResource.md) | | +| [RolesLanguageResource](documentation/models/RolesLanguageResource.md) | | +| [RolesRegionalSettingsResourceTimeFormat](documentation/models/RolesRegionalSettingsResourceTimeFormat.md) | | +| [CurrencyResource](documentation/models/CurrencyResource.md) | | +| [MessageStoreCallerInfoRequest](documentation/models/MessageStoreCallerInfoRequest.md) | Message sender information. The `phoneNumber` value should be one the account phone numbers allowed to send the current type of messages | +| [SmsRequestCountryInfo](documentation/models/SmsRequestCountryInfo.md) | Target number country information. Either `id` or `isoCode` can be specified. | +| [GetSmsMessageInfoResponseType](documentation/models/GetSmsMessageInfoResponseType.md) | Message type | +| [FeatureInfo](documentation/models/FeatureInfo.md) | | +| [ParamsInfo](documentation/models/ParamsInfo.md) | | +| [ReasonInfo](documentation/models/ReasonInfo.md) | Reason for the feature unavailability. Returned only if `available` is set to `false` | +| [ReasonInfoCode](documentation/models/ReasonInfoCode.md) | Reason code | +| [CallerBlockingSettingsMode](documentation/models/CallerBlockingSettingsMode.md) | Call blocking options: either specific or all calls and faxes | +| [CallerBlockingSettingsNoCallerId](documentation/models/CallerBlockingSettingsNoCallerId.md) | Determines how to handle calls with no caller ID in `Specific` mode | +| [CallerBlockingSettingsPayPhones](documentation/models/CallerBlockingSettingsPayPhones.md) | Blocking settings for pay phones | +| [BlockedCallerGreetingInfo](documentation/models/BlockedCallerGreetingInfo.md) | | +| [CallerBlockingSettingsUpdateMode](documentation/models/CallerBlockingSettingsUpdateMode.md) | Call blocking options: either specific or all calls and faxes | +| [CallerBlockingSettingsUpdateNoCallerId](documentation/models/CallerBlockingSettingsUpdateNoCallerId.md) | Determines how to handle calls with no caller ID in 'Specific' mode | +| [CallerBlockingSettingsUpdatePayPhones](documentation/models/CallerBlockingSettingsUpdatePayPhones.md) | Blocking settings for pay phones | +| [NotificationDeliveryModeRequest](documentation/models/NotificationDeliveryModeRequest.md) | Notification delivery transport information | +| [MobileDeliveryModeRequest](documentation/models/MobileDeliveryModeRequest.md) | | +| [PubNubDeliveryModeRequest](documentation/models/PubNubDeliveryModeRequest.md) | | +| [MobileDeliveryModeRequestTransportType](documentation/models/MobileDeliveryModeRequestTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [PubNubDeliveryModeRequestTransportType](documentation/models/PubNubDeliveryModeRequestTransportType.md) | The transport type for this subscription, or the channel by which an app should be notified of an event | +| [CountryInfoMinimalModel](documentation/models/CountryInfoMinimalModel.md) | | +| [LocationInfo](documentation/models/LocationInfo.md) | | +| [LocationStateInfo](documentation/models/LocationStateInfo.md) | Information on a state this location belongs to | +| [DeviceInfoRequest](documentation/models/DeviceInfoRequest.md) | Device information | +| [SipInfoRequest](documentation/models/SipInfoRequest.md) | | +| [SoftPhoneLineReassignment](documentation/models/SoftPhoneLineReassignment.md) | Supported for Softphone clients only. If 'SoftphoneLineReassignment' feature is enabled the reassignment process can be initialized, however if there is no DL for the given user's device then SPR-131 error code will be returned. | +| [SipInfoRequestTransport](documentation/models/SipInfoRequestTransport.md) | Supported transport. SIP info will be returned for this transport if supported | +| [SipRegistrationDeviceInfo](documentation/models/SipRegistrationDeviceInfo.md) | | +| [SipInfoResponse](documentation/models/SipInfoResponse.md) | | +| [SipFlagsResponse](documentation/models/SipFlagsResponse.md) | SIP flags information | +| [SipRegistrationDeviceInfoType](documentation/models/SipRegistrationDeviceInfoType.md) | Device type | +| [SipRegistrationDeviceInfoStatus](documentation/models/SipRegistrationDeviceInfoStatus.md) | | +| [DeviceModelInfo](documentation/models/DeviceModelInfo.md) | HardPhone model information | +| [DeviceExtensionInfo](documentation/models/DeviceExtensionInfo.md) | | +| [DeviceEmergencyServiceAddressResourceDefault](documentation/models/DeviceEmergencyServiceAddressResourceDefault.md) | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| [SipRegistrationDeviceEmergencyInfo](documentation/models/SipRegistrationDeviceEmergencyInfo.md) | Emergency response location settings of a device | +| [DevicePhoneLinesInfo](documentation/models/DevicePhoneLinesInfo.md) | | +| [DeviceAddonInfo](documentation/models/DeviceAddonInfo.md) | | +| [DeviceModelInfoFeatures](documentation/models/DeviceModelInfoFeatures.md) | | +| [SipRegistrationDeviceLocationInfo](documentation/models/SipRegistrationDeviceLocationInfo.md) | Company emergency response location details | +| [SipRegistrationDeviceEmergencyInfoAddressStatus](documentation/models/SipRegistrationDeviceEmergencyInfoAddressStatus.md) | Emergency address status | +| [SipRegistrationDeviceEmergencyInfoVisibility](documentation/models/SipRegistrationDeviceEmergencyInfoVisibility.md) | Specifies whether to return only private or only public (company) ERLs (Emergency Response Locations) | +| [SipRegistrationDeviceEmergencyInfoSyncStatus](documentation/models/SipRegistrationDeviceEmergencyInfoSyncStatus.md) | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| [SipRegistrationDeviceEmergencyInfoAddressEditableStatus](documentation/models/SipRegistrationDeviceEmergencyInfoAddressEditableStatus.md) | Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) | +| [DeviceEmergencyServiceAddressResourceAu](documentation/models/DeviceEmergencyServiceAddressResourceAu.md) | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| [DeviceEmergencyServiceAddressResourceFr](documentation/models/DeviceEmergencyServiceAddressResourceFr.md) | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| [LineType](documentation/models/LineType.md) | Type of phone line | +| [DevicePhoneLinesEmergencyAddressInfo](documentation/models/DevicePhoneLinesEmergencyAddressInfo.md) | | +| [DevicePhoneNumberInfo](documentation/models/DevicePhoneNumberInfo.md) | Phone number information | +| [DevicePhoneNumberCountryInfo](documentation/models/DevicePhoneNumberCountryInfo.md) | Brief information on a phone number country | +| [DevicePhoneNumberInfoPaymentType](documentation/models/DevicePhoneNumberInfoPaymentType.md) | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system = ['External', 'TollFree', 'Local'] | +| [DevicePhoneNumberInfoUsageType](documentation/models/DevicePhoneNumberInfoUsageType.md) | | +| [DevicePhoneNumberInfoType](documentation/models/DevicePhoneNumberInfoType.md) | Type of phone number | +| [AuthorizationType](documentation/models/AuthorizationType.md) | | +| [SipInfoResponseTransport](documentation/models/SipInfoResponseTransport.md) | Preferred transport. SIP info will be returned for this transport if supported | +| [JobStatusResponse_1](documentation/models/JobStatusResponse1.md) | | +| [JobStatusResponse_2](documentation/models/JobStatusResponse2.md) | | +| [JobStatusResponse_3](documentation/models/JobStatusResponse3.md) | | +| [JobStatusResponse_4](documentation/models/JobStatusResponse4.md) | | +| [JobStatusResponse_5](documentation/models/JobStatusResponse5.md) | | +| [JobStatusResponse_6](documentation/models/JobStatusResponse6.md) | | +| [JobStatusResponse_7](documentation/models/JobStatusResponse7.md) | | +| [JobStatusResponse_1Status](documentation/models/JobStatusResponse1Status.md) | | +| [SummaryOutput](documentation/models/SummaryOutput.md) | | +| [CaiErrorResponse](documentation/models/CaiErrorResponse.md) | | +| [SummaryOutputUnit](documentation/models/SummaryOutputUnit.md) | | +| [SummaryOutputUnitName](documentation/models/SummaryOutputUnitName.md) | | +| [SummaryTimingsUnit](documentation/models/SummaryTimingsUnit.md) | | +| [CaiErrorCodeResponse](documentation/models/CaiErrorCodeResponse.md) | | +| [ErrorCode](documentation/models/ErrorCode.md) | | +| [JobStatusResponse_2Status](documentation/models/JobStatusResponse2Status.md) | | +| [PunctuateOutput](documentation/models/PunctuateOutput.md) | | +| [JobStatusResponse_3Status](documentation/models/JobStatusResponse3Status.md) | | +| [DiarizedObject](documentation/models/DiarizedObject.md) | | +| [DiarizeSegment](documentation/models/DiarizeSegment.md) | | +| [JobStatusResponse_4Status](documentation/models/JobStatusResponse4Status.md) | | +| [SpeakerIdentificationObject](documentation/models/SpeakerIdentificationObject.md) | | +| [JobStatusResponse_5Status](documentation/models/JobStatusResponse5Status.md) | | +| [TranscribedObject](documentation/models/TranscribedObject.md) | | +| [UtteranceObject](documentation/models/UtteranceObject.md) | | +| [WordSegment](documentation/models/WordSegment.md) | | +| [WordTimingsUnit](documentation/models/WordTimingsUnit.md) | | +| [JobStatusResponse_6Status](documentation/models/JobStatusResponse6Status.md) | | +| [EmotionSegment](documentation/models/EmotionSegment.md) | | +| [Emotion](documentation/models/Emotion.md) | | +| [JobStatusResponse_7Status](documentation/models/JobStatusResponse7Status.md) | | +| [InteractionObject](documentation/models/InteractionObject.md) | | +| [UtteranceInsightsObject](documentation/models/UtteranceInsightsObject.md) | | +| [SpeakerInsightsObject](documentation/models/SpeakerInsightsObject.md) | | +| [ConversationalInsightsUnit](documentation/models/ConversationalInsightsUnit.md) | | +| [UtteranceInsightsUnit](documentation/models/UtteranceInsightsUnit.md) | | +| [UtteranceInsightsUnitName](documentation/models/UtteranceInsightsUnitName.md) | | +| [SpeakerInsightsUnit](documentation/models/SpeakerInsightsUnit.md) | | +| [SpeakerInsightsUnitName](documentation/models/SpeakerInsightsUnitName.md) | | +| [SpeakerInsightsValuesItems](documentation/models/SpeakerInsightsValuesItems.md) | | +| [ConversationalInsightsUnitName](documentation/models/ConversationalInsightsUnitName.md) | | +| [ConversationalInsightsUnitValues](documentation/models/ConversationalInsightsUnitValues.md) | | +| [SummaryType](documentation/models/SummaryType.md) | Type of summary to be computed | +| [SummaryUnit](documentation/models/SummaryUnit.md) | | +| [PagingSchema](documentation/models/PagingSchema.md) | | +| [EnrollmentQuality](documentation/models/EnrollmentQuality.md) | Quality of the enrollment. | +| [EnrollmentInputEncoding](documentation/models/EnrollmentInputEncoding.md) | The encoding of the original audio | +| [EnrollmentPatchInputEncoding](documentation/models/EnrollmentPatchInputEncoding.md) | The encoding of the original audio | +| [AsrInputEncoding](documentation/models/AsrInputEncoding.md) | The encoding of the original audio | +| [AsrInputAudioType](documentation/models/AsrInputAudioType.md) | Type of the audio | +| [SpeechContextPhrasesInput](documentation/models/SpeechContextPhrasesInput.md) | | +| [DiarizeInputEncoding](documentation/models/DiarizeInputEncoding.md) | The encoding of the original audio | +| [DiarizeInputAudioType](documentation/models/DiarizeInputAudioType.md) | Type of the audio | +| [IdentifyInputEncoding](documentation/models/IdentifyInputEncoding.md) | The encoding of the original audio | +| [IdentifyInputAudioType](documentation/models/IdentifyInputAudioType.md) | Type of the audio | +| [InteractionInputEncoding](documentation/models/InteractionInputEncoding.md) | The encoding of the original audio | +| [InteractionInputAudioType](documentation/models/InteractionInputAudioType.md) | Type of the audio | +| [InsightsEnum](documentation/models/InsightsEnum.md) | | +| [NonEnumeratedPagingModel](documentation/models/NonEnumeratedPagingModel.md) | | +| [ContentAttachment](documentation/models/ContentAttachment.md) | | +| [ContentBodyFormatted](documentation/models/ContentBodyFormatted.md) | Text and HTML formatted versions of the content body. | +| [ContentBodyInputFormat](documentation/models/ContentBodyInputFormat.md) | Values can be Text or Html. | +| [ContentCreatedFrom](documentation/models/ContentCreatedFrom.md) | Created from of the content. | +| [ContentSourceType](documentation/models/ContentSourceType.md) | Type of the channel. | +| [ContentType](documentation/models/ContentType.md) | Type of the content. | +| [To](documentation/models/To.md) | | +| [ContentComponents](documentation/models/ContentComponents.md) | | +| [Parameters](documentation/models/Parameters.md) | | +| [SocMsgGender](documentation/models/SocMsgGender.md) | Gender. | +| [IdentityType](documentation/models/IdentityType.md) | Type of the identity. | +| [ScimSchemaSearchResponseSchemas](documentation/models/ScimSchemaSearchResponseSchemas.md) | | +| [ScimSchemaAttribute](documentation/models/ScimSchemaAttribute.md) | | +| [ScimMeta](documentation/models/ScimMeta.md) | Resource metadata | +| [ScimSchemaAttributeType](documentation/models/ScimSchemaAttributeType.md) | | +| [Mutability](documentation/models/Mutability.md) | Indicates the circumstances under which the value of the attribute can be (re)defined | +| [Returned](documentation/models/Returned.md) | Indicates when an attribute and associated values are returned | +| [Uniqueness](documentation/models/Uniqueness.md) | Specifies how the service provider enforces uniqueness of attribute values | +| [ResourceType](documentation/models/ResourceType.md) | | +| [ScimUserSearchResponseSchemas](documentation/models/ScimUserSearchResponseSchemas.md) | | +| [ScimUserAddress](documentation/models/ScimUserAddress.md) | | +| [ScimEmail](documentation/models/ScimEmail.md) | | +| [ScimName](documentation/models/ScimName.md) | | +| [ScimPhoneNumber](documentation/models/ScimPhoneNumber.md) | | +| [ScimPhoto](documentation/models/ScimPhoto.md) | | +| [ScimUserResponseSchemas](documentation/models/ScimUserResponseSchemas.md) | | +| [ScimEnterpriseUser](documentation/models/ScimEnterpriseUser.md) | | +| [ScimUserAddressType](documentation/models/ScimUserAddressType.md) | | +| [ScimEmailType](documentation/models/ScimEmailType.md) | | +| [ScimPhoneNumberType](documentation/models/ScimPhoneNumberType.md) | | +| [ScimPhotoType](documentation/models/ScimPhotoType.md) | | +| [ScimUserSchemas](documentation/models/ScimUserSchemas.md) | | +| [ScimSearchRequestSchemas](documentation/models/ScimSearchRequestSchemas.md) | | +| [ScimPatchOperation](documentation/models/ScimPatchOperation.md) | | +| [ScimUserPatchSchemas](documentation/models/ScimUserPatchSchemas.md) | | +| [Op](documentation/models/Op.md) | | +| [ScimAuthenticationScheme](documentation/models/ScimAuthenticationScheme.md) | | +| [ScimBulkSupported](documentation/models/ScimBulkSupported.md) | | +| [ScimSupported](documentation/models/ScimSupported.md) | | +| [ScimFilterSupported](documentation/models/ScimFilterSupported.md) | | +| [ScimProviderConfigSchemas](documentation/models/ScimProviderConfigSchemas.md) | | +| [ScimResourceTypeSearchResponseSchemas](documentation/models/ScimResourceTypeSearchResponseSchemas.md) | | +| [ScimResourceTypeResponseSchema](documentation/models/ScimResourceTypeResponseSchema.md) | | +| [ScimSchemaExtension](documentation/models/ScimSchemaExtension.md) | | +| [ScimSchemaExtensionSchema](documentation/models/ScimSchemaExtensionSchema.md) | | +| [TimeSettings](documentation/models/TimeSettings.md) | Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive | +| [CallFilters](documentation/models/CallFilters.md) | Optional filters that limit the scope of calls (joined via AND) | +| [AggregationResponseOptions](documentation/models/AggregationResponseOptions.md) | This field provides mapping of possible breakdown options for call aggregation and aggregation formula | +| [DirectGrouping](documentation/models/DirectGrouping.md) | This grouping allows to specify the `groupBy` option by which the data in the response will be grouped | +| [GroupingByMembers](documentation/models/GroupingByMembers.md) | This grouping allows to specify the `groupByMembers` option. The response data will be grouped by users and will only include users that belong to the scope selected in `groupByMembers` field | +| [GroupingOptions](documentation/models/GroupingOptions.md) | The selected grouping option | +| [MembersGroupingOptions](documentation/models/MembersGroupingOptions.md) | The selected data scope | +| [TimeRange](documentation/models/TimeRange.md) | Time range for the request | +| [AdvancedTimeSettings](documentation/models/AdvancedTimeSettings.md) | Allows more granular control over time included in the report | +| [DayOfWeek](documentation/models/DayOfWeek.md) | | +| [HoursInterval](documentation/models/HoursInterval.md) | | +| [ExtensionFilters](documentation/models/ExtensionFilters.md) | Specifies filtering based on extension ids | +| [Direction](documentation/models/Direction.md) | | +| [Origin](documentation/models/Origin.md) | | +| [CallResponse](documentation/models/CallResponse.md) | | +| [CallResult](documentation/models/CallResult.md) | | +| [CallSegmentFilter](documentation/models/CallSegmentFilter.md) | | +| [CallAction](documentation/models/CallAction.md) | | +| [CompanyHoursOptions](documentation/models/CompanyHoursOptions.md) | | +| [CallDurationFilter](documentation/models/CallDurationFilter.md) | Filtering of calls based on the overall call length | +| [TimeSpentFilter](documentation/models/TimeSpentFilter.md) | Filtering of calls based on the time spent by specified mailbox(es) on call | +| [QueueSlaOptions](documentation/models/QueueSlaOptions.md) | | +| [CallType](documentation/models/CallType.md) | | +| [CallSegmentOptions](documentation/models/CallSegmentOptions.md) | Call segment for filtering | +| [CallSegmentLengthFilter](documentation/models/CallSegmentLengthFilter.md) | Duration bounds for the segment | +| [AggregationResponseOptionsCounters](documentation/models/AggregationResponseOptionsCounters.md) | The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required | +| [AggregationResponseOptionsTimers](documentation/models/AggregationResponseOptionsTimers.md) | The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required. If left empty, aggregation will be performed on per-call basis | +| [AggregationResponseOptionsCountersAllCalls](documentation/models/AggregationResponseOptionsCountersAllCalls.md) | Aggregation of all calls count | +| [AggregationResponseOptionsCountersCallsByDirection](documentation/models/AggregationResponseOptionsCountersCallsByDirection.md) | Aggregation of calls count by direction (Inbound, Outbound) | +| [AggregationResponseOptionsCountersCallsByOrigin](documentation/models/AggregationResponseOptionsCountersCallsByOrigin.md) | Aggregation of calls count by origin (Internal, External) | +| [AggregationResponseOptionsCountersCallsByResponse](documentation/models/AggregationResponseOptionsCountersCallsByResponse.md) | Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected) | +| [CallsSegments](documentation/models/CallsSegments.md) | Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| [AggregationResponseOptionsCountersCallsByResult](documentation/models/AggregationResponseOptionsCountersCallsByResult.md) | Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| [AggregationResponseOptionsCountersCallsByCompanyHours](documentation/models/AggregationResponseOptionsCountersCallsByCompanyHours.md) | Aggregation of calls count by company hours (BusinessHours, AfterHours) | +| [AggregationResponseOptionsCountersCallsByQueueSla](documentation/models/AggregationResponseOptionsCountersCallsByQueueSla.md) | Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| [AggregationResponseOptionsCountersCallsByActions](documentation/models/AggregationResponseOptionsCountersCallsByActions.md) | Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) | +| [AggregationResponseOptionsCountersCallsByType](documentation/models/AggregationResponseOptionsCountersCallsByType.md) | Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | +| [AggregationResponseOptionsCountersQueueOpportunities](documentation/models/AggregationResponseOptionsCountersQueueOpportunities.md) | Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External) | +| [AggregationType](documentation/models/AggregationType.md) | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| [AggregationInterval](documentation/models/AggregationInterval.md) | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | +| [QueueOpportunitiesAggregationType](documentation/models/QueueOpportunitiesAggregationType.md) | Counter aggregation type for queue opportunities, limited to `Sum` only. | +| [AllCallsDuration](documentation/models/AllCallsDuration.md) | Aggregation of all calls duration | +| [CallsDurationByDirection](documentation/models/CallsDurationByDirection.md) | Aggregation of calls duration by direction (Inbound, Outbound) | +| [CallsDurationByOrigin](documentation/models/CallsDurationByOrigin.md) | Aggregation of calls duration by origin (Internal, External) | +| [CallsDurationByResponse](documentation/models/CallsDurationByResponse.md) | Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected) | +| [CallsSegmentsDuration](documentation/models/CallsSegmentsDuration.md) | Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| [CallsDurationByResult](documentation/models/CallsDurationByResult.md) | Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| [CallsDurationByCompanyHours](documentation/models/CallsDurationByCompanyHours.md) | Aggregation of calls duration by company hours (BusinessHours, AfterHours) | +| [CallsDurationByQueueSla](documentation/models/CallsDurationByQueueSla.md) | Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping | +| [CallsDurationByType](documentation/models/CallsDurationByType.md) | Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | +| [ResponsePaging](documentation/models/ResponsePaging.md) | Paging information | +| [AggregationResponseData](documentation/models/AggregationResponseData.md) | Aggregation result | +| [AggregationResponseRecord](documentation/models/AggregationResponseRecord.md) | | +| [KeyInfo](documentation/models/KeyInfo.md) | Additional info about the key | +| [CallsTimers](documentation/models/CallsTimers.md) | Call length data for the specified grouping | +| [CallsCounters](documentation/models/CallsCounters.md) | Call volume data for the specified grouping | +| [AllCalls](documentation/models/AllCalls.md) | Data for all calls | +| [CallsByDirection](documentation/models/CallsByDirection.md) | Data for calls with breakdown by direction (Inbound, Outbound) | +| [CallsByOrigin](documentation/models/CallsByOrigin.md) | Data for calls with breakdown by origin (Internal, External) | +| [CallsByResponse](documentation/models/CallsByResponse.md) | Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected) | +| [CallsBySegments](documentation/models/CallsBySegments.md) | Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| [CallsByResult](documentation/models/CallsByResult.md) | Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| [CallsByCompanyHours](documentation/models/CallsByCompanyHours.md) | Data for calls with breakdown by company hours (BusinessHours, AfterHours) | +| [CallsByQueueSla](documentation/models/CallsByQueueSla.md) | Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| [CallsByType](documentation/models/CallsByType.md) | Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow) | +| [ValueType](documentation/models/ValueType.md) | Unit of the result value | +| [CallsByDirectionBreakdown](documentation/models/CallsByDirectionBreakdown.md) | Result breakdown by direction | +| [CallsByOriginBreakdown](documentation/models/CallsByOriginBreakdown.md) | Result breakdown by origin | +| [CallsByResponseBreakdown](documentation/models/CallsByResponseBreakdown.md) | Result breakdown by response | +| [CallsBySegmentsBreakdown](documentation/models/CallsBySegmentsBreakdown.md) | Result breakdown by segments | +| [CallsByResultBreakdown](documentation/models/CallsByResultBreakdown.md) | Result breakdown by call result | +| [CallsByCompanyHoursBreakdown](documentation/models/CallsByCompanyHoursBreakdown.md) | Result breakdown by company hours | +| [CallsByQueueSlaBreakdown](documentation/models/CallsByQueueSlaBreakdown.md) | Result breakdown by queue SLA | +| [CallsByTypeBreakdown](documentation/models/CallsByTypeBreakdown.md) | Result breakdown by type | +| [CallsByActions](documentation/models/CallsByActions.md) | Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) | +| [QueueOpportunities](documentation/models/QueueOpportunities.md) | Queue opportunities data for the specified grouping | +| [CallsByActionsBreakdown](documentation/models/CallsByActionsBreakdown.md) | Result breakdown by actions | +| [TimelineResponseOptions](documentation/models/TimelineResponseOptions.md) | Counters and timers options for calls breakdown | +| [TimelineResponseOptionsCounters](documentation/models/TimelineResponseOptionsCounters.md) | Options for selecting breakdown for calls count | +| [TimelineResponseOptionsTimers](documentation/models/TimelineResponseOptionsTimers.md) | Options for selecting breakdown for calls duration | +| [TimelineResponseData](documentation/models/TimelineResponseData.md) | A list of time-value points of call data as per the grouping and filtering options specified in the request | +| [TimelineResponseRecord](documentation/models/TimelineResponseRecord.md) | | +| [TimelineResponsePoint](documentation/models/TimelineResponsePoint.md) | | +| [TmTaskInfoType](documentation/models/TmTaskInfoType.md) | Task type | +| [Creator](documentation/models/Creator.md) | | +| [TmTaskInfoStatus](documentation/models/TmTaskInfoStatus.md) | Task execution status | +| [TmTaskInfoAssignees](documentation/models/TmTaskInfoAssignees.md) | | +| [TmTaskInfoCompletenessCondition](documentation/models/TmTaskInfoCompletenessCondition.md) | How the task completeness should be determined | +| [TmTaskInfoColor](documentation/models/TmTaskInfoColor.md) | Font color of a post with the current task | +| [TaskRecurrenceInfo](documentation/models/TaskRecurrenceInfo.md) | Task information | +| [TaskAttachment](documentation/models/TaskAttachment.md) | | +| [AssigneesStatus](documentation/models/AssigneesStatus.md) | Task execution status by assignee | +| [TaskRecurrenceInfoSchedule](documentation/models/TaskRecurrenceInfoSchedule.md) | Recurrence settings of a task. None for non-periodic tasks | +| [TaskRecurrenceInfoEndingCondition](documentation/models/TaskRecurrenceInfoEndingCondition.md) | Ending condition of a task | +| [TaskAttachmentType](documentation/models/TaskAttachmentType.md) | Possible value - File. Attachment type (currently, only File is possible) | +| [TmUpdateTaskRequestAssignees](documentation/models/TmUpdateTaskRequestAssignees.md) | | +| [TmUpdateTaskRequestCompletenessCondition](documentation/models/TmUpdateTaskRequestCompletenessCondition.md) | | +| [TmUpdateTaskRequestColor](documentation/models/TmUpdateTaskRequestColor.md) | | +| [TmAttachmentInfo](documentation/models/TmAttachmentInfo.md) | | +| [TmAttachmentInfoType](documentation/models/TmAttachmentInfoType.md) | Type of an attachment | +| [TmNavigationInfo](documentation/models/TmNavigationInfo.md) | | +| [TmCompleteTaskRequestStatus](documentation/models/TmCompleteTaskRequestStatus.md) | Completeness status | +| [TmCompleteTaskRequestAssignees](documentation/models/TmCompleteTaskRequestAssignees.md) | | +| [TmCreateTaskRequestAssignees](documentation/models/TmCreateTaskRequestAssignees.md) | | +| [TmCreateTaskRequestCompletenessCondition](documentation/models/TmCreateTaskRequestCompletenessCondition.md) | | +| [TmCreateTaskRequestColor](documentation/models/TmCreateTaskRequestColor.md) | | +| [EventRecurrenceInfo](documentation/models/EventRecurrenceInfo.md) | | +| [TmEventInfoColor](documentation/models/TmEventInfoColor.md) | Color of Event title (including its presentation in Calendar) | +| [EventRecurrenceInfoSchedule](documentation/models/EventRecurrenceInfoSchedule.md) | Event recurrence settings. For non-periodic events the value is `None`. Must be greater or equal to event duration: 1- Day/Weekday; 7 - Week; 28 - Month; 365 - Year | +| [EventRecurrenceInfoEndingCondition](documentation/models/EventRecurrenceInfoEndingCondition.md) | Condition of ending an event | +| [TmCreateEventRequestColor](documentation/models/TmCreateEventRequestColor.md) | Color of Event title (including its presentation in Calendar) | +| [TmChatInfoType](documentation/models/TmChatInfoType.md) | Type of chat | +| [TmChatInfoStatus](documentation/models/TmChatInfoStatus.md) | For 'Team' chat type only. Team status. | +| [TmChatMemberInfo](documentation/models/TmChatMemberInfo.md) | | +| [TmPostInfoType](documentation/models/TmPostInfoType.md) | Type of post | +| [TmMessageAttachmentInfo](documentation/models/TmMessageAttachmentInfo.md) | | +| [TmMentionsInfo](documentation/models/TmMentionsInfo.md) | | +| [TmMessageAttachmentInfoType](documentation/models/TmMessageAttachmentInfoType.md) | Type of an attachment | +| [TmAttachmentAuthorInfo](documentation/models/TmAttachmentAuthorInfo.md) | | +| [TmAttachmentFieldsInfo](documentation/models/TmAttachmentFieldsInfo.md) | | +| [TmAttachmentFootnoteInfo](documentation/models/TmAttachmentFootnoteInfo.md) | | +| [TmMessageAttachmentInfoColor](documentation/models/TmMessageAttachmentInfoColor.md) | Color of Event title, including its presentation in Calendar; or the color of the side border of an interactive message of a Card | +| [Style](documentation/models/Style.md) | Style of width span applied to a field | +| [TmMentionsInfoType](documentation/models/TmMentionsInfoType.md) | Type of mention | +| [AdaptiveCardRequestType](documentation/models/AdaptiveCardRequestType.md) | Type of attachment. This field is mandatory and filled on server side - will be ignored if set in request body | +| [AdaptiveCardInfoRequest](documentation/models/AdaptiveCardInfoRequest.md) | | +| [AdaptiveCardAction](documentation/models/AdaptiveCardAction.md) | | +| [AdaptiveCardSelectAction](documentation/models/AdaptiveCardSelectAction.md) | An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported | +| [AdaptiveCardRequestLang](documentation/models/AdaptiveCardRequestLang.md) | The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions | +| [VerticalContentAlignment](documentation/models/VerticalContentAlignment.md) | Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified | +| [AdaptiveCardInfoRequestType](documentation/models/AdaptiveCardInfoRequestType.md) | | +| [AdaptiveCardInfoRequestItem](documentation/models/AdaptiveCardInfoRequestItem.md) | | +| [AdaptiveCardInfoRequestItemType](documentation/models/AdaptiveCardInfoRequestItemType.md) | | +| [AdaptiveCardColumnInfo](documentation/models/AdaptiveCardColumnInfo.md) | | +| [AdaptiveCardColumnItemInfo](documentation/models/AdaptiveCardColumnItemInfo.md) | | +| [AdaptiveCardActionType](documentation/models/AdaptiveCardActionType.md) | | +| [ActionAdaptiveCardInfo](documentation/models/ActionAdaptiveCardInfo.md) | | +| [ActionAdaptiveCardInfoType](documentation/models/ActionAdaptiveCardInfoType.md) | | +| [ActionCardBody](documentation/models/ActionCardBody.md) | | +| [ActionCardBodyType](documentation/models/ActionCardBodyType.md) | | +| [AdaptiveCardSelectActionType](documentation/models/AdaptiveCardSelectActionType.md) | | +| [BackgroundImage](documentation/models/BackgroundImage.md) | Specifies a background image oa a card. Acceptable formats are PNG, JPEG, and GIF | +| [BackgroundImageType](documentation/models/BackgroundImageType.md) | Must be `BackgroundImage` | +| [ImageFillMode](documentation/models/ImageFillMode.md) | Describes how the image should fill the area | +| [HorizontalAlignment](documentation/models/HorizontalAlignment.md) | Describes how the image should be aligned if it must be cropped or if using repeat fill mode | +| [VerticalAlignment](documentation/models/VerticalAlignment.md) | Describes how the image should be aligned if it must be cropped or if using repeat fill mode | +| [ImageFillMode_1](documentation/models/ImageFillMode1.md) | | +| [HorizontalAlignment_1](documentation/models/HorizontalAlignment1.md) | | +| [VerticalAlignment_1](documentation/models/VerticalAlignment1.md) | | +| [VerticalContentAlignment_1](documentation/models/VerticalContentAlignment1.md) | | +| [AdaptiveCardShortInfoType](documentation/models/AdaptiveCardShortInfoType.md) | | +| [AdaptiveCardCreator](documentation/models/AdaptiveCardCreator.md) | | +| [AdaptiveCardInfoType](documentation/models/AdaptiveCardInfoType.md) | | +| [AdaptiveCardInfoLang](documentation/models/AdaptiveCardInfoLang.md) | The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions | +| [TmCreatorInfo](documentation/models/TmCreatorInfo.md) | Note creator information | +| [LastModifiedByInfo](documentation/models/LastModifiedByInfo.md) | Note last modification information | +| [LockedByInfo](documentation/models/LockedByInfo.md) | Returned for the note being edited (locked) at the current moment. Information on the user editing the note | +| [TmNoteInfoStatus](documentation/models/TmNoteInfoStatus.md) | Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' | +| [TmNoteInfoType](documentation/models/TmNoteInfoType.md) | | +| [TmNoteWithBodyInfoStatus](documentation/models/TmNoteWithBodyInfoStatus.md) | Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' | +| [TmNoteWithBodyInfoType](documentation/models/TmNoteWithBodyInfoType.md) | | +| [TmWebhookInfoStatus](documentation/models/TmWebhookInfoStatus.md) | Current status of a webhook | +| [TmConversationInfoType](documentation/models/TmConversationInfoType.md) | Type of conversation | +| [CreateConversationRequestMembers](documentation/models/CreateConversationRequestMembers.md) | | +| [GlipDataExportNavigationInfo](documentation/models/GlipDataExportNavigationInfo.md) | | +| [GlipDataExportPagingInfo](documentation/models/GlipDataExportPagingInfo.md) | | +| [DataExportTaskStatus](documentation/models/DataExportTaskStatus.md) | Task status | +| [CreatorInfo](documentation/models/CreatorInfo.md) | Task creator information | +| [SpecificInfo](documentation/models/SpecificInfo.md) | Information specified in request | +| [ExportTaskResultInfo](documentation/models/ExportTaskResultInfo.md) | | +| [DataExportTaskContactInfo](documentation/models/DataExportTaskContactInfo.md) | List of users whose data is collected. The following data will be exported: posts, tasks, events, etc. posted by the user(s); posts addressing the user(s) via direct and @Mentions; tasks assigned to the listed user(s). The list of 10 users per request is supported. | +| [GlipDataExportNavigationInfoUri](documentation/models/GlipDataExportNavigationInfoUri.md) | | +| [EveryoneTeamInfoType](documentation/models/EveryoneTeamInfoType.md) | Type of chat | +| [TmTeamInfoType](documentation/models/TmTeamInfoType.md) | Type of chat | +| [TmTeamInfoStatus](documentation/models/TmTeamInfoStatus.md) | Team status | +| [TmCreateTeamRequestMembers](documentation/models/TmCreateTeamRequestMembers.md) | | +| [TmRemoveTeamMembersRequestMembers](documentation/models/TmRemoveTeamMembersRequestMembers.md) | | +| [TmAddTeamMembersRequestMembers](documentation/models/TmAddTeamMembersRequestMembers.md) | Conversation is opened | + +
+ +## License + +This SDK is licensed under the MIT License. + +See the [LICENSE](LICENSE) file for more details. + + diff --git a/documentation/models/AccountBusinessAddressResource.md b/documentation/models/AccountBusinessAddressResource.md new file mode 100644 index 00000000..9b67f919 --- /dev/null +++ b/documentation/models/AccountBusinessAddressResource.md @@ -0,0 +1,13 @@ +# AccountBusinessAddressResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------- | :------- | :--------------------------------------------------------------------------- | +| uri | str | ❌ | | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| company | str | ❌ | Company business name | +| email | str | ❌ | Company business email address | +| main_site_name | str | ❌ | Custom site name | + + diff --git a/documentation/models/AccountDeviceUpdate.md b/documentation/models/AccountDeviceUpdate.md new file mode 100644 index 00000000..999b3ac4 --- /dev/null +++ b/documentation/models/AccountDeviceUpdate.md @@ -0,0 +1,14 @@ +# AccountDeviceUpdate + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| emergency_service_address | EmergencyServiceAddressResourceRequest | ❌ | Address for emergency cases. The same emergency address is assigned to all numbers of a single device. If the emergency address is also specified in `emergency` resource, then this value is ignored | +| emergency | DeviceEmergencyInfo | ❌ | Device emergency settings | +| extension | DeviceUpdateExtensionInfo | ❌ | Information on extension that the device is assigned to | +| phone_lines | DeviceUpdatePhoneLinesInfo | ❌ | Information on phone lines added to a device | +| use_as_common_phone | bool | ❌ | Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone | +| name | str | ❌ | Device label, maximum number of symbols is 64 | + + diff --git a/documentation/models/AccountDirectoryProfileImageResource.md b/documentation/models/AccountDirectoryProfileImageResource.md new file mode 100644 index 00000000..71830cf7 --- /dev/null +++ b/documentation/models/AccountDirectoryProfileImageResource.md @@ -0,0 +1,10 @@ +# AccountDirectoryProfileImageResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| etag | str | ❌ | | +| uri | str | ❌ | | + + diff --git a/documentation/models/AccountHistoryPaging.md b/documentation/models/AccountHistoryPaging.md new file mode 100644 index 00000000..e70aa362 --- /dev/null +++ b/documentation/models/AccountHistoryPaging.md @@ -0,0 +1,12 @@ +# AccountHistoryPaging + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items are in each page. Matches "perPage" parameter from the request | +| total | int | ❌ | Total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_found | int | ❌ | Total number of elements in a dataset. May be omitted for some resources due to performance reasons | + + diff --git a/documentation/models/AccountHistoryPublicRecord.md b/documentation/models/AccountHistoryPublicRecord.md new file mode 100644 index 00000000..5e55c873 --- /dev/null +++ b/documentation/models/AccountHistoryPublicRecord.md @@ -0,0 +1,19 @@ +# AccountHistoryPublicRecord + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------- | :------- | :------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal record identifier | +| event_time | str | ❌ | Timestamp of an event (provided by a client), RFC3339 date-time format, UTC time zone. | +| initiator | AccountHistoryRecordPublicInitiator | ❌ | Event initiator info | +| action_id | str | ❌ | Action type | +| event_type | str | ❌ | Operation: "CREATE", "UPDATE", "DELETE" or custom | +| account_id | str | ❌ | Account identifier which is related with the particular record. | +| account_name | str | ❌ | Account (company) name | +| target | AccountHistoryRecordTarget | ❌ | Action target object (company/extension) | +| client_ip | str | ❌ | IP-address of a client. | +| comment | str | ❌ | Custom top-level comment | +| details | AccountHistoryRecordPublicDetails | ❌ | | + + diff --git a/documentation/models/AccountHistoryRecordDetailsParameters.md b/documentation/models/AccountHistoryRecordDetailsParameters.md new file mode 100644 index 00000000..cac7022b --- /dev/null +++ b/documentation/models/AccountHistoryRecordDetailsParameters.md @@ -0,0 +1,10 @@ +# AccountHistoryRecordDetailsParameters + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| key | str | ✅ | | +| value | str | ✅ | | + + diff --git a/documentation/models/AccountHistoryRecordPublicDetails.md b/documentation/models/AccountHistoryRecordPublicDetails.md new file mode 100644 index 00000000..989061b0 --- /dev/null +++ b/documentation/models/AccountHistoryRecordPublicDetails.md @@ -0,0 +1,9 @@ +# AccountHistoryRecordPublicDetails + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------------------ | :------- | :------------------------------------ | +| parameters | List[AccountHistoryRecordDetailsParameters] | ❌ | Event details (additional parameters) | + + diff --git a/documentation/models/AccountHistoryRecordPublicInitiator.md b/documentation/models/AccountHistoryRecordPublicInitiator.md new file mode 100644 index 00000000..241d35a0 --- /dev/null +++ b/documentation/models/AccountHistoryRecordPublicInitiator.md @@ -0,0 +1,14 @@ +# AccountHistoryRecordPublicInitiator + +Event initiator info + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------ | +| extension_id | str | ❌ | Current user extension identifier | +| extension_number | str | ❌ | Current user extension (short) number | +| name | str | ❌ | Current user full name | +| role | str | ❌ | Current user role | + + diff --git a/documentation/models/AccountHistoryRecordTarget.md b/documentation/models/AccountHistoryRecordTarget.md new file mode 100644 index 00000000..6e5f1283 --- /dev/null +++ b/documentation/models/AccountHistoryRecordTarget.md @@ -0,0 +1,28 @@ +# AccountHistoryRecordTarget + +Action target object (company/extension) + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------- | :------- | :--------------------------------------------------------------------------------------- | +| object_id | str | ❌ | Extension identifier of the affected entity or "0" for Company level | +| object_type | ObjectType | ❌ | Type of the entity. | +| name | str | ❌ | Target extension name | +| extension_number | str | ❌ | Target extension (short) number of the affected entity (if the objectType is EXTENSION). | +| site_id | str | ❌ | Target extension site identifier (if any) | + +# ObjectType + +Type of the entity. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| EXTENSION | str | ✅ | "Extension" | +| ACCOUNT | str | ✅ | "Account" | +| COMPANY | str | ✅ | "Company" | +| TEMPLATE | str | ✅ | "Template" | + + diff --git a/documentation/models/AccountHistorySearchPublicRequest.md b/documentation/models/AccountHistorySearchPublicRequest.md new file mode 100644 index 00000000..1583f669 --- /dev/null +++ b/documentation/models/AccountHistorySearchPublicRequest.md @@ -0,0 +1,36 @@ +# AccountHistorySearchPublicRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| event_time_from | str | ❌ | The beginning of the time range to return records in ISO 8601 format in UTC timezone, default is "eventTimeFrom"-24 hours | +| event_time_to | str | ❌ | The end of the time range to return records in ISO 8601 format in UTC timezone, default is the current time | +| initiator_ids | List[str] | ❌ | List of extension IDs of change initiators. | +| page | int | ❌ | Page number in the result set | +| per_page | int | ❌ | Number of records to be returned per page. | +| target_ids | List[str] | ❌ | List of extension (user) IDs affected by this action. | +| site_id | str | ❌ | Site ID to apply as a filter | +| action_ids | List[ActionIds] | ❌ | List of action IDs (exact keys) to search for (alternatively "excludeActionIds" option can be used). | +| search_string | str | ❌ | The (sub)string to search, applied to the following fields: - initiator.name - initiator.role - initiator.extensionNumber - target.name - target.extensionNumber - details.parameters.value | +| exclude_action_ids | List[ExcludeActionIds] | ❌ | List of action IDs (exact keys) to exclude from your search (alternatively "actionIds" option can be used). | + +# ActionIds + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| CHANGE_SECRET_INFO | str | ✅ | "CHANGE_SECRET_INFO" | +| CHANGE_USER_INFO | str | ✅ | "CHANGE_USER_INFO" | + +# ExcludeActionIds + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| CHANGE_SECRET_INFO | str | ✅ | "CHANGE_SECRET_INFO" | +| CHANGE_USER_INFO | str | ✅ | "CHANGE_USER_INFO" | + + diff --git a/documentation/models/AccountHistorySearchPublicResponse.md b/documentation/models/AccountHistorySearchPublicResponse.md new file mode 100644 index 00000000..538f8308 --- /dev/null +++ b/documentation/models/AccountHistorySearchPublicResponse.md @@ -0,0 +1,10 @@ +# AccountHistorySearchPublicResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------- | :------- | :-------------- | +| records | List[AccountHistoryPublicRecord] | ❌ | List of records | +| paging | AccountHistoryPaging | ❌ | | + + diff --git a/documentation/models/AccountInfo.md b/documentation/models/AccountInfo.md new file mode 100644 index 00000000..d538cce0 --- /dev/null +++ b/documentation/models/AccountInfo.md @@ -0,0 +1,31 @@ +# AccountInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :-------------------- | :------- | :--------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of RingCentral account | +| status | AccountInfoStatus | ✅ | Account status | +| service_info | ServiceInfoV2 | ✅ | Service Plan information (billing package, brand, etc.) | +| external_account_id | str | ❌ | External account ID. Used as a primary key to link accounts between RingCentral and partner systems. | +| main_number | str | ❌ | Phone number in e.164 format (with '+' prefix) | +| status_info | AccountStatusInfo | ❌ | Optional information to be used when account is moved to "Disabled" status | +| company_name | str | ❌ | Company name | +| company_address | PostalAddress | ❌ | Postal address/location | +| contact_info | SystemUserContactInfo | ❌ | | +| opportunity_id | str | ❌ | Opportunity identifier (typically created by SalesForce) | + +# AccountInfoStatus + +Account status + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| INITIAL | str | ✅ | "Initial" | +| UNCONFIRMED | str | ✅ | "Unconfirmed" | +| CONFIRMED | str | ✅ | "Confirmed" | +| DISABLED | str | ✅ | "Disabled" | + + diff --git a/documentation/models/AccountLimits.md b/documentation/models/AccountLimits.md new file mode 100644 index 00000000..90e84e67 --- /dev/null +++ b/documentation/models/AccountLimits.md @@ -0,0 +1,17 @@ +# AccountLimits + +Limits which are effective for the account + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------- | +| free_soft_phone_lines_per_extension | int | ❌ | Max number of free softphone phone lines per user extension | +| meeting_size | int | ❌ | Max number of participants in RingCentral meeting hosted by this account's user | +| cloud_recording_storage | int | ❌ | Meetings recording cloud storage limitation in Gb | +| max_monitored_extensions_per_user | int | ❌ | Max number of extensions which can be included in the list of users monitored for Presence | +| max_extension_number_length | int | ❌ | Max length of extension numbers of an account; the supported value is up to 8 symbols, depends on account type | +| site_code_length | int | ❌ | Length of a site code | +| short_extension_number_length | int | ❌ | Length of a short extension number | + + diff --git a/documentation/models/AccountLockSettingRecordResponse.md b/documentation/models/AccountLockSettingRecordResponse.md new file mode 100644 index 00000000..9e195d6c --- /dev/null +++ b/documentation/models/AccountLockSettingRecordResponse.md @@ -0,0 +1,15 @@ +# AccountLockSettingRecordResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------- | :--- | :------- | :---------- | +| local_recording | bool | ❌ | | +| cloud_recording | bool | ❌ | | +| auto_recording | bool | ❌ | | +| cloud_recording_download | bool | ❌ | | +| host_delete_cloud_recording | bool | ❌ | | +| account_user_access_recording | bool | ❌ | | +| auto_delete_cmr | bool | ❌ | | + + diff --git a/documentation/models/AccountLockedSettingResponse.md b/documentation/models/AccountLockedSettingResponse.md new file mode 100644 index 00000000..4bc354aa --- /dev/null +++ b/documentation/models/AccountLockedSettingResponse.md @@ -0,0 +1,10 @@ +# AccountLockedSettingResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------- | :------- | :---------- | +| schedule_meeting | ScheduleMeetingResponse | ❌ | | +| recording | AccountLockSettingRecordResponse | ❌ | | + + diff --git a/documentation/models/AccountOperatorInfo.md b/documentation/models/AccountOperatorInfo.md new file mode 100644 index 00000000..97e4e00a --- /dev/null +++ b/documentation/models/AccountOperatorInfo.md @@ -0,0 +1,15 @@ +# AccountOperatorInfo + +Operator extension information. This extension will receive +all calls and messages addressed to an operator. + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to an operator extension resource | +| id\_ | int | ❌ | Internal identifier of an operator extension | +| extension_number | str | ❌ | Number of an operator extension | +| partner_id | str | ❌ | Internal identifier of an extension created by partner. Supported for Partner Applications. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | + + diff --git a/documentation/models/AccountPhoneNumberInfo.md b/documentation/models/AccountPhoneNumberInfo.md new file mode 100644 index 00000000..94336277 --- /dev/null +++ b/documentation/models/AccountPhoneNumberInfo.md @@ -0,0 +1,27 @@ +# AccountPhoneNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal unique identifier of a phone number | +| phone_number | str | ✅ | Phone number in e.164 format (with '+' prefix) | +| toll_type | PhoneNumberTollType | ✅ | Indicates if a number is toll or toll-free | +| usage_type | PhoneNumberUsageType | ✅ | Usage type of phone number | +| status | PhoneNumberStatus | ✅ | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral | +| type\_ | PhoneNumberType | ❌ | Type of phone number | +| byoc_number | bool | ❌ | | +| extension | AccountPhoneNumberInfoExtension | ❌ | Reference to the extension this number is assigned to. Omitted for company numbers | + +# AccountPhoneNumberInfoExtension + +Reference to the extension this number is assigned to. Omitted for company numbers + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :-------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Unique identifier of extension | +| extension_number | str | ❌ | Short number of an extension. Actual max length depends on system length limit for extension. | + + diff --git a/documentation/models/AccountPhoneNumberList.md b/documentation/models/AccountPhoneNumberList.md new file mode 100644 index 00000000..6017447a --- /dev/null +++ b/documentation/models/AccountPhoneNumberList.md @@ -0,0 +1,10 @@ +# AccountPhoneNumberList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------- | :------- | :---------------------------- | +| records | List[AccountPhoneNumberInfo] | ✅ | List of account phone numbers | +| paging | EnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/AccountPhoneNumbers.md b/documentation/models/AccountPhoneNumbers.md new file mode 100644 index 00000000..b6d150bf --- /dev/null +++ b/documentation/models/AccountPhoneNumbers.md @@ -0,0 +1,12 @@ +# AccountPhoneNumbers + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to a list of account phone numbers | +| records | List[CompanyPhoneNumberInfo] | ❌ | List of account phone numbers | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/AccountPresenceInfo.md b/documentation/models/AccountPresenceInfo.md new file mode 100644 index 00000000..b0e22e64 --- /dev/null +++ b/documentation/models/AccountPresenceInfo.md @@ -0,0 +1,12 @@ +# AccountPresenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | Canonical URI of account presence resource | +| records | List[GetPresenceInfo] | ❌ | List of Prompts | +| navigation | PresenceNavigationInfo | ❌ | Information on navigation | +| paging | PresencePagingInfo | ❌ | Information on paging | + + diff --git a/documentation/models/AccountRegionalSettings.md b/documentation/models/AccountRegionalSettings.md new file mode 100644 index 00000000..6a84434a --- /dev/null +++ b/documentation/models/AccountRegionalSettings.md @@ -0,0 +1,28 @@ +# AccountRegionalSettings + +Account level region data (web service Auto-Receptionist settings) + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------------------------------- | :------- | :---------------------------------------------------------------- | +| home_country | CountryInfoShortModel | ❌ | | +| timezone | TimezoneInfo | ❌ | Extension timezone information | +| language | RegionalLanguageInfo | ❌ | Information on a language set as regional | +| greeting_language | GreetingLanguageInfo | ❌ | Information on language used for telephony greetings | +| formatting_locale | FormattingLocaleInfo | ❌ | Formatting language preferences for numbers, dates and currencies | +| time_format | AccountRegionalSettingsTimeFormat | ❌ | Time format setting. The default value is '12h' = ['12h', '24h'] | +| currency | CurrencyInfo | ❌ | Currency information | + +# AccountRegionalSettingsTimeFormat + +Time format setting. The default value is '12h' = ['12h', '24h'] + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| \_12H | str | ✅ | "12h" | +| \_24H | str | ✅ | "24h" | + + diff --git a/documentation/models/AccountResource.md b/documentation/models/AccountResource.md new file mode 100644 index 00000000..7133a7c6 --- /dev/null +++ b/documentation/models/AccountResource.md @@ -0,0 +1,12 @@ +# AccountResource + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------ | :------- | :---------- | +| id\_ | str | ✅ | | +| company_name | str | ❌ | | +| federated_name | str | ❌ | | +| main_number | PhoneNumberResource | ❌ | | + + diff --git a/documentation/models/AccountServiceInfo.md b/documentation/models/AccountServiceInfo.md new file mode 100644 index 00000000..1b162b17 --- /dev/null +++ b/documentation/models/AccountServiceInfo.md @@ -0,0 +1,19 @@ +# AccountServiceInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------------------- | :------- | :----------------------------------------------------- | +| uri | str | ❌ | Canonical URI of the account Service Info resource | +| service_plan_name | str | ❌ | Account Service Plan name | +| brand | BrandInfo | ❌ | Information on account brand | +| contracted_country | CountryInfoShortModel | ❌ | | +| service_plan | ServicePlanInfo | ❌ | Information on account service plan | +| target_service_plan | TargetServicePlanInfo | ❌ | Information on account target service plan | +| billing_plan | BillingPlanInfo | ❌ | Information on account billing plan | +| service_features | List[ServiceFeatureInfo] | ❌ | Service features information, see Service Feature List | +| limits | AccountLimits | ❌ | Limits which are effective for the account | +| package | PackageInfo | ❌ | | +| u_brand | UBrandInfo | ❌ | Account sub-brand information | + + diff --git a/documentation/models/AccountStatusInfo.md b/documentation/models/AccountStatusInfo.md new file mode 100644 index 00000000..f439d1b6 --- /dev/null +++ b/documentation/models/AccountStatusInfo.md @@ -0,0 +1,26 @@ +# AccountStatusInfo + +Optional information to be used when account is moved to "Disabled" status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------- | :------- | :--------------------------------------------------------------------------------------------------------- | +| reason | AccountStatusInfoReason | ❌ | Type of suspension, voluntarily or not | +| comment | str | ❌ | A meaningful description of the reason to change the status | +| till | str | ❌ | Date after which the account will get deleted. Parameter can be used to overwrite default retention period | + +# AccountStatusInfoReason + +Type of suspension, voluntarily or not + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------- | +| SUSPENDEDVOLUNTARILY | str | ✅ | "SuspendedVoluntarily" | +| SUSPENDEDINVOLUNTARILY | str | ✅ | "SuspendedInvoluntarily" | +| CANCELLEDVOLUNTARILY | str | ✅ | "CancelledVoluntarily" | +| CANCELLEDINVOLUNTARILY | str | ✅ | "CancelledInvoluntarily" | + + diff --git a/documentation/models/ActionAdaptiveCardInfo.md b/documentation/models/ActionAdaptiveCardInfo.md new file mode 100644 index 00000000..bc0f9a0b --- /dev/null +++ b/documentation/models/ActionAdaptiveCardInfo.md @@ -0,0 +1,18 @@ +# ActionAdaptiveCardInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------- | :------- | :---------- | +| type\_ | ActionAdaptiveCardInfoType | ❌ | | +| body | List[ActionCardBody] | ❌ | | + +# ActionAdaptiveCardInfoType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ADAPTIVECARD | str | ✅ | "AdaptiveCard" | + + diff --git a/documentation/models/ActionCardBody.md b/documentation/models/ActionCardBody.md new file mode 100644 index 00000000..5cbf36a8 --- /dev/null +++ b/documentation/models/ActionCardBody.md @@ -0,0 +1,20 @@ +# ActionCardBody + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------- | :------- | :---------------------------------------------------------------------- | +| type\_ | ActionCardBodyType | ❌ | | +| id\_ | str | ❌ | | +| is_multiline | bool | ❌ | If set to `true`, allows multiple lines of input | +| placeholder | str | ❌ | Description of the input desired. Displayed when no text has been input | + +# ActionCardBodyType + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| INPUT_TEXT | str | ✅ | "Input.Text" | + + diff --git a/documentation/models/ActiveCallInfo.md b/documentation/models/ActiveCallInfo.md new file mode 100644 index 00000000..3f70cc7a --- /dev/null +++ b/documentation/models/ActiveCallInfo.md @@ -0,0 +1,47 @@ +# ActiveCallInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------- | :------- | :---------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | | +| direction | ActiveCallInfoDirection | ❌ | | +| queue_call | bool | ❌ | Identifies if a call belongs to the call queue | +| from\_ | str | ❌ | Phone number or extension number of a caller. For GCM transport type '\_from' property should be used | +| from_name | str | ❌ | Name of a caller | +| to | str | ❌ | Phone number or extension number of a callee | +| to_name | str | ❌ | Name of a callee | +| start_time | str | ❌ | Time when the call is actually started | +| telephony_status | ActiveCallInfoTelephonyStatus | ❌ | Telephony presence status | +| sip_data | DetailedCallInfo | ❌ | | +| session_id | str | ❌ | | +| telephony_session_id | str | ❌ | Telephony identifier of a call session | +| on_behalf_of | str | ❌ | Extension ID of the call owner on whose behalf a call is performed | +| party_id | str | ❌ | Internal identifier of a call party | +| termination_type | str | ❌ | | +| call_info | CallInfoCq | ❌ | Primary/additional CQ information | + +# ActiveCallInfoDirection + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + +# ActiveCallInfoTelephonyStatus + +Telephony presence status + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NOCALL | str | ✅ | "NoCall" | +| CALLCONNECTED | str | ✅ | "CallConnected" | +| RINGING | str | ✅ | "Ringing" | +| ONHOLD | str | ✅ | "OnHold" | +| PARKEDCALL | str | ✅ | "ParkedCall" | + + diff --git a/documentation/models/ActivePermissionResource.md b/documentation/models/ActivePermissionResource.md new file mode 100644 index 00000000..cb8883c3 --- /dev/null +++ b/documentation/models/ActivePermissionResource.md @@ -0,0 +1,25 @@ +# ActivePermissionResource + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------- | :------- | :---------- | +| permission | PermissionIdResource | ❌ | | +| effective_role | RoleIdResource | ❌ | | +| scopes | List[Scopes] | ❌ | | + +# Scopes + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| ACCOUNT | str | ✅ | "Account" | +| ALLEXTENSIONS | str | ✅ | "AllExtensions" | +| FEDERATION | str | ✅ | "Federation" | +| NONUSEREXTENSIONS | str | ✅ | "NonUserExtensions" | +| ROLEBASED | str | ✅ | "RoleBased" | +| SELF | str | ✅ | "Self" | +| USEREXTENSIONS | str | ✅ | "UserExtensions" | + + diff --git a/documentation/models/AdaptiveCardAction.md b/documentation/models/AdaptiveCardAction.md new file mode 100644 index 00000000..f4033d11 --- /dev/null +++ b/documentation/models/AdaptiveCardAction.md @@ -0,0 +1,23 @@ +# AdaptiveCardAction + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------------------- | :------- | :---------- | +| type\_ | AdaptiveCardActionType | ❌ | | +| title | str | ❌ | | +| card | ActionAdaptiveCardInfo | ❌ | | +| url | str | ❌ | | + +# AdaptiveCardActionType + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| ACTION_SHOWCARD | str | ✅ | "Action.ShowCard" | +| ACTION_SUBMIT | str | ✅ | "Action.Submit" | +| ACTION_OPENURL | str | ✅ | "Action.OpenUrl" | +| ACTION_TOGGLEVISIBILITY | str | ✅ | "Action.ToggleVisibility" | + + diff --git a/documentation/models/AdaptiveCardColumnInfo.md b/documentation/models/AdaptiveCardColumnInfo.md new file mode 100644 index 00000000..4eb9049a --- /dev/null +++ b/documentation/models/AdaptiveCardColumnInfo.md @@ -0,0 +1,11 @@ +# AdaptiveCardColumnInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------------- | :------- | :---------- | +| type\_ | str | ❌ | | +| width | str | ❌ | | +| items | List[AdaptiveCardColumnItemInfo] | ❌ | | + + diff --git a/documentation/models/AdaptiveCardColumnItemInfo.md b/documentation/models/AdaptiveCardColumnItemInfo.md new file mode 100644 index 00000000..58f0aac0 --- /dev/null +++ b/documentation/models/AdaptiveCardColumnItemInfo.md @@ -0,0 +1,16 @@ +# AdaptiveCardColumnItemInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| type\_ | str | ❌ | | +| url | str | ❌ | | +| size | str | ❌ | | +| style | str | ❌ | | +| wrap | bool | ❌ | | +| spacing | str | ❌ | | +| text | str | ❌ | | +| is_subtle | bool | ❌ | | + + diff --git a/documentation/models/AdaptiveCardCreator.md b/documentation/models/AdaptiveCardCreator.md new file mode 100644 index 00000000..7a9cbb90 --- /dev/null +++ b/documentation/models/AdaptiveCardCreator.md @@ -0,0 +1,9 @@ +# AdaptiveCardCreator + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------- | +| id\_ | str | ❌ | Internal identifier of a creator | + + diff --git a/documentation/models/AdaptiveCardInfo.md b/documentation/models/AdaptiveCardInfo.md new file mode 100644 index 00000000..47d469d2 --- /dev/null +++ b/documentation/models/AdaptiveCardInfo.md @@ -0,0 +1,49 @@ +# AdaptiveCardInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an adaptive card | +| creation_time | str | ❌ | Adaptive Card creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| last_modified_time | str | ❌ | Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| schema | str | ❌ | Schema of an adaptive card | +| type\_ | AdaptiveCardInfoType | ❌ | | +| version | str | ❌ | Version of an adaptive card | +| creator | AdaptiveCardCreator | ❌ | | +| chat_ids | List[str] | ❌ | Chat IDs where an adaptive card is posted or shared. | +| body | List[AdaptiveCardInfoRequest] | ❌ | List of card elements to show in the primary card region | +| actions | List[AdaptiveCardAction] | ❌ | | +| select_action | AdaptiveCardSelectAction | ❌ | An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported | +| fallback_text | str | ❌ | Text shown when the client doesn't support the version specified (may contain markdown) | +| background_image | AdaptiveCardInfoBackgroundImage | ❌ | Specifies the background image of a card | +| min_height | str | ❌ | Specifies the minimum height of the card in pixels | +| speak | str | ❌ | Specifies what should be spoken for this entire card. This is simple text or SSML fragment | +| lang | AdaptiveCardInfoLang | ❌ | The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions | +| vertical_content_alignment | VerticalContentAlignment | ❌ | Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified | + +# AdaptiveCardInfoType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ADAPTIVECARD | str | ✅ | "AdaptiveCard" | + +# AdaptiveCardInfoBackgroundImage + +Specifies the background image of a card + +# AdaptiveCardInfoLang + +The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| EN | str | ✅ | "en" | +| FR | str | ✅ | "fr" | +| ES | str | ✅ | "es" | + + diff --git a/documentation/models/AdaptiveCardInfoRequest.md b/documentation/models/AdaptiveCardInfoRequest.md new file mode 100644 index 00000000..40176e53 --- /dev/null +++ b/documentation/models/AdaptiveCardInfoRequest.md @@ -0,0 +1,18 @@ +# AdaptiveCardInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :----- | :-------------------------------- | :------- | :---------- | +| type\_ | AdaptiveCardInfoRequestType | ❌ | | +| items | List[AdaptiveCardInfoRequestItem] | ❌ | | + +# AdaptiveCardInfoRequestType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| CONTAINER | str | ✅ | "Container" | + + diff --git a/documentation/models/AdaptiveCardInfoRequestItem.md b/documentation/models/AdaptiveCardInfoRequestItem.md new file mode 100644 index 00000000..1b4e4265 --- /dev/null +++ b/documentation/models/AdaptiveCardInfoRequestItem.md @@ -0,0 +1,24 @@ +# AdaptiveCardInfoRequestItem + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------ | :------- | :---------- | +| type\_ | AdaptiveCardInfoRequestItemType | ❌ | | +| text | str | ❌ | | +| weight | str | ❌ | | +| size | str | ❌ | | +| columns | List[AdaptiveCardColumnInfo] | ❌ | | + +# AdaptiveCardInfoRequestItemType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| TEXTBLOCK | str | ✅ | "TextBlock" | +| COLUMNSET | str | ✅ | "ColumnSet" | +| COLUMN | str | ✅ | "Column" | +| FACTSET | str | ✅ | "FactSet" | + + diff --git a/documentation/models/AdaptiveCardRequest.md b/documentation/models/AdaptiveCardRequest.md new file mode 100644 index 00000000..62600fa6 --- /dev/null +++ b/documentation/models/AdaptiveCardRequest.md @@ -0,0 +1,46 @@ +# AdaptiveCardRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | AdaptiveCardRequestType | ✅ | Type of attachment. This field is mandatory and filled on server side - will be ignored if set in request body | +| version | str | ✅ | Version. This field is mandatory and filled on server side - will be ignored if set in request body | +| body | List[AdaptiveCardInfoRequest] | ❌ | List of adaptive cards with the detailed information | +| actions | List[AdaptiveCardAction] | ❌ | | +| select_action | AdaptiveCardSelectAction | ❌ | An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported | +| fallback_text | str | ❌ | | +| background_image | AdaptiveCardRequestBackgroundImage | ❌ | Specifies the background image of a card | +| min_height | str | ❌ | Specifies the minimum height of the card in pixels | +| speak | str | ❌ | Specifies what should be spoken for this entire card. This is simple text or SSML fragment | +| lang | AdaptiveCardRequestLang | ❌ | The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions | +| vertical_content_alignment | VerticalContentAlignment | ❌ | Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified | + +# AdaptiveCardRequestType + +Type of attachment. This field is mandatory and filled on server side - +will be ignored if set in request body + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ADAPTIVECARD | str | ✅ | "AdaptiveCard" | + +# AdaptiveCardRequestBackgroundImage + +Specifies the background image of a card + +# AdaptiveCardRequestLang + +The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| EN | str | ✅ | "en" | +| FR | str | ✅ | "fr" | +| ES | str | ✅ | "es" | + + diff --git a/documentation/models/AdaptiveCardSelectAction.md b/documentation/models/AdaptiveCardSelectAction.md new file mode 100644 index 00000000..2a8dff86 --- /dev/null +++ b/documentation/models/AdaptiveCardSelectAction.md @@ -0,0 +1,21 @@ +# AdaptiveCardSelectAction + +An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------------------------- | :------- | :---------- | +| type\_ | AdaptiveCardSelectActionType | ✅ | | + +# AdaptiveCardSelectActionType + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| ACTION_SUBMIT | str | ✅ | "Action.Submit" | +| ACTION_OPENURL | str | ✅ | "Action.OpenUrl" | +| ACTION_TOGGLEVISIBILITY | str | ✅ | "Action.ToggleVisibility" | + + diff --git a/documentation/models/AdaptiveCardShortInfo.md b/documentation/models/AdaptiveCardShortInfo.md new file mode 100644 index 00000000..7fa1dc93 --- /dev/null +++ b/documentation/models/AdaptiveCardShortInfo.md @@ -0,0 +1,24 @@ +# AdaptiveCardShortInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------ | :------- | :------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an adaptive card | +| creation_time | str | ❌ | Adaptive Card creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| last_modified_time | str | ❌ | Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| schema | str | ❌ | Schema of an adaptive card | +| type\_ | AdaptiveCardShortInfoType | ❌ | | +| version | str | ❌ | Version of an adaptive card. Filled on server-side | +| creator | AdaptiveCardCreator | ❌ | | +| chat_ids | List[str] | ❌ | Chat IDs where an adaptive card is posted or shared. | + +# AdaptiveCardShortInfoType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ADAPTIVECARD | str | ✅ | "AdaptiveCard" | + + diff --git a/documentation/models/AddBlockedAllowedPhoneNumber.md b/documentation/models/AddBlockedAllowedPhoneNumber.md new file mode 100644 index 00000000..e292de27 --- /dev/null +++ b/documentation/models/AddBlockedAllowedPhoneNumber.md @@ -0,0 +1,13 @@ +# AddBlockedAllowedPhoneNumber + +Updates either blocked or allowed phone number list with a new phone number. + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :--------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | A blocked/allowed phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| label | str | ❌ | Custom name of a blocked/allowed phone number | +| status | BlockedNumberStatusEnum | ❌ | Status of a phone number | + + diff --git a/documentation/models/AddDeviceToInventoryRequest.md b/documentation/models/AddDeviceToInventoryRequest.md new file mode 100644 index 00000000..117b6b1b --- /dev/null +++ b/documentation/models/AddDeviceToInventoryRequest.md @@ -0,0 +1,29 @@ +# AddDeviceToInventoryRequest + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------------ | :------- | :------------------------------------------------------------------------ | +| type\_ | AddDeviceToInventoryRequestType | ✅ | Device type. Use `OtherPhone` to indicate BYOD (customer provided) device | +| quantity | int | ✅ | Quantity of devices (total quantity should not exceed 50) | +| site | AddDeviceToInventoryRequestSite | ❌ | | + +# AddDeviceToInventoryRequestType + +Device type. Use `OtherPhone` to indicate BYOD (customer provided) device + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OTHERPHONE | str | ✅ | "OtherPhone" | + +# AddDeviceToInventoryRequestSite + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------------------------- | +| id\_ | str | ❌ | Site extension identifier or "main-site" for the main site | + + diff --git a/documentation/models/AddDeviceToInventoryResponse.md b/documentation/models/AddDeviceToInventoryResponse.md new file mode 100644 index 00000000..1d4d82e6 --- /dev/null +++ b/documentation/models/AddDeviceToInventoryResponse.md @@ -0,0 +1,18 @@ +# AddDeviceToInventoryResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------------- | :------- | :---------- | +| devices | List[AddDeviceToInventoryResponseDevices] | ✅ | | +| site | SiteBasicInfo | ✅ | | + +# AddDeviceToInventoryResponseDevices + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a created device | + + diff --git a/documentation/models/AddInviteeRequest.md b/documentation/models/AddInviteeRequest.md new file mode 100644 index 00000000..dfe8ab5f --- /dev/null +++ b/documentation/models/AddInviteeRequest.md @@ -0,0 +1,16 @@ +# AddInviteeRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| email | str | ❌ | User's contact email | +| job_title | str | ❌ | Job title | +| linked_user | RcwDomainUserModel | ❌ | | +| type\_ | RcwInviteeTypeEnum | ❌ | The type of the webinar invitee | +| send_invite | bool | ❌ | Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. | + + diff --git a/documentation/models/AddPartyRequest.md b/documentation/models/AddPartyRequest.md new file mode 100644 index 00000000..4ac79951 --- /dev/null +++ b/documentation/models/AddPartyRequest.md @@ -0,0 +1,10 @@ +# AddPartyRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------------------------------------------------------------------- | +| session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a party that should be added to the call session | + + diff --git a/documentation/models/AddPhoneNumberRequestItem.md b/documentation/models/AddPhoneNumberRequestItem.md new file mode 100644 index 00000000..6acb14fe --- /dev/null +++ b/documentation/models/AddPhoneNumberRequestItem.md @@ -0,0 +1,23 @@ +# AddPhoneNumberRequestItem + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ✅ | Phone number in e.164 format (with '+' prefix). Wildcards are supported to pass large sets (for example 100 numbers); only one phone number record must be passed in request in that case, for example '+1650123456\*' | +| usage_type | AddPhoneNumberRequestItemUsageType | ✅ | Usage type of phone number. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. | + +# AddPhoneNumberRequestItemUsageType + +Usage type of phone number. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` +and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------- | :--- | :------- | :------------------------------------- | +| INVENTORY | str | ✅ | "Inventory" | +| INVENTORYPARTNERBUSINESSMOBILENUMBER | str | ✅ | "InventoryPartnerBusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | + + diff --git a/documentation/models/AddPhoneNumbersRequest.md b/documentation/models/AddPhoneNumbersRequest.md new file mode 100644 index 00000000..7777a9ae --- /dev/null +++ b/documentation/models/AddPhoneNumbersRequest.md @@ -0,0 +1,9 @@ +# AddPhoneNumbersRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------ | :------- | :---------------------------- | +| records | List[AddPhoneNumberRequestItem] | ✅ | List of account phone numbers | + + diff --git a/documentation/models/AddPhoneNumbersResponse.md b/documentation/models/AddPhoneNumbersResponse.md new file mode 100644 index 00000000..683be7e0 --- /dev/null +++ b/documentation/models/AddPhoneNumbersResponse.md @@ -0,0 +1,9 @@ +# AddPhoneNumbersResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------------------- | :------- | :---------------------------- | +| records | List[AddPhoneNumbersResponseItem] | ✅ | List of account phone numbers | + + diff --git a/documentation/models/AddPhoneNumbersResponseItem.md b/documentation/models/AddPhoneNumbersResponseItem.md new file mode 100644 index 00000000..2b7664dd --- /dev/null +++ b/documentation/models/AddPhoneNumbersResponseItem.md @@ -0,0 +1,12 @@ +# AddPhoneNumbersResponseItem + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| bulk_item_successful | bool | ✅ | Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors | +| phone_number | str | ✅ | Phone number in e.164 format (with '+' prefix) | +| bulk_item_errors | List[dict] | ❌ | The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false | +| id\_ | str | ❌ | Internal unique identifier of a phone number | + + diff --git a/documentation/models/AddPhoneNumbersTask.md b/documentation/models/AddPhoneNumbersTask.md new file mode 100644 index 00000000..e8a35356 --- /dev/null +++ b/documentation/models/AddPhoneNumbersTask.md @@ -0,0 +1,11 @@ +# AddPhoneNumbersTask + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a task | +| creation_time | str | ❌ | Task creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| status | str | ❌ | Task status | + + diff --git a/documentation/models/AdditionalCqInfo.md b/documentation/models/AdditionalCqInfo.md new file mode 100644 index 00000000..d3797bc0 --- /dev/null +++ b/documentation/models/AdditionalCqInfo.md @@ -0,0 +1,28 @@ +# AdditionalCqInfo + +Additional call session information. Supported for Call Queues only + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------- | :------- | :------------------------------------------------------------------------- | +| type\_ | AdditionalCqInfoType | ❌ | Call information to be displayed as 'Line 2' for a call queue call session | +| value | str | ❌ | Call information value | + +# AdditionalCqInfoType + +Call information to be displayed as 'Line 2' for a call queue call session + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| PHONENUMBERLABEL | str | ✅ | "PhoneNumberLabel" | +| PHONENUMBER | str | ✅ | "PhoneNumber" | +| QUEUEEXTENSION | str | ✅ | "QueueExtension" | +| QUEUENAME | str | ✅ | "QueueName" | +| CALLERIDNAME | str | ✅ | "CallerIdName" | +| CALLERIDNUMBER | str | ✅ | "CallerIdNumber" | +| NONE | str | ✅ | "None" | + + diff --git a/documentation/models/AddonInfo.md b/documentation/models/AddonInfo.md new file mode 100644 index 00000000..e885e91d --- /dev/null +++ b/documentation/models/AddonInfo.md @@ -0,0 +1,11 @@ +# AddonInfo + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| count | int | ❌ | | + + diff --git a/documentation/models/AddressBookBulkContactAddressInfo.md b/documentation/models/AddressBookBulkContactAddressInfo.md new file mode 100644 index 00000000..466bbfcc --- /dev/null +++ b/documentation/models/AddressBookBulkContactAddressInfo.md @@ -0,0 +1,13 @@ +# AddressBookBulkContactAddressInfo + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------------------------------------ | +| country | str | ❌ | Country name of the extension user company. Not returned for Address Book | +| state | str | ❌ | State/province name of the extension user company | +| city | str | ❌ | City name of the extension user company | +| street | str | ❌ | Street address of the extension user company | +| zip | str | ❌ | Zip code of the extension user company | + + diff --git a/documentation/models/AddressBookBulkContactResource.md b/documentation/models/AddressBookBulkContactResource.md new file mode 100644 index 00000000..f65fd1a8 --- /dev/null +++ b/documentation/models/AddressBookBulkContactResource.md @@ -0,0 +1,35 @@ +# AddressBookBulkContactResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------- | :------- | :--------------------------------------------------------------- | +| email | str | ❌ | Email of a contact | +| notes | str | ❌ | Notes for a contact | +| company | str | ❌ | Company name of a contact | +| first_name | str | ❌ | First name of a contact | +| last_name | str | ❌ | Last name of a contact | +| job_title | str | ❌ | Job title of a contact | +| birthday | str | ❌ | Date of birth of a contact | +| web_page | str | ❌ | Link to a contact home page | +| middle_name | str | ❌ | Middle name of a contact | +| nick_name | str | ❌ | Nick name of a contact | +| email2 | str | ❌ | Second email of a contact | +| email3 | str | ❌ | Third email of the contact | +| home_phone | str | ❌ | Home phone number of a contact in e.164 (with "+") format | +| home_phone2 | str | ❌ | Second home phone number of a contact in e.164 (with "+") format | +| business_phone | str | ❌ | Business phone of a contact in e.164 (with "+") format | +| business_phone2 | str | ❌ | Second business phone of a contact in e.164 (with "+") format | +| mobile_phone | str | ❌ | Mobile phone of the contact in e.164 (with "+") format | +| business_fax | str | ❌ | Business fax number of a contact in e.164 (with "+") format | +| company_phone | str | ❌ | Company number of a contact in e.164 (with "+") format | +| assistant_phone | str | ❌ | Phone number of a contact assistant in e.164 (with "+") format | +| car_phone | str | ❌ | Car phone number of a contact in e.164 (with "+") format | +| other_phone | str | ❌ | Other phone number of a contact in e.164 (with "+") format | +| other_fax | str | ❌ | Other fax number of a contact in e.164 (with "+") format | +| callback_phone | str | ❌ | Callback phone number of a contact in e.164 (with "+") format | +| business_address | AddressBookBulkContactAddressInfo | ❌ | | +| home_address | AddressBookBulkContactAddressInfo | ❌ | | +| other_address | AddressBookBulkContactAddressInfo | ❌ | | + + diff --git a/documentation/models/AddressBookBulkUploadRequest.md b/documentation/models/AddressBookBulkUploadRequest.md new file mode 100644 index 00000000..49f1a508 --- /dev/null +++ b/documentation/models/AddressBookBulkUploadRequest.md @@ -0,0 +1,9 @@ +# AddressBookBulkUploadRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------- | :------- | :---------- | +| records | List[AddressBookBulkUploadResource] | ✅ | | + + diff --git a/documentation/models/AddressBookBulkUploadResource.md b/documentation/models/AddressBookBulkUploadResource.md new file mode 100644 index 00000000..c871f554 --- /dev/null +++ b/documentation/models/AddressBookBulkUploadResource.md @@ -0,0 +1,10 @@ +# AddressBookBulkUploadResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------------------- | :------- | :---------- | +| extension_id | str | ✅ | | +| contacts | List[AddressBookBulkContactResource] | ✅ | | + + diff --git a/documentation/models/AddressBookBulkUploadResponse.md b/documentation/models/AddressBookBulkUploadResponse.md new file mode 100644 index 00000000..e3c0b3df --- /dev/null +++ b/documentation/models/AddressBookBulkUploadResponse.md @@ -0,0 +1,29 @@ +# AddressBookBulkUploadResponse + +Information on a task for adding multiple contacts to multiple extensions + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :---------------------------------- | :------- | :--------------------------------- | +| id\_ | str | ✅ | Internal identifier of a task | +| uri | str | ✅ | Link for the task status retrieval | +| status | AddressBookBulkUploadResponseStatus | ✅ | Task status | +| creation_time | str | ✅ | Date/time of a task creation | +| last_modified_time | str | ✅ | Date/time of a task latest update | +| results | AddressBookBulkUploadTaskResult | ❌ | | + +# AddressBookBulkUploadResponseStatus + +Task status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| ACCEPTED | str | ✅ | "Accepted" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | +| FAILED | str | ✅ | "Failed" | + + diff --git a/documentation/models/AddressBookBulkUploadTaskResult.md b/documentation/models/AddressBookBulkUploadTaskResult.md new file mode 100644 index 00000000..fc780f86 --- /dev/null +++ b/documentation/models/AddressBookBulkUploadTaskResult.md @@ -0,0 +1,10 @@ +# AddressBookBulkUploadTaskResult + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---------------------------------- | :------- | :---------- | +| affected_items | List[AddressBookBulkUploadResource] | ❌ | | +| errors | List[ErrorEntity] | ❌ | | + + diff --git a/documentation/models/AddressBookSync.md b/documentation/models/AddressBookSync.md new file mode 100644 index 00000000..10090581 --- /dev/null +++ b/documentation/models/AddressBookSync.md @@ -0,0 +1,13 @@ +# AddressBookSync + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| records | List[PersonalContactResource] | ❌ | | +| sync_info | SyncInfo | ❌ | | +| next_page_id | int | ❌ | | +| next_page_uri | str | ❌ | | + + diff --git a/documentation/models/AddressStatus.md b/documentation/models/AddressStatus.md new file mode 100644 index 00000000..6dee58f5 --- /dev/null +++ b/documentation/models/AddressStatus.md @@ -0,0 +1,13 @@ +# AddressStatus + +Emergency address status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | +| PROVISIONING | str | ✅ | "Provisioning" | + + diff --git a/documentation/models/AdvancedTimeSettings.md b/documentation/models/AdvancedTimeSettings.md new file mode 100644 index 00000000..432c6c72 --- /dev/null +++ b/documentation/models/AdvancedTimeSettings.md @@ -0,0 +1,12 @@ +# AdvancedTimeSettings + +Allows more granular control over time included in the report + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------ | :------- | :-------------------------------------------------- | +| include_days | List[DayOfWeek] | ❌ | Days of the week for which the report is calculated | +| include_hours | List[HoursInterval] | ❌ | Hours of the day for which the report is calculated | + + diff --git a/documentation/models/AggregationInterval.md b/documentation/models/AggregationInterval.md new file mode 100644 index 00000000..22f75707 --- /dev/null +++ b/documentation/models/AggregationInterval.md @@ -0,0 +1,14 @@ +# AggregationInterval + +Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| HOUR | str | ✅ | "Hour" | +| DAY | str | ✅ | "Day" | +| WEEK | str | ✅ | "Week" | +| MONTH | str | ✅ | "Month" | + + diff --git a/documentation/models/AggregationRequest.md b/documentation/models/AggregationRequest.md new file mode 100644 index 00000000..e971a7d7 --- /dev/null +++ b/documentation/models/AggregationRequest.md @@ -0,0 +1,12 @@ +# AggregationRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grouping | Grouping | ✅ | This field specifies the dimensions by which the response should be grouped and specific keys to narrow the response. See also [Call Aggregate reports](https://developers.ringcentral.com/guide/analytics/aggregate) or [Call Timeline reports](https://developers.ringcentral.com/guide/analytics/timeline) pages in the developer guide for more information | +| time_settings | TimeSettings | ✅ | Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive | +| response_options | AggregationResponseOptions | ✅ | This field provides mapping of possible breakdown options for call aggregation and aggregation formula | +| call_filters | CallFilters | ❌ | Optional filters that limit the scope of calls (joined via AND) | + + diff --git a/documentation/models/AggregationResponse.md b/documentation/models/AggregationResponse.md new file mode 100644 index 00000000..8c16c86f --- /dev/null +++ b/documentation/models/AggregationResponse.md @@ -0,0 +1,10 @@ +# AggregationResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :---------------------- | :------- | :----------------- | +| paging | ResponsePaging | ✅ | Paging information | +| data | AggregationResponseData | ✅ | Aggregation result | + + diff --git a/documentation/models/AggregationResponseData.md b/documentation/models/AggregationResponseData.md new file mode 100644 index 00000000..62c10a95 --- /dev/null +++ b/documentation/models/AggregationResponseData.md @@ -0,0 +1,12 @@ +# AggregationResponseData + +Aggregation result + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------- | +| grouped_by | GroupingOptions | ✅ | The selected grouping option | +| records | List[AggregationResponseRecord] | ❌ | A list of call aggregations as per the grouping and filtering options specified in the request | + + diff --git a/documentation/models/AggregationResponseOptions.md b/documentation/models/AggregationResponseOptions.md new file mode 100644 index 00000000..74594e95 --- /dev/null +++ b/documentation/models/AggregationResponseOptions.md @@ -0,0 +1,12 @@ +# AggregationResponseOptions + +This field provides mapping of possible breakdown options for call aggregation and aggregation formula + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| counters | AggregationResponseOptionsCounters | ❌ | The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required | +| timers | AggregationResponseOptionsTimers | ❌ | The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required. If left empty, aggregation will be performed on per-call basis | + + diff --git a/documentation/models/AggregationResponseOptionsCounters.md b/documentation/models/AggregationResponseOptionsCounters.md new file mode 100644 index 00000000..f043957e --- /dev/null +++ b/documentation/models/AggregationResponseOptionsCounters.md @@ -0,0 +1,143 @@ +# AggregationResponseOptionsCounters + +The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually. +If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. +If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| all_calls | AggregationResponseOptionsCountersAllCalls | ❌ | Aggregation of all calls count | +| calls_by_direction | AggregationResponseOptionsCountersCallsByDirection | ❌ | Aggregation of calls count by direction (Inbound, Outbound) | +| calls_by_origin | AggregationResponseOptionsCountersCallsByOrigin | ❌ | Aggregation of calls count by origin (Internal, External) | +| calls_by_response | AggregationResponseOptionsCountersCallsByResponse | ❌ | Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments | CallsSegments | ❌ | Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_by_result | AggregationResponseOptionsCountersCallsByResult | ❌ | Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_by_company_hours | AggregationResponseOptionsCountersCallsByCompanyHours | ❌ | Aggregation of calls count by company hours (BusinessHours, AfterHours) | +| calls_by_queue_sla | AggregationResponseOptionsCountersCallsByQueueSla | ❌ | Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| calls_by_actions | AggregationResponseOptionsCountersCallsByActions | ❌ | Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) | +| calls_by_type | AggregationResponseOptionsCountersCallsByType | ❌ | Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | +| queue_opportunities | AggregationResponseOptionsCountersQueueOpportunities | ❌ | Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External) | + +# AggregationResponseOptionsCountersAllCalls + +Aggregation of all calls count + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByDirection + +Aggregation of calls count by direction (Inbound, Outbound) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByOrigin + +Aggregation of calls count by origin (Internal, External) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByResponse + +Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsSegments + +Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByResult + +Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByCompanyHours + +Aggregation of calls count by company hours (BusinessHours, AfterHours) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByQueueSla + +Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByActions + +Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersCallsByType + +Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# AggregationResponseOptionsCountersQueueOpportunities + +Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External) + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------- | :------- | :----------------------------------------------------------------------- | +| aggregation_type | QueueOpportunitiesAggregationType | ✅ | Counter aggregation type for queue opportunities, limited to `Sum` only. | + + diff --git a/documentation/models/AggregationResponseOptionsTimers.md b/documentation/models/AggregationResponseOptionsTimers.md new file mode 100644 index 00000000..87a868f7 --- /dev/null +++ b/documentation/models/AggregationResponseOptionsTimers.md @@ -0,0 +1,121 @@ +# AggregationResponseOptionsTimers + +The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually. +If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. +If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required. +If left empty, aggregation will be performed on per-call basis + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :-------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------- | +| all_calls_duration | AllCallsDuration | ❌ | Aggregation of all calls duration | +| calls_duration_by_direction | CallsDurationByDirection | ❌ | Aggregation of calls duration by direction (Inbound, Outbound) | +| calls_duration_by_origin | CallsDurationByOrigin | ❌ | Aggregation of calls duration by origin (Internal, External) | +| calls_duration_by_response | CallsDurationByResponse | ❌ | Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments_duration | CallsSegmentsDuration | ❌ | Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_duration_by_result | CallsDurationByResult | ❌ | Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_duration_by_company_hours | CallsDurationByCompanyHours | ❌ | Aggregation of calls duration by company hours (BusinessHours, AfterHours) | +| calls_duration_by_queue_sla | CallsDurationByQueueSla | ❌ | Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping | +| calls_duration_by_type | CallsDurationByType | ❌ | Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | + +# AllCallsDuration + +Aggregation of all calls duration + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByDirection + +Aggregation of calls duration by direction (Inbound, Outbound) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByOrigin + +Aggregation of calls duration by origin (Internal, External) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByResponse + +Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsSegmentsDuration + +Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByResult + +Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByCompanyHours + +Aggregation of calls duration by company hours (BusinessHours, AfterHours) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByQueueSla + +Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + +# CallsDurationByType + +Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------- | +| aggregation_type | AggregationType | ✅ | Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` | +| aggregation_interval | AggregationInterval | ❌ | Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month` | + + diff --git a/documentation/models/AggregationResponseRecord.md b/documentation/models/AggregationResponseRecord.md new file mode 100644 index 00000000..e7d2f246 --- /dev/null +++ b/documentation/models/AggregationResponseRecord.md @@ -0,0 +1,12 @@ +# AggregationResponseRecord + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------ | :------- | :------------------------------------------ | +| key | str | ✅ | Grouping key | +| info | KeyInfo | ❌ | Additional info about the key | +| timers | CallsTimers | ❌ | Call length data for the specified grouping | +| counters | CallsCounters | ❌ | Call volume data for the specified grouping | + + diff --git a/documentation/models/AggregationType.md b/documentation/models/AggregationType.md new file mode 100644 index 00000000..04ed3617 --- /dev/null +++ b/documentation/models/AggregationType.md @@ -0,0 +1,15 @@ +# AggregationType + +Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| SUM | str | ✅ | "Sum" | +| AVERAGE | str | ✅ | "Average" | +| MAX | str | ✅ | "Max" | +| MIN | str | ✅ | "Min" | +| PERCENT | str | ✅ | "Percent" | + + diff --git a/documentation/models/AllCalls.md b/documentation/models/AllCalls.md new file mode 100644 index 00000000..65347ff7 --- /dev/null +++ b/documentation/models/AllCalls.md @@ -0,0 +1,12 @@ +# AllCalls + +Data for all calls + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | float | ✅ | Value for all calls | + + diff --git a/documentation/models/AnswerTarget.md b/documentation/models/AnswerTarget.md new file mode 100644 index 00000000..65eeae73 --- /dev/null +++ b/documentation/models/AnswerTarget.md @@ -0,0 +1,9 @@ +# AnswerTarget + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :------------------------------------------------- | +| device_id | str | ❌ | Device ID that is used to answer to incoming call. | + + diff --git a/documentation/models/AnsweringRuleInfo.md b/documentation/models/AnsweringRuleInfo.md new file mode 100644 index 00000000..18d67ad6 --- /dev/null +++ b/documentation/models/AnsweringRuleInfo.md @@ -0,0 +1,67 @@ +# AnsweringRuleInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI to an answering rule resource | +| id\_ | str | ❌ | Internal identifier of an answering rule | +| type\_ | AnsweringRuleInfoType | ❌ | Type of an answering rule | +| name | str | ❌ | Name of an answering rule specified by user | +| enabled | bool | ❌ | Specifies if an answering rule is active or inactive | +| schedule | ScheduleInfo | ❌ | Schedule when an answering rule should be applied | +| called_numbers | List[CalledNumberInfo] | ❌ | Answering rules are applied when calling to selected number(s) | +| callers | List[CallersInfo] | ❌ | Answering rules are applied when calls are received from specified caller(s) | +| call_handling_action | AnsweringRuleInfoCallHandlingAction | ❌ | Specifies how incoming calls are forwarded | +| forwarding | ForwardingInfo | ❌ | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| unconditional_forwarding | UnconditionalForwardingInfo | ❌ | Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter | +| queue | QueueInfo | ❌ | Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action | +| transfer | TransferredExtensionInfo | ❌ | | +| voicemail | VoicemailInfo | ❌ | Specifies whether to take a voicemail and who should do it | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | +| screening | AnsweringRuleInfoScreening | ❌ | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| shared_lines | SharedLinesInfo | ❌ | SharedLines call handling action settings | +| missed_call | MissedCallInfo | ❌ | Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' | + +# AnsweringRuleInfoType + +Type of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + +# AnsweringRuleInfoCallHandlingAction + +Specifies how incoming calls are forwarded + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| FORWARDCALLS | str | ✅ | "ForwardCalls" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | +| AGENTQUEUE | str | ✅ | "AgentQueue" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| TAKEMESSAGESONLY | str | ✅ | "TakeMessagesOnly" | +| PLAYANNOUNCEMENTONLY | str | ✅ | "PlayAnnouncementOnly" | +| SHAREDLINES | str | ✅ | "SharedLines" | + +# AnsweringRuleInfoScreening + +Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| OFF | str | ✅ | "Off" | +| NOCALLERID | str | ✅ | "NoCallerId" | +| UNKNOWNCALLERID | str | ✅ | "UnknownCallerId" | +| ALWAYS | str | ✅ | "Always" | + + diff --git a/documentation/models/AnsweringRuleQueryRequest.md b/documentation/models/AnsweringRuleQueryRequest.md new file mode 100644 index 00000000..6afa3af5 --- /dev/null +++ b/documentation/models/AnsweringRuleQueryRequest.md @@ -0,0 +1,9 @@ +# AnsweringRuleQueryRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an answering rule | + + diff --git a/documentation/models/ApiErrorWithParameter.md b/documentation/models/ApiErrorWithParameter.md new file mode 100644 index 00000000..a1e17dc8 --- /dev/null +++ b/documentation/models/ApiErrorWithParameter.md @@ -0,0 +1,12 @@ +# ApiErrorWithParameter + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :----------------------------------------------------------------------------- | +| error_code | str | ✅ | Logical error code (typically, 3 letters followed with number, dash separated) | +| message | str | ✅ | User-friendly error message | +| parameter_name | str | ❌ | The name of the API parameter/attribute which caused the error | +| parameter_value | str | ❌ | The value of the API parameter/attribute which caused the error | + + diff --git a/documentation/models/ApiVersionInfo.md b/documentation/models/ApiVersionInfo.md new file mode 100644 index 00000000..8b889719 --- /dev/null +++ b/documentation/models/ApiVersionInfo.md @@ -0,0 +1,12 @@ +# ApiVersionInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------- | +| uri | str | ❌ | Canonical URI of API version | +| version_string | str | ❌ | Version of the RingCentral REST API | +| release_date | str | ❌ | Release date of this version | +| uri_string | str | ❌ | URI part determining the current version | + + diff --git a/documentation/models/ApiVersionsList.md b/documentation/models/ApiVersionsList.md new file mode 100644 index 00000000..de0c7ab9 --- /dev/null +++ b/documentation/models/ApiVersionsList.md @@ -0,0 +1,12 @@ +# ApiVersionsList + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------- | :------- | :------------------------------------------------------ | +| uri | str | ❌ | Canonical URI of the API version | +| api_versions | List[ApiVersionInfo] | ❌ | Full API version information: uri, number, release date | +| server_version | str | ❌ | Server version | +| server_revision | str | ❌ | Server revision | + + diff --git a/documentation/models/ArchiveInfo.md b/documentation/models/ArchiveInfo.md new file mode 100644 index 00000000..e55c350d --- /dev/null +++ b/documentation/models/ArchiveInfo.md @@ -0,0 +1,10 @@ +# ArchiveInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------ | +| size | int | ❌ | Archive size in bytes | +| uri | str | ❌ | Link for archive download | + + diff --git a/documentation/models/AsrInput.md b/documentation/models/AsrInput.md new file mode 100644 index 00000000..32a551ee --- /dev/null +++ b/documentation/models/AsrInput.md @@ -0,0 +1,52 @@ +# AsrInput + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| content_uri | str | ❌ | Publicly facing uri | +| encoding | AsrInputEncoding | ❌ | The encoding of the original audio | +| language_code | str | ❌ | Language spoken in the audio file. | +| source | str | ❌ | Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc | +| audio_type | AsrInputAudioType | ❌ | Type of the audio | +| separate_speaker_per_channel | bool | ❌ | Indicates that the input audio is multi-channel and each channel has a separate speaker. | +| speaker_count | int | ❌ | Number of speakers in the file, omit parameter if unknown | +| speaker_ids | List[str] | ❌ | Optional set of speakers to be identified from the call. | +| enable_voice_activity_detection | bool | ❌ | Apply voice activity detection. | +| enable_punctuation | bool | ❌ | Enables Smart Punctuation API. | +| enable_speaker_diarization | bool | ❌ | Tags each word corresponding to the speaker. | +| speech_contexts | List[SpeechContextPhrasesInput] | ❌ | Indicates the words/phrases that will be used for boosting the transcript. This can help to boost accuracy for cases like Person Names, Company names etc. | + +# AsrInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + +# AsrInputAudioType + +Type of the audio + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| CALLCENTER | str | ✅ | "CallCenter" | +| MEETING | str | ✅ | "Meeting" | +| EARNINGSCALLS | str | ✅ | "EarningsCalls" | +| INTERVIEW | str | ✅ | "Interview" | +| PRESSCONFERENCE | str | ✅ | "PressConference" | +| VOICEMAIL | str | ✅ | "Voicemail" | + + diff --git a/documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md b/documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md new file mode 100644 index 00000000..f8799d3a --- /dev/null +++ b/documentation/models/AssignMultipleDevicesAutomaticLocationUpdates.md @@ -0,0 +1,10 @@ +# AssignMultipleDevicesAutomaticLocationUpdates + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :-------- | :------- | :---------- | +| enabled_device_ids | List[str] | ❌ | | +| disabled_device_ids | List[str] | ❌ | | + + diff --git a/documentation/models/AssignPhoneNumberRequest.md b/documentation/models/AssignPhoneNumberRequest.md new file mode 100644 index 00000000..facd1a30 --- /dev/null +++ b/documentation/models/AssignPhoneNumberRequest.md @@ -0,0 +1,33 @@ +# AssignPhoneNumberRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------- | :------- | :------------------------------------------------------------------- | +| usage_type | AssignPhoneNumberRequestUsageType | ✅ | Target usage type of phone number (only listed values are supported) | +| type\_ | PhoneNumberType | ❌ | Type of phone number | +| extension | AssignPhoneNumberRequestExtension | ❌ | | +| cost_center_id | str | ❌ | | + +# AssignPhoneNumberRequestUsageType + +Target usage type of phone number (only listed values are supported) + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| PHONELINE | str | ✅ | "PhoneLine" | + +# AssignPhoneNumberRequestExtension + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ✅ | Internal identifier of an extension | + + diff --git a/documentation/models/AssignedCountryInfo.md b/documentation/models/AssignedCountryInfo.md new file mode 100644 index 00000000..bfcb918b --- /dev/null +++ b/documentation/models/AssignedCountryInfo.md @@ -0,0 +1,14 @@ +# AssignedCountryInfo + +Information on a country assigned to an extension user. Returned for the User extension type only + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an assigned country | +| uri | str | ❌ | Canonical URI of an assigned country resource | +| iso_code | str | ❌ | Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) | +| name | str | ❌ | Official name of a country | + + diff --git a/documentation/models/AssignedRoleResource.md b/documentation/models/AssignedRoleResource.md new file mode 100644 index 00000000..798c90de --- /dev/null +++ b/documentation/models/AssignedRoleResource.md @@ -0,0 +1,14 @@ +# AssignedRoleResource + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------------------------------- | +| uri | str | ❌ | Link to an assigned role resource | +| id\_ | str | ❌ | Internal identifier of a role | +| auto_assigned | bool | ❌ | Specifies if a role can be auto assigned | +| display_name | str | ❌ | Name of a default role | +| site_compatible | bool | ❌ | Site compatibility flag | +| site_restricted | bool | ❌ | Site restricted flag | + + diff --git a/documentation/models/AssignedRolesResource.md b/documentation/models/AssignedRolesResource.md new file mode 100644 index 00000000..1453ad5f --- /dev/null +++ b/documentation/models/AssignedRolesResource.md @@ -0,0 +1,10 @@ +# AssignedRolesResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| records | List[AssignedRoleResource] | ❌ | | + + diff --git a/documentation/models/AssigneeStatus.md b/documentation/models/AssigneeStatus.md new file mode 100644 index 00000000..cae38fad --- /dev/null +++ b/documentation/models/AssigneeStatus.md @@ -0,0 +1,10 @@ +# AssigneeStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| PENDING | str | ✅ | "Pending" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/AssignmentStatus.md b/documentation/models/AssignmentStatus.md new file mode 100644 index 00000000..30067479 --- /dev/null +++ b/documentation/models/AssignmentStatus.md @@ -0,0 +1,10 @@ +# AssignmentStatus + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| UNASSIGNED | str | ✅ | "Unassigned" | +| ASSIGNED | str | ✅ | "Assigned" | + + diff --git a/documentation/models/AssistantResource.md b/documentation/models/AssistantResource.md new file mode 100644 index 00000000..195d7b24 --- /dev/null +++ b/documentation/models/AssistantResource.md @@ -0,0 +1,10 @@ +# AssistantResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/AssistantsResource.md b/documentation/models/AssistantsResource.md new file mode 100644 index 00000000..3c53bd74 --- /dev/null +++ b/documentation/models/AssistantsResource.md @@ -0,0 +1,9 @@ +# AssistantsResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------- | :------- | :---------- | +| records | List[AssistantResource] | ❌ | | + + diff --git a/documentation/models/AssistedUserResource.md b/documentation/models/AssistedUserResource.md new file mode 100644 index 00000000..cb31bf43 --- /dev/null +++ b/documentation/models/AssistedUserResource.md @@ -0,0 +1,10 @@ +# AssistedUserResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/AssistedUsersResource.md b/documentation/models/AssistedUsersResource.md new file mode 100644 index 00000000..70f9385d --- /dev/null +++ b/documentation/models/AssistedUsersResource.md @@ -0,0 +1,9 @@ +# AssistedUsersResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------- | :------- | :---------- | +| records | List[AssistedUserResource] | ❌ | | + + diff --git a/documentation/models/AudioPromptInfo.md b/documentation/models/AudioPromptInfo.md new file mode 100644 index 00000000..b1a8bd29 --- /dev/null +++ b/documentation/models/AudioPromptInfo.md @@ -0,0 +1,12 @@ +# AudioPromptInfo + +For 'Audio' mode only. Prompt media reference + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| uri | str | ❌ | Link to a prompt audio file | +| id\_ | str | ❌ | Internal identifier of a prompt | + + diff --git a/documentation/models/AuthProfileCheckResource.md b/documentation/models/AuthProfileCheckResource.md new file mode 100644 index 00000000..b60d0c3e --- /dev/null +++ b/documentation/models/AuthProfileCheckResource.md @@ -0,0 +1,11 @@ +# AuthProfileCheckResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :---------- | +| uri | str | ❌ | | +| successful | bool | ❌ | | +| details | ActivePermissionResource | ❌ | | + + diff --git a/documentation/models/AuthProfileResource.md b/documentation/models/AuthProfileResource.md new file mode 100644 index 00000000..5777a97b --- /dev/null +++ b/documentation/models/AuthProfileResource.md @@ -0,0 +1,10 @@ +# AuthProfileResource + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| permissions | List[ActivePermissionResource] | ❌ | | + + diff --git a/documentation/models/AuthorizationType.md b/documentation/models/AuthorizationType.md new file mode 100644 index 00000000..034c37e6 --- /dev/null +++ b/documentation/models/AuthorizationType.md @@ -0,0 +1,10 @@ +# AuthorizationType + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| SIPDIGEST | str | ✅ | "SipDigest" | +| BEARERTOKEN | str | ✅ | "BearerToken" | + + diff --git a/documentation/models/AuthorizeRequest.md b/documentation/models/AuthorizeRequest.md new file mode 100644 index 00000000..c4f5d27c --- /dev/null +++ b/documentation/models/AuthorizeRequest.md @@ -0,0 +1,33 @@ +# AuthorizeRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| response_type | AuthorizeRequestResponseType | ✅ | Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" | +| client_id | str | ✅ | The registered identifier of a client application | +| redirect_uri | str | ❌ | This is the URI where the Authorization Server redirects the User Agent to at the end of the authorization flow. The value of this parameter must exactly match one of the URIs registered for this client application. This parameter is required if there are more than one redirect URIs registered for the app. | +| state | str | ❌ | An opaque value used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the User Agent back to the client. The parameter SHOULD be used for preventing cross-site request forgery attacks. | +| scope | str | ❌ | The list of requested OAuth scopes (space separated) | +| display | DisplayModesEnum | ❌ | Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. | +| prompt | str | ❌ | Space-delimited, case-sensitive list of ASCII string values that specifies whether the Authorization Server prompts the End-User for re-authentication and consent. The defined values are: - `login` - RingCentral native login form, - `sso` - Single Sign-On login form, - `consent` - form to show the requested scope and prompt user for consent. Either `login` or `sso` (or both) must be specified. The default value is `login sso` | +| ui_locales | str | ❌ | End-User's preferred languages and scripts for the user interface, represented as a space-separated list of [RFC-5646](https://datatracker.ietf.org/doc/html/rfc5646) language tag values, ordered by preference. If this parameter is provided, its value overrides 'Accept-Language' header value and 'localeId' parameter value (if any) | +| code_challenge | str | ❌ | The code challenge value as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| code_challenge_method | CodeChallengeMethodEnum | ❌ | The code challenge method as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| nonce | str | ❌ | String value used to associate a Client session with an ID Token, and to mitigate replay attacks. The value is passed through unmodified from the Authentication Request to the ID Token. | +| ui_options | str | ❌ | Login form user interface options (space-separated). By default, the UI options that are registered for this client application will be used | +| login_hint | str | ❌ | Hint to the Authorization Server about the login identifier the End-User might use to log in. | +| brand_id | str | ❌ | RingCentral Brand identifier. If it is not provided in the request, server will try to determine brand from the client application profile. | +| accept_language | str | ❌ | | + +# AuthorizeRequestResponseType + +Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| CODE | str | ✅ | "code" | + + diff --git a/documentation/models/AuthorizeResponseType.md b/documentation/models/AuthorizeResponseType.md new file mode 100644 index 00000000..eb274846 --- /dev/null +++ b/documentation/models/AuthorizeResponseType.md @@ -0,0 +1,9 @@ +# AuthorizeResponseType + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| CODE | str | ✅ | "code" | + + diff --git a/documentation/models/AutoShared.md b/documentation/models/AutoShared.md new file mode 100644 index 00000000..509af46a --- /dev/null +++ b/documentation/models/AutoShared.md @@ -0,0 +1,12 @@ +# AutoShared + +Controls whether recording can be auto shared + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------- | +| enabled | bool | ❌ | Controls whether preference is enabled | +| locked | bool | ❌ | Describes whether preference is locked on Service Web | + + diff --git a/documentation/models/AutomaticLocationUpdatesDeviceInfo.md b/documentation/models/AutomaticLocationUpdatesDeviceInfo.md new file mode 100644 index 00000000..c0840b56 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesDeviceInfo.md @@ -0,0 +1,16 @@ +# AutomaticLocationUpdatesDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :-------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a device | +| type\_ | AutomaticLocationUpdatesDeviceType | ❌ | Device type | +| serial | str | ❌ | Serial number for HardPhone (is returned only when the phone is shipped and provisioned) | +| feature_enabled | bool | ❌ | Specifies if Automatic Location Updates feature is enabled | +| name | str | ❌ | Device name | +| model | AutomaticLocationUpdatesModelInfo | ❌ | HardPhone model information | +| site | AutomaticLocationUpdatesSiteInfo | ❌ | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | +| phone_lines | List[AutomaticLocationUpdatesPhoneLine] | ❌ | Phone lines information | + + diff --git a/documentation/models/AutomaticLocationUpdatesDeviceType.md b/documentation/models/AutomaticLocationUpdatesDeviceType.md new file mode 100644 index 00000000..ed09b216 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesDeviceType.md @@ -0,0 +1,13 @@ +# AutomaticLocationUpdatesDeviceType + +Device type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| HARDPHONE | str | ✅ | "HardPhone" | +| SOFTPHONE | str | ✅ | "SoftPhone" | +| OTHERPHONE | str | ✅ | "OtherPhone" | + + diff --git a/documentation/models/AutomaticLocationUpdatesModelFeature.md b/documentation/models/AutomaticLocationUpdatesModelFeature.md new file mode 100644 index 00000000..9f62e13a --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesModelFeature.md @@ -0,0 +1,12 @@ +# AutomaticLocationUpdatesModelFeature + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| BLA | str | ✅ | "BLA" | +| INTERCOM | str | ✅ | "Intercom" | +| PAGING | str | ✅ | "Paging" | +| HELD | str | ✅ | "HELD" | + + diff --git a/documentation/models/AutomaticLocationUpdatesModelInfo.md b/documentation/models/AutomaticLocationUpdatesModelInfo.md new file mode 100644 index 00000000..36764329 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesModelInfo.md @@ -0,0 +1,13 @@ +# AutomaticLocationUpdatesModelInfo + +HardPhone model information + +**Properties** + +| Name | Type | Required | Description | +| :------- | :----------------------------------------- | :------- | :-------------------------------------------- | +| id\_ | str | ❌ | Device model identifier | +| name | str | ❌ | Device name | +| features | List[AutomaticLocationUpdatesModelFeature] | ❌ | Device feature or multiple features supported | + + diff --git a/documentation/models/AutomaticLocationUpdatesPhoneLine.md b/documentation/models/AutomaticLocationUpdatesPhoneLine.md new file mode 100644 index 00000000..c4b9194b --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesPhoneLine.md @@ -0,0 +1,10 @@ +# AutomaticLocationUpdatesPhoneLine + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------------- | :------- | :---------- | +| line_type | AutomaticLocationUpdatesPhoneLineType | ❌ | | +| phone_info | AutomaticLocationUpdatesPhoneNumberInfo | ❌ | | + + diff --git a/documentation/models/AutomaticLocationUpdatesPhoneLineType.md b/documentation/models/AutomaticLocationUpdatesPhoneLineType.md new file mode 100644 index 00000000..7079a515 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesPhoneLineType.md @@ -0,0 +1,14 @@ +# AutomaticLocationUpdatesPhoneLineType + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| UNKNOWN | str | ✅ | "Unknown" | +| STANDALONE | str | ✅ | "Standalone" | +| STANDALONEFREE | str | ✅ | "StandaloneFree" | +| BLAPRIMARY | str | ✅ | "BlaPrimary" | +| BLASECONDARY | str | ✅ | "BlaSecondary" | +| BLF | str | ✅ | "BLF" | + + diff --git a/documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md b/documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md new file mode 100644 index 00000000..5fd6ccaf --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesPhoneNumberInfo.md @@ -0,0 +1,10 @@ +# AutomaticLocationUpdatesPhoneNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a phone number | +| phone_number | str | ❌ | Phone number | + + diff --git a/documentation/models/AutomaticLocationUpdatesSiteInfo.md b/documentation/models/AutomaticLocationUpdatesSiteInfo.md new file mode 100644 index 00000000..6665c602 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesSiteInfo.md @@ -0,0 +1,16 @@ +# AutomaticLocationUpdatesSiteInfo + +Site data. If multi-site feature is turned on for the account, +then ID of a site must be specified. In order to assign a wireless +point to the main site (company) site ID should be set to `main-site` + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a site | +| uri | str | ❌ | Link to a site resource | +| name | str | ❌ | Name of a site | +| code | str | ❌ | Site code value. Returned only if specified | + + diff --git a/documentation/models/AutomaticLocationUpdatesTaskInfo.md b/documentation/models/AutomaticLocationUpdatesTaskInfo.md new file mode 100644 index 00000000..760472b1 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesTaskInfo.md @@ -0,0 +1,40 @@ +# AutomaticLocationUpdatesTaskInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------- | :------- | :------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a task | +| status | AutomaticLocationUpdatesTaskInfoStatus | ❌ | Status of a task | +| creation_time | str | ❌ | Task creation time | +| last_modified_time | str | ❌ | Time of the task latest modification | +| type\_ | AutomaticLocationUpdatesTaskInfoType | ❌ | Type of task | +| result | TaskResultInfo | ❌ | Task detailed result. Returned for failed and completed tasks | + +# AutomaticLocationUpdatesTaskInfoStatus + +Status of a task + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| ACCEPTED | str | ✅ | "Accepted" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | +| FAILED | str | ✅ | "Failed" | + +# AutomaticLocationUpdatesTaskInfoType + +Type of task + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :------------------------- | +| WIRELESSPOINTSBULKCREATE | str | ✅ | "WirelessPointsBulkCreate" | +| WIRELESSPOINTSBULKUPDATE | str | ✅ | "WirelessPointsBulkUpdate" | +| SWITCHESBULKCREATE | str | ✅ | "SwitchesBulkCreate" | +| SWITCHESBULKUPDATE | str | ✅ | "SwitchesBulkUpdate" | + + diff --git a/documentation/models/AutomaticLocationUpdatesUserInfo.md b/documentation/models/AutomaticLocationUpdatesUserInfo.md new file mode 100644 index 00000000..e101b946 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesUserInfo.md @@ -0,0 +1,26 @@ +# AutomaticLocationUpdatesUserInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a device | +| full_name | str | ❌ | User name | +| extension_number | str | ❌ | | +| feature_enabled | bool | ❌ | Specifies whether Automatic Location Updates feature is enabled | +| type\_ | AutomaticLocationUpdatesUserInfoType | ❌ | User extension type | +| site | AutomaticLocationUpdatesSiteInfo | ❌ | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | +| department | str | ❌ | Department name | + +# AutomaticLocationUpdatesUserInfoType + +User extension type + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| LIMITED | str | ✅ | "Limited" | + + diff --git a/documentation/models/AutomaticLocationUpdatesUserList.md b/documentation/models/AutomaticLocationUpdatesUserList.md new file mode 100644 index 00000000..6133e005 --- /dev/null +++ b/documentation/models/AutomaticLocationUpdatesUserList.md @@ -0,0 +1,12 @@ +# AutomaticLocationUpdatesUserList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to the users list resource | +| records | List[AutomaticLocationUpdatesUserInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/AutomaticRecordingResource.md b/documentation/models/AutomaticRecordingResource.md new file mode 100644 index 00000000..211d77e4 --- /dev/null +++ b/documentation/models/AutomaticRecordingResource.md @@ -0,0 +1,15 @@ +# AutomaticRecordingResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--- | :------- | :------------------------------------------------------------------------------------ | +| enabled | bool | ❌ | Flag for controlling Automatic Call Recording settings | +| outbound_call_tones | bool | ❌ | Flag for controlling 'Play Call Recording Announcement for Outbound Calls' settings | +| outbound_call_announcement | bool | ❌ | Flag for controlling 'Play periodic tones for outbound calls' settings | +| allow_mute | bool | ❌ | Flag for controlling 'Allow mute in auto call recording' settings | +| extension_count | int | ❌ | Total amount of extension that are used in call recordings | +| retention_period | int | ❌ | Retention period of a call recording, the default value is 90 days | +| max_number_limit | int | ❌ | Maximum number of automatic call recordings per account, the default value is 100 000 | + + diff --git a/documentation/models/BackgroundImage.md b/documentation/models/BackgroundImage.md new file mode 100644 index 00000000..9f921d48 --- /dev/null +++ b/documentation/models/BackgroundImage.md @@ -0,0 +1,25 @@ +# BackgroundImage + +Specifies a background image oa a card. Acceptable formats are PNG, JPEG, and GIF + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :----------------------------------------------------------------------------------------------------------- | +| url | str | ✅ | The URL/data URL of an image to be used as a background of a card. Acceptable formats are PNG, JPEG, and GIF | +| type\_ | BackgroundImageType | ❌ | Must be `BackgroundImage` | +| fill_mode | ImageFillMode | ❌ | Describes how the image should fill the area | +| horizontal_alignment | HorizontalAlignment | ❌ | Describes how the image should be aligned if it must be cropped or if using repeat fill mode | +| vertical_alignment | VerticalAlignment | ❌ | Describes how the image should be aligned if it must be cropped or if using repeat fill mode | + +# BackgroundImageType + +Must be `BackgroundImage` + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| BACKGROUNDIMAGE | str | ✅ | "BackgroundImage" | + + diff --git a/documentation/models/BasicExtensionInfoResource.md b/documentation/models/BasicExtensionInfoResource.md new file mode 100644 index 00000000..7bb294d4 --- /dev/null +++ b/documentation/models/BasicExtensionInfoResource.md @@ -0,0 +1,11 @@ +# BasicExtensionInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| extension_number | str | ❌ | | + + diff --git a/documentation/models/BatchListResponse.md b/documentation/models/BatchListResponse.md new file mode 100644 index 00000000..1267e5ec --- /dev/null +++ b/documentation/models/BatchListResponse.md @@ -0,0 +1,12 @@ +# BatchListResponse + +The list of batches retrieved for an account and other filter criteria such as fromPhoneNumber, date specified in the request. + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------- | :------- | :------------------------------------- | +| records | List[MessageBatchResponse] | ❌ | An array containing individual batches | +| paging | PagingResource | ❌ | Pagination details | + + diff --git a/documentation/models/BatchProvisionErrorItem.md b/documentation/models/BatchProvisionErrorItem.md new file mode 100644 index 00000000..b8689cab --- /dev/null +++ b/documentation/models/BatchProvisionErrorItem.md @@ -0,0 +1,10 @@ +# BatchProvisionErrorItem + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------- | :------- | :------------------------------------------------------------------------------------------------- | +| successful | bool | ✅ | Indicates if the provisioning operation was successful for this item, always `false` in this model | +| errors | List[ApiErrorWithParameter] | ✅ | | + + diff --git a/documentation/models/BatchProvisionUsersRequest.md b/documentation/models/BatchProvisionUsersRequest.md new file mode 100644 index 00000000..71445226 --- /dev/null +++ b/documentation/models/BatchProvisionUsersRequest.md @@ -0,0 +1,11 @@ +# BatchProvisionUsersRequest + +Describes request for user extension provisioning + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------------- | :------- | :---------- | +| records | List[BatchProvisionUsersRequestItem] | ✅ | | + + diff --git a/documentation/models/BatchProvisionUsersRequestItem.md b/documentation/models/BatchProvisionUsersRequestItem.md new file mode 100644 index 00000000..1e9e28d7 --- /dev/null +++ b/documentation/models/BatchProvisionUsersRequestItem.md @@ -0,0 +1,63 @@ +# BatchProvisionUsersRequestItem + +Describes request for user extension provisioning + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| status | BatchProvisionUsersRequestItemStatus | ✅ | Extension status. Only "Enabled" can be specified | +| contact | Contact | ✅ | | +| extension_number | str | ❌ | Short number of an extension. Actual max length depends on system length limit for extension. | +| cost_center | CostCenter | ❌ | | +| roles | List[BatchProvisionUsersRequestItemRoles] | ❌ | | +| devices | List[BatchProvisionUsersRequestItemDevices] | ❌ | | +| send_welcome_email | bool | ❌ | Specifies if a welcome/activation email is sent to the new users (within extension status changing from 'Unassigned' to 'NotActivated/Disabled') | + +# BatchProvisionUsersRequestItemStatus + +Extension status. Only "Enabled" can be specified + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ENABLED | str | ✅ | "Enabled" | + +# Contact + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------- | +| first_name | str | ❌ | Given name | +| last_name | str | ❌ | Family name | +| email | str | ❌ | Contact email | +| mobile_number | str | ❌ | Phone number in e.164 format (with '+' prefix) | +| email_as_login_name | bool | ❌ | Indicates that contact email is enabled as login name for this user. Please note that email must be unique in this case. | + +# CostCenter + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------- | +| id\_ | str | ✅ | Internal identifier of the Cost Center | + +# BatchProvisionUsersRequestItemRoles + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a role to be assigned | + +# BatchProvisionUsersRequestItemDevices + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--------------- | :------- | :---------- | +| device_info | DeviceDefinition | ✅ | | + + diff --git a/documentation/models/BatchProvisionUsersResponse.md b/documentation/models/BatchProvisionUsersResponse.md new file mode 100644 index 00000000..e66c9b2f --- /dev/null +++ b/documentation/models/BatchProvisionUsersResponse.md @@ -0,0 +1,11 @@ +# BatchProvisionUsersResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------------------- | :------- | :---------- | +| results | List[BatchProvisionUsersResponseResults] | ✅ | | + +# BatchProvisionUsersResponseResults + + diff --git a/documentation/models/BatchProvisionUsersSuccessItem.md b/documentation/models/BatchProvisionUsersSuccessItem.md new file mode 100644 index 00000000..ca7f122c --- /dev/null +++ b/documentation/models/BatchProvisionUsersSuccessItem.md @@ -0,0 +1,28 @@ +# BatchProvisionUsersSuccessItem + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------------- | :------- | :------------------------------------------------------------------------------------------------ | +| successful | bool | ✅ | Indicates if the provisioning operation was successful for this item, always `true` in this model | +| extension | BatchProvisionUsersSuccessItemExtension | ✅ | | + +# BatchProvisionUsersSuccessItemExtension + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :------------------------------------------------------- | +| id\_ | str | ✅ | The internal identifier of RingCentral extension created | +| devices | List[ExtensionDevices] | ✅ | | + +# ExtensionDevices + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------------------- | +| id\_ | str | ✅ | The internal identifier of device created | +| phone_number | str | ✅ | Phone number in e.164 format (with '+' prefix) | + + diff --git a/documentation/models/BillingInfo.md b/documentation/models/BillingInfo.md new file mode 100644 index 00000000..6353a28b --- /dev/null +++ b/documentation/models/BillingInfo.md @@ -0,0 +1,12 @@ +# BillingInfo + +Billing information related to the call. Returned for 'Detailed' view only + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---- | :------- | :----------------------------------------------------------------------------------------------------------- | +| cost_included | float | ❌ | Cost per minute, paid and already included in your RingCentral service plan. For example International Calls | +| cost_purchased | float | ❌ | Cost per minute, paid and not included in your RingCentral service plan | + + diff --git a/documentation/models/BillingPlanInfo.md b/documentation/models/BillingPlanInfo.md new file mode 100644 index 00000000..ccbd94a0 --- /dev/null +++ b/documentation/models/BillingPlanInfo.md @@ -0,0 +1,43 @@ +# BillingPlanInfo + +Information on account billing plan + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------ | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a billing plan | +| name | str | ❌ | Billing plan name | +| duration_unit | DurationUnit | ❌ | Duration period | +| duration | int | ❌ | Number of duration units | +| type\_ | BillingPlanInfoType | ❌ | Billing plan type | +| included_phone_lines | int | ❌ | Included digital lines count | + +# DurationUnit + +Duration period + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| DAY | str | ✅ | "Day" | +| MONTH | str | ✅ | "Month" | +| YEAR | str | ✅ | "Year" | + +# BillingPlanInfoType + +Billing plan type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INITIAL | str | ✅ | "Initial" | +| REGULAR | str | ✅ | "Regular" | +| SUSPENDED | str | ✅ | "Suspended" | +| TRIAL | str | ✅ | "Trial" | +| TRIALNOCC | str | ✅ | "TrialNoCC" | +| FREE | str | ✅ | "Free" | + + diff --git a/documentation/models/BillingStatementCharges.md b/documentation/models/BillingStatementCharges.md new file mode 100644 index 00000000..db3277d3 --- /dev/null +++ b/documentation/models/BillingStatementCharges.md @@ -0,0 +1,12 @@ +# BillingStatementCharges + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :---- | :------- | :---------- | +| description | str | ❌ | | +| amount | float | ❌ | | +| feature | str | ❌ | | +| free_service_credit | float | ❌ | | + + diff --git a/documentation/models/BillingStatementFees.md b/documentation/models/BillingStatementFees.md new file mode 100644 index 00000000..f3e29b61 --- /dev/null +++ b/documentation/models/BillingStatementFees.md @@ -0,0 +1,11 @@ +# BillingStatementFees + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :---- | :------- | :---------- | +| description | str | ❌ | | +| amount | float | ❌ | | +| free_service_credit | float | ❌ | | + + diff --git a/documentation/models/BillingStatementInfo.md b/documentation/models/BillingStatementInfo.md new file mode 100644 index 00000000..cdfadc04 --- /dev/null +++ b/documentation/models/BillingStatementInfo.md @@ -0,0 +1,19 @@ +# BillingStatementInfo + +Billing information. Returned for device update request if `prestatement` +query parameter is set to 'true' + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :---------------------------- | :------- | :--------------------------------------------------------------------------------------- | +| currency | str | ❌ | Currency code complying with [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) standard | +| charges | List[BillingStatementCharges] | ❌ | | +| fees | List[BillingStatementFees] | ❌ | | +| total_charged | float | ❌ | | +| total_charges | float | ❌ | | +| total_fees | float | ❌ | | +| subtotal | float | ❌ | | +| total_free_service_credit | float | ❌ | | + + diff --git a/documentation/models/BlockedAllowedPhoneNumberInfo.md b/documentation/models/BlockedAllowedPhoneNumberInfo.md new file mode 100644 index 00000000..cf508536 --- /dev/null +++ b/documentation/models/BlockedAllowedPhoneNumberInfo.md @@ -0,0 +1,15 @@ +# BlockedAllowedPhoneNumberInfo + +Information on a blocked/allowed phone number + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :--------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to a blocked/allowed phone number | +| id\_ | str | ❌ | Internal identifier of a blocked/allowed phone number | +| phone_number | str | ❌ | A blocked/allowed phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| label | str | ❌ | Custom name of a blocked/allowed phone number | +| status | BlockedNumberStatusEnum | ❌ | Status of a phone number | + + diff --git a/documentation/models/BlockedAllowedPhoneNumbersList.md b/documentation/models/BlockedAllowedPhoneNumbersList.md new file mode 100644 index 00000000..30c44062 --- /dev/null +++ b/documentation/models/BlockedAllowedPhoneNumbersList.md @@ -0,0 +1,14 @@ +# BlockedAllowedPhoneNumbersList + +List of blocked or allowed phone numbers + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------- | :------- | :------------------------------------------------------- | +| uri | str | ❌ | Link to a list of blocked/allowed phone numbers resource | +| records | List[BlockedAllowedPhoneNumberInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/BlockedCallerGreetingInfo.md b/documentation/models/BlockedCallerGreetingInfo.md new file mode 100644 index 00000000..db983547 --- /dev/null +++ b/documentation/models/BlockedCallerGreetingInfo.md @@ -0,0 +1,10 @@ +# BlockedCallerGreetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------- | :------- | :--------------- | +| type\_ | str | ❌ | Type of greeting | +| preset | PresetInfo | ❌ | | + + diff --git a/documentation/models/BlockedNumberStatusEnum.md b/documentation/models/BlockedNumberStatusEnum.md new file mode 100644 index 00000000..bfa469a2 --- /dev/null +++ b/documentation/models/BlockedNumberStatusEnum.md @@ -0,0 +1,12 @@ +# BlockedNumberStatusEnum + +Status of a phone number + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLOCKED | str | ✅ | "Blocked" | +| ALLOWED | str | ✅ | "Allowed" | + + diff --git a/documentation/models/BrandInfo.md b/documentation/models/BrandInfo.md new file mode 100644 index 00000000..7949281f --- /dev/null +++ b/documentation/models/BrandInfo.md @@ -0,0 +1,13 @@ +# BrandInfo + +Information on account brand + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------- | :------- | :------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a brand | +| name | str | ❌ | Brand name, for example RingCentral UK , ClearFax | +| home_country | CountryInfoShortModel | ❌ | | + + diff --git a/documentation/models/BridgeDiscovery.md b/documentation/models/BridgeDiscovery.md new file mode 100644 index 00000000..b61251e7 --- /dev/null +++ b/documentation/models/BridgeDiscovery.md @@ -0,0 +1,9 @@ +# BridgeDiscovery + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| web | str | ❌ | URI that can be used to join to the meeting. It contains password parameter only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. | + + diff --git a/documentation/models/BridgeJoinPreferences.md b/documentation/models/BridgeJoinPreferences.md new file mode 100644 index 00000000..f8412320 --- /dev/null +++ b/documentation/models/BridgeJoinPreferences.md @@ -0,0 +1,35 @@ +# BridgeJoinPreferences + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| audio_muted | bool | ❌ | Specifies if audio is muted for meeting participants (in the preset after joining) | +| video_muted | bool | ❌ | Specifies if video is muted for meeting participants (in the preset after joining) | +| waiting_room_required | WaitingRoomRequired | ❌ | Specifies rules for the waiting room before the host starts the meeting. 1) Nobody - No waiting room. Participants are not waiting for meeting start. 2) Everybody - All participants are waiting for meeting start. 3) GuestsOnly - Only unauthenticated participants (guests) are waiting for meeting start. 4) OtherAccount - Only participants who have other account are waiting for meeting start. Default value depends on the bridge type: - PMI -> OtherAccount - Instant, Scheduled -> Nobody | +| pstn | BridgeJoinPstnPreferences | ❌ | | + +# WaitingRoomRequired + +Specifies rules for the waiting room before the host starts the meeting. + +1. Nobody - No waiting room. Participants are not waiting for meeting start. +2. Everybody - All participants are waiting for meeting start. +3. GuestsOnly - Only unauthenticated participants (guests) are waiting for meeting start. +4. OtherAccount - Only participants who have other account are waiting for meeting start. + +Default value depends on the bridge type: + +- PMI -> OtherAccount +- Instant, Scheduled -> Nobody + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| NOBODY | str | ✅ | "Nobody" | +| EVERYBODY | str | ✅ | "Everybody" | +| GUESTSONLY | str | ✅ | "GuestsOnly" | +| OTHERACCOUNT | str | ✅ | "OtherAccount" | + + diff --git a/documentation/models/BridgeJoinPstnPreferences.md b/documentation/models/BridgeJoinPstnPreferences.md new file mode 100644 index 00000000..80ab7dca --- /dev/null +++ b/documentation/models/BridgeJoinPstnPreferences.md @@ -0,0 +1,10 @@ +# BridgeJoinPstnPreferences + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :---------------------------------------------------------- | +| prompt_announcement | bool | ❌ | Specifies whether to play 'Announce yourself' prompt | +| prompt_participants | bool | ❌ | Specifies whether to play 'There are X participants' prompt | + + diff --git a/documentation/models/BridgePins.md b/documentation/models/BridgePins.md new file mode 100644 index 00000000..920f6d81 --- /dev/null +++ b/documentation/models/BridgePins.md @@ -0,0 +1,10 @@ +# BridgePins + +**Properties** + +| Name | Type | Required | Description | +| :--- | :------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| pstn | BridgePstnPins | ❌ | | +| web | str | ❌ | Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ | + + diff --git a/documentation/models/BridgePinsWithAliases.md b/documentation/models/BridgePinsWithAliases.md new file mode 100644 index 00000000..4d8aec5b --- /dev/null +++ b/documentation/models/BridgePinsWithAliases.md @@ -0,0 +1,11 @@ +# BridgePinsWithAliases + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| pstn | BridgePstnPins | ❌ | | +| web | str | ❌ | Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ | +| aliases | List[str] | ❌ | List of bridge aliases. An alias is a unique personal meeting name that can be specified for the default bridge. It can be used to join to a meeting in the same way as the short identifier. | + + diff --git a/documentation/models/BridgePinsWithoutPstn.md b/documentation/models/BridgePinsWithoutPstn.md new file mode 100644 index 00000000..53b79407 --- /dev/null +++ b/documentation/models/BridgePinsWithoutPstn.md @@ -0,0 +1,9 @@ +# BridgePinsWithoutPstn + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| web | str | ❌ | Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ | + + diff --git a/documentation/models/BridgePreferences.md b/documentation/models/BridgePreferences.md new file mode 100644 index 00000000..1cd46c67 --- /dev/null +++ b/documentation/models/BridgePreferences.md @@ -0,0 +1,59 @@ +# BridgePreferences + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------- | :-------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| join | BridgeJoinPreferences | ❌ | | +| play_tones | PlayTones | ❌ | Specifies enter and exit tones mode. 1) On - Enter and exit tones switched on. 2) Off - Enter and exit tones switched off. 3) ExitOnly - Only exit tones switched on. 4) EnterOnly - Only enter tones switched on. | +| music_on_hold | bool | ❌ | Specifies whether to play music on hold when alone | +| join_before_host | bool | ❌ | Specifies if participants can join to a meeting before host. Default value depends on the bridge type: - default bridge (PMI) -> false - other types -> true | +| screen_sharing | bool | ❌ | Specifies if screen sharing is allowed | +| recordings_mode | RecordingsMode | ❌ | Controls whether recordings are enabled automatically or by user decision | +| transcriptions_mode | TranscriptionsMode | ❌ | Controls whether transcriptions are enabled automatically or by user decision | +| recordings | RecordingsPreferences | ❌ | Recordings preferences | +| allow_everyone_transcribe_meetings | bool | ❌ | Controls whether participants can start and pause transcription | + +# PlayTones + +Specifies enter and exit tones mode. + +1. On - Enter and exit tones switched on. +2. Off - Enter and exit tones switched off. +3. ExitOnly - Only exit tones switched on. +4. EnterOnly - Only enter tones switched on. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| ON | str | ✅ | "On" | +| OFF | str | ✅ | "Off" | +| EXITONLY | str | ✅ | "ExitOnly" | +| ENTERONLY | str | ✅ | "EnterOnly" | + +# RecordingsMode + +Controls whether recordings are enabled automatically or by user decision + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AUTO | str | ✅ | "Auto" | +| FORCEAUTO | str | ✅ | "ForceAuto" | +| USER | str | ✅ | "User" | + +# TranscriptionsMode + +Controls whether transcriptions are enabled automatically or by user decision + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AUTO | str | ✅ | "Auto" | +| FORCEAUTO | str | ✅ | "ForceAuto" | +| USER | str | ✅ | "User" | + + diff --git a/documentation/models/BridgePstnPins.md b/documentation/models/BridgePstnPins.md new file mode 100644 index 00000000..4129cb50 --- /dev/null +++ b/documentation/models/BridgePstnPins.md @@ -0,0 +1,10 @@ +# BridgePstnPins + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------- | +| host | str | ❌ | Host PSTN PIN. If it is not specified while creation, then a PIN will be generated. | +| participant | str | ❌ | Participant PSTN PIN. If it is not specified while creation, then a PIN will be generated. | + + diff --git a/documentation/models/BridgeRequestSecurity.md b/documentation/models/BridgeRequestSecurity.md new file mode 100644 index 00000000..516424dc --- /dev/null +++ b/documentation/models/BridgeRequestSecurity.md @@ -0,0 +1,13 @@ +# BridgeRequestSecurity + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| password_protected | bool | ❌ | Specifies if a meeting is password protected. By default, Instant and Scheduled bridges are not password protected. For default (PMI) bridge, password protection will be turned on and the password will be generated if it is not specified while creation. While creation to set password protection you should set this field to true and specify a password in the **password** field. If you want to change password or set password protection for an unprotected bridge, you should set this field to true and specify a password in the **password** field in the update operation. To make protected bridge as unprotected you should set this field to false in the update operation. | +| password | str | ❌ | Specifies a password if bridge meetings should be password protected (passwordProtected field is true). Besides that, if the field is specified in the request but **passwordProtected** field is missing then it means that **passwordProtected** field is set to true. | +| no_guests | bool | ❌ | If true, only authenticated users can join to a meeting. | +| same_account | bool | ❌ | If true, only users have the same account can join to a meeting. | +| e2ee | bool | ❌ | If true, end to end encryption will be enabled for a meeting. | + + diff --git a/documentation/models/BridgeResponse.md b/documentation/models/BridgeResponse.md new file mode 100644 index 00000000..a0feba15 --- /dev/null +++ b/documentation/models/BridgeResponse.md @@ -0,0 +1,35 @@ +# BridgeResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Unique bridge identifier | +| name | str | ❌ | Custom name of a bridge | +| type\_ | BridgeResponseType | ❌ | Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. | +| host | User | ❌ | | +| pins | BridgePinsWithAliases | ❌ | | +| security | BridgeResponseSecurity | ❌ | | +| preferences | BridgePreferences | ❌ | | +| discovery | BridgeDiscovery | ❌ | | + +# BridgeResponseType + +Type of bridge. It specifies bridge life cycle. + +1. Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. +2. Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long + time after the last meeting, then it will be deleted. +3. PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. + Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted + from the system. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INSTANT | str | ✅ | "Instant" | +| SCHEDULED | str | ✅ | "Scheduled" | +| PMI | str | ✅ | "PMI" | + + diff --git a/documentation/models/BridgeResponseSecurity.md b/documentation/models/BridgeResponseSecurity.md new file mode 100644 index 00000000..6eda7de8 --- /dev/null +++ b/documentation/models/BridgeResponseSecurity.md @@ -0,0 +1,13 @@ +# BridgeResponseSecurity + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------------- | :------- | :--------------------------------------------------------------- | +| password_protected | bool | ❌ | Specifies if a meeting is password protected. | +| password | BridgeResponseSecurityPassword | ❌ | | +| no_guests | bool | ❌ | If true, only authenticated users can join to a meeting. | +| same_account | bool | ❌ | If true, only users have the same account can join to a meeting. | +| e2ee | bool | ❌ | If true, end to end encryption will be enabled for a meeting. | + + diff --git a/documentation/models/BridgeResponseSecurityPassword.md b/documentation/models/BridgeResponseSecurityPassword.md new file mode 100644 index 00000000..35ff5046 --- /dev/null +++ b/documentation/models/BridgeResponseSecurityPassword.md @@ -0,0 +1,11 @@ +# BridgeResponseSecurityPassword + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| plain_text | str | ❌ | Meeting password. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. | +| pstn | str | ❌ | Meeting password for PSTN users. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. | +| join_query | str | ❌ | Meeting password hash. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. | + + diff --git a/documentation/models/BridgeTargetRequest.md b/documentation/models/BridgeTargetRequest.md new file mode 100644 index 00000000..85c2fd2d --- /dev/null +++ b/documentation/models/BridgeTargetRequest.md @@ -0,0 +1,10 @@ +# BridgeTargetRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------- | +| telephony_session_id | str | ✅ | Internal identifier of a call session to be connected to (bridged) | +| party_id | str | ✅ | Internal identifier of a call party to be connected to (bridged) | + + diff --git a/documentation/models/BulkAccountCallRecordingsResource.md b/documentation/models/BulkAccountCallRecordingsResource.md new file mode 100644 index 00000000..09919b8a --- /dev/null +++ b/documentation/models/BulkAccountCallRecordingsResource.md @@ -0,0 +1,11 @@ +# BulkAccountCallRecordingsResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------------------- | :------- | :---------- | +| added_extensions | List[CallRecordingExtensionResource] | ❌ | | +| updated_extensions | List[CallRecordingExtensionResource] | ❌ | | +| removed_extensions | List[CallRecordingExtensionResource] | ❌ | | + + diff --git a/documentation/models/BulkAddDevicesErrorItem.md b/documentation/models/BulkAddDevicesErrorItem.md new file mode 100644 index 00000000..4a77331f --- /dev/null +++ b/documentation/models/BulkAddDevicesErrorItem.md @@ -0,0 +1,10 @@ +# BulkAddDevicesErrorItem + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------- | :------- | :------------------------------------------------------------------------------------------------- | +| successful | bool | ✅ | Indicates if the provisioning operation was successful for this item, always `false` in this model | +| errors | List[ApiErrorWithParameter] | ✅ | | + + diff --git a/documentation/models/BulkAddDevicesItem.md b/documentation/models/BulkAddDevicesItem.md new file mode 100644 index 00000000..70ebc3e2 --- /dev/null +++ b/documentation/models/BulkAddDevicesItem.md @@ -0,0 +1,54 @@ +# BulkAddDevicesItem + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------- | +| extension | BulkOperationExtensionReference | ✅ | Information about an extension this device is assigned to | +| type\_ | BulkAddDevicesItemType | ✅ | Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment | +| emergency | BulkAddDevicesItemEmergency | ✅ | Only "address" is supported at the moment | +| phone_info | BulkAddDevicesItemPhoneInfo | ✅ | | +| cost_center_id | str | ❌ | Internal identifier of a cost center | + +# BulkAddDevicesItemType + +Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| WEBRTC | str | ✅ | "WebRTC" | + +# BulkAddDevicesItemEmergency + +Only "address" is supported at the moment + +# Emergency_1_2 + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------ | :------- | :---------------------- | +| address | PostalAddress | ✅ | Postal address/location | + +# Emergency_2_2 + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------ | :------- | :---------- | +| location | Emergency2Location2 | ✅ | | + +# Emergency_2Location_2 + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------- | +| id\_ | str | ✅ | Emergency location ID | + +# BulkAddDevicesItemPhoneInfo + + diff --git a/documentation/models/BulkAddDevicesRequest.md b/documentation/models/BulkAddDevicesRequest.md new file mode 100644 index 00000000..9d572e00 --- /dev/null +++ b/documentation/models/BulkAddDevicesRequest.md @@ -0,0 +1,9 @@ +# BulkAddDevicesRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------- | +| records | List[BulkAddDevicesItem] | ✅ | | + + diff --git a/documentation/models/BulkAddDevicesResponse.md b/documentation/models/BulkAddDevicesResponse.md new file mode 100644 index 00000000..a1e0ff5a --- /dev/null +++ b/documentation/models/BulkAddDevicesResponse.md @@ -0,0 +1,11 @@ +# BulkAddDevicesResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------- | :------- | :---------- | +| results | List[BulkAddDevicesResponseResults] | ✅ | | + +# BulkAddDevicesResponseResults + + diff --git a/documentation/models/BulkAddDevicesSuccessItem.md b/documentation/models/BulkAddDevicesSuccessItem.md new file mode 100644 index 00000000..b554b10d --- /dev/null +++ b/documentation/models/BulkAddDevicesSuccessItem.md @@ -0,0 +1,12 @@ +# BulkAddDevicesSuccessItem + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------ | +| successful | bool | ✅ | Indicates if the provisioning operation was successful for this item, always `true` in this model | +| id\_ | str | ✅ | Internal identifier of the created device | +| extension | BulkOperationExtensionReference | ✅ | Information about an extension this device is assigned to | +| phone_number | str | ✅ | Phone number in e.164 format (with '+' prefix) | + + diff --git a/documentation/models/BulkAssignItem.md b/documentation/models/BulkAssignItem.md new file mode 100644 index 00000000..82662cac --- /dev/null +++ b/documentation/models/BulkAssignItem.md @@ -0,0 +1,11 @@ +# BulkAssignItem + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :-------- | :------- | :---------- | +| department_id | str | ❌ | | +| added_extension_ids | List[str] | ❌ | | +| removed_extension_ids | List[str] | ❌ | | + + diff --git a/documentation/models/BulkDeleteUsersRequest.md b/documentation/models/BulkDeleteUsersRequest.md new file mode 100644 index 00000000..d61e7e21 --- /dev/null +++ b/documentation/models/BulkDeleteUsersRequest.md @@ -0,0 +1,10 @@ +# BulkDeleteUsersRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| records | List[BulkOperationExtensionReference] | ✅ | | +| keep_assets_in_inventory | bool | ❌ | Indicates that the freed users' assets (phone numbers and devices) should be moved to account inventory rather than deleted. If set to `true`, the phone numbers and devices assigned to deleted extensions will be kept in the account's inventory. If set to `false`, these assets will be deleted from the account and returned to either the partner's phone numbers or RingCentral's phone number pool | + + diff --git a/documentation/models/BulkDeleteUsersResponse.md b/documentation/models/BulkDeleteUsersResponse.md new file mode 100644 index 00000000..c0ec2b49 --- /dev/null +++ b/documentation/models/BulkDeleteUsersResponse.md @@ -0,0 +1,19 @@ +# BulkDeleteUsersResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------------- | :------- | :---------- | +| records | List[BulkDeleteUsersResponseRecords] | ✅ | | + +# BulkDeleteUsersResponseRecords + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| bulk_item_successful | bool | ✅ | Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors | +| id\_ | str | ❌ | Internal identifier of an extension | +| bulk_item_errors | List[dict] | ❌ | The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false | + + diff --git a/documentation/models/BulkOperationExtensionReference.md b/documentation/models/BulkOperationExtensionReference.md new file mode 100644 index 00000000..6b3fb12a --- /dev/null +++ b/documentation/models/BulkOperationExtensionReference.md @@ -0,0 +1,11 @@ +# BulkOperationExtensionReference + +Information about an extension this device is assigned to + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a RingCentral extension | + + diff --git a/documentation/models/BulkRoleAssignResource.md b/documentation/models/BulkRoleAssignResource.md new file mode 100644 index 00000000..1840c00d --- /dev/null +++ b/documentation/models/BulkRoleAssignResource.md @@ -0,0 +1,13 @@ +# BulkRoleAssignResource + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :-------- | :------- | :---------- | +| site_restricted | bool | ❌ | | +| site_compatible | bool | ❌ | | +| uri | str | ❌ | | +| added_extension_ids | List[str] | ❌ | | +| removed_extension_ids | List[str] | ❌ | | + + diff --git a/documentation/models/BulkTaskInfo.md b/documentation/models/BulkTaskInfo.md new file mode 100644 index 00000000..17e60991 --- /dev/null +++ b/documentation/models/BulkTaskInfo.md @@ -0,0 +1,23 @@ +# BulkTaskInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------- | :------- | :----------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a task for multiple switches creation | +| status | BulkTaskInfoStatus | ❌ | Status of a task | +| creation_time | str | ❌ | Task creation time | +| last_modified_time | str | ❌ | Time of the task latest modification | + +# BulkTaskInfoStatus + +Status of a task + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACCEPTED | str | ✅ | "Accepted" | +| FAILED | str | ✅ | "Failed" | + + diff --git a/documentation/models/BulkUpdateInviteesRequest.md b/documentation/models/BulkUpdateInviteesRequest.md new file mode 100644 index 00000000..5155ee63 --- /dev/null +++ b/documentation/models/BulkUpdateInviteesRequest.md @@ -0,0 +1,26 @@ +# BulkUpdateInviteesRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------- | :------- | :---------- | +| added_invitees | List[AddInviteeRequest] | ❌ | | +| updated_invitees | List[UpdatedInvitees] | ❌ | | +| deleted_invitees | List[RcwResourceIdModel] | ❌ | | + +# UpdatedInvitees + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| id\_ | str | ❌ | Internal object ID | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| email | str | ❌ | User's contact email | +| job_title | str | ❌ | Job title | +| type\_ | RcwInviteeTypeEnum | ❌ | The type of the webinar invitee | +| send_invite | bool | ❌ | Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. | + + diff --git a/documentation/models/BulkUpdateInviteesResponse.md b/documentation/models/BulkUpdateInviteesResponse.md new file mode 100644 index 00000000..6c458a76 --- /dev/null +++ b/documentation/models/BulkUpdateInviteesResponse.md @@ -0,0 +1,11 @@ +# BulkUpdateInviteesResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------- | :------- | :---------- | +| added_invitees | List[InviteeResource] | ❌ | | +| updated_invitees | List[InviteeResource] | ❌ | | +| deleted_invitees | List[RcwResourceIdModel] | ❌ | | + + diff --git a/documentation/models/BusinessAddressInfo.md b/documentation/models/BusinessAddressInfo.md new file mode 100644 index 00000000..cd4786b9 --- /dev/null +++ b/documentation/models/BusinessAddressInfo.md @@ -0,0 +1,15 @@ +# BusinessAddressInfo + +Company business address + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :----------------------- | +| country | str | ❌ | Name of a country | +| state | str | ❌ | Name of a state/province | +| city | str | ❌ | Name of a city | +| street | str | ❌ | Street address | +| zip | str | ❌ | Zip code | + + diff --git a/documentation/models/BusinessSiteCollectionRequest.md b/documentation/models/BusinessSiteCollectionRequest.md new file mode 100644 index 00000000..eea04893 --- /dev/null +++ b/documentation/models/BusinessSiteCollectionRequest.md @@ -0,0 +1,9 @@ +# BusinessSiteCollectionRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------ | :------- | :---------- | +| records | List[RolesBusinessSiteResource] | ❌ | | + + diff --git a/documentation/models/BusinessSiteCollectionResource.md b/documentation/models/BusinessSiteCollectionResource.md new file mode 100644 index 00000000..8394ef4f --- /dev/null +++ b/documentation/models/BusinessSiteCollectionResource.md @@ -0,0 +1,10 @@ +# BusinessSiteCollectionResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------ | :------- | :---------- | +| uri | str | ❌ | | +| records | List[RolesBusinessSiteResource] | ❌ | | + + diff --git a/documentation/models/BusinessSiteResource.md b/documentation/models/BusinessSiteResource.md new file mode 100644 index 00000000..1b51d746 --- /dev/null +++ b/documentation/models/BusinessSiteResource.md @@ -0,0 +1,11 @@ +# BusinessSiteResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| code | str | ❌ | | + + diff --git a/documentation/models/CaiAsyncApiResponse.md b/documentation/models/CaiAsyncApiResponse.md new file mode 100644 index 00000000..13e5b3b0 --- /dev/null +++ b/documentation/models/CaiAsyncApiResponse.md @@ -0,0 +1,9 @@ +# CaiAsyncApiResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| job_id | str | ❌ | | + + diff --git a/documentation/models/CaiErrorCodeResponse.md b/documentation/models/CaiErrorCodeResponse.md new file mode 100644 index 00000000..2d11ac93 --- /dev/null +++ b/documentation/models/CaiErrorCodeResponse.md @@ -0,0 +1,28 @@ +# CaiErrorCodeResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :-------- | :------- | :-------------------------------------------- | +| error_code | ErrorCode | ✅ | | +| message | str | ✅ | Helpful description of the errorCode | +| parameter_name | str | ❌ | Name of parameter if specified in the message | + +# ErrorCode + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| CAI_101 | str | ✅ | "CAI-101" | +| CAI_102 | str | ✅ | "CAI-102" | +| CAI_103 | str | ✅ | "CAI-103" | +| CAI_104 | str | ✅ | "CAI-104" | +| CAI_105 | str | ✅ | "CAI-105" | +| CAI_106 | str | ✅ | "CAI-106" | +| CAI_107 | str | ✅ | "CAI-107" | +| CAI_108 | str | ✅ | "CAI-108" | +| CAI_109 | str | ✅ | "CAI-109" | +| CAI_110 | str | ✅ | "CAI-110" | + + diff --git a/documentation/models/CaiErrorResponse.md b/documentation/models/CaiErrorResponse.md new file mode 100644 index 00000000..a00e60b1 --- /dev/null +++ b/documentation/models/CaiErrorResponse.md @@ -0,0 +1,9 @@ +# CaiErrorResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------- | :------- | :---------- | +| errors | List[CaiErrorCodeResponse] | ❌ | | + + diff --git a/documentation/models/CallAction.md b/documentation/models/CallAction.md new file mode 100644 index 00000000..09f8f244 --- /dev/null +++ b/documentation/models/CallAction.md @@ -0,0 +1,15 @@ +# CallAction + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| HOLDOFF | str | ✅ | "HoldOff" | +| HOLDON | str | ✅ | "HoldOn" | +| PARKON | str | ✅ | "ParkOn" | +| PARKOFF | str | ✅ | "ParkOff" | +| BLINDTRANSFER | str | ✅ | "BlindTransfer" | +| WARMTRANSFER | str | ✅ | "WarmTransfer" | +| DTMFTRANSFER | str | ✅ | "DTMFTransfer" | + + diff --git a/documentation/models/CallActionEnum.md b/documentation/models/CallActionEnum.md new file mode 100644 index 00000000..2fc5edbf --- /dev/null +++ b/documentation/models/CallActionEnum.md @@ -0,0 +1,45 @@ +# CallActionEnum + +The internal action corresponding to the call operation + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| ACCEPT_CALL | str | ✅ | "Accept Call" | +| BARGE_IN_CALL | str | ✅ | "Barge In Call" | +| CALL_PARK | str | ✅ | "Call Park" | +| CALL_RETURN | str | ✅ | "Call Return" | +| CALLOUT_CALLME | str | ✅ | "CallOut-CallMe" | +| CALLING_CARD | str | ✅ | "Calling Card" | +| CONFERENCE_CALL | str | ✅ | "Conference Call" | +| E911_UPDATE | str | ✅ | "E911 Update" | +| EMERGENCY | str | ✅ | "Emergency" | +| EXTERNAL_APPLICATION | str | ✅ | "External Application" | +| FINDME | str | ✅ | "FindMe" | +| FOLLOWME | str | ✅ | "FollowMe" | +| FREESPDL | str | ✅ | "FreeSPDL" | +| HUNTING | str | ✅ | "Hunting" | +| INCOMING_FAX | str | ✅ | "Incoming Fax" | +| MONITORING | str | ✅ | "Monitoring" | +| MOVE | str | ✅ | "Move" | +| OUTGOING_FAX | str | ✅ | "Outgoing Fax" | +| PAGING | str | ✅ | "Paging" | +| PARK_LOCATION | str | ✅ | "Park Location" | +| PHONE_CALL | str | ✅ | "Phone Call" | +| PHONE_LOGIN | str | ✅ | "Phone Login" | +| PICKUP | str | ✅ | "Pickup" | +| RC_MEETINGS | str | ✅ | "RC Meetings" | +| RING_DIRECTLY | str | ✅ | "Ring Directly" | +| RINGME | str | ✅ | "RingMe" | +| RINGOUT_MOBILE | str | ✅ | "RingOut Mobile" | +| RINGOUT_PC | str | ✅ | "RingOut PC" | +| RINGOUT_WEB | str | ✅ | "RingOut Web" | +| SIP_FORWARDING | str | ✅ | "Sip Forwarding" | +| SUPPORT | str | ✅ | "Support" | +| TEXT_RELAY | str | ✅ | "Text Relay" | +| TRANSFER | str | ✅ | "Transfer" | +| UNKNOWN | str | ✅ | "Unknown" | +| VOIP_CALL | str | ✅ | "VoIP Call" | + + diff --git a/documentation/models/CallDirectionEnum.md b/documentation/models/CallDirectionEnum.md new file mode 100644 index 00000000..1c4fdb33 --- /dev/null +++ b/documentation/models/CallDirectionEnum.md @@ -0,0 +1,12 @@ +# CallDirectionEnum + +The direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + + diff --git a/documentation/models/CallDurationFilter.md b/documentation/models/CallDurationFilter.md new file mode 100644 index 00000000..4e40c5f4 --- /dev/null +++ b/documentation/models/CallDurationFilter.md @@ -0,0 +1,12 @@ +# CallDurationFilter + +Filtering of calls based on the overall call length + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------------------------------- | +| min_seconds | int | ❌ | Minimum duration of call in seconds | +| max_seconds | int | ❌ | Maximum duration of call in seconds | + + diff --git a/documentation/models/CallFilters.md b/documentation/models/CallFilters.md new file mode 100644 index 00000000..a8f23903 --- /dev/null +++ b/documentation/models/CallFilters.md @@ -0,0 +1,24 @@ +# CallFilters + +Optional filters that limit the scope of calls (joined via AND) + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| extension_filters | ExtensionFilters | ❌ | Specifies filtering based on extension ids | +| queues | List[str] | ❌ | List of queues extension ids which allows to get data only for calls that were routed through any of these queues | +| called_numbers | List[str] | ❌ | The direct company numbers the caller called (joined via OR) | +| directions | List[Direction] | ❌ | Specifies the call directions relative to the scope specified in grouping object (joined via OR). Not applicable to internal origin calls with company scope | +| origins | List[Origin] | ❌ | Specifies whether an external party was present in the initial segment of the call (joined via OR) | +| call_responses | List[CallResponse] | ❌ | Filtering of calls by first response (joined via OR) | +| call_results | List[CallResult] | ❌ | Filtering of calls by the nature of call result (joined via OR) | +| call_segments | List[CallSegmentFilter] | ❌ | Filtering of calls by presence of specific segment (joined via OR) | +| call_actions | List[CallAction] | ❌ | Filtering of calls by presence of specific action (joined via OR) | +| company_hours | List[CompanyHoursOptions] | ❌ | Filtering of calls by company's business hours or after hours (joined via OR) | +| call_duration | CallDurationFilter | ❌ | Filtering of calls based on the overall call length | +| time_spent | TimeSpentFilter | ❌ | Filtering of calls based on the time spent by specified mailbox(es) on call | +| queue_sla | List[QueueSlaOptions] | ❌ | Filtering calls that were within or out of queue SLA (joined via OR). Only applicable to Queues grouping | +| call_types | List[CallType] | ❌ | Filtering of calls based on how the call started from the callee perspective (joined via OR). If the call is outbound relative to the grouping scope, CallType is Outbound | + + diff --git a/documentation/models/CallInfoCq.md b/documentation/models/CallInfoCq.md new file mode 100644 index 00000000..93e7f1c1 --- /dev/null +++ b/documentation/models/CallInfoCq.md @@ -0,0 +1,12 @@ +# CallInfoCq + +Primary/additional CQ information + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :------------------------------------------------------------------ | +| primary | PrimaryCqInfo | ❌ | Primary call session information. Supported for Call Queues only | +| additional | AdditionalCqInfo | ❌ | Additional call session information. Supported for Call Queues only | + + diff --git a/documentation/models/CallInternalTypeEnum.md b/documentation/models/CallInternalTypeEnum.md new file mode 100644 index 00000000..73d8ddfa --- /dev/null +++ b/documentation/models/CallInternalTypeEnum.md @@ -0,0 +1,23 @@ +# CallInternalTypeEnum + +The internal type of the call + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| LOCAL | str | ✅ | "Local" | +| LONGDISTANCE | str | ✅ | "LongDistance" | +| INTERNATIONAL | str | ✅ | "International" | +| SIP | str | ✅ | "Sip" | +| RINGME | str | ✅ | "RingMe" | +| RINGOUT | str | ✅ | "RingOut" | +| USUAL | str | ✅ | "Usual" | +| TOLLFREENUMBER | str | ✅ | "TollFreeNumber" | +| VERIFICATIONNUMBER | str | ✅ | "VerificationNumber" | +| VMA | str | ✅ | "Vma" | +| LOCALNUMBER | str | ✅ | "LocalNumber" | +| IMSOUTGOING | str | ✅ | "ImsOutgoing" | +| IMSINCOMING | str | ✅ | "ImsIncoming" | + + diff --git a/documentation/models/CallLegTypeEnum.md b/documentation/models/CallLegTypeEnum.md new file mode 100644 index 00000000..c2e007e4 --- /dev/null +++ b/documentation/models/CallLegTypeEnum.md @@ -0,0 +1,50 @@ +# CallLegTypeEnum + +Leg type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :--- | :------- | :-------------------------- | +| SIPFORWARDING | str | ✅ | "SipForwarding" | +| SERVICEMINUS2 | str | ✅ | "ServiceMinus2" | +| SERVICEMINUS3 | str | ✅ | "ServiceMinus3" | +| PSTNTOSIP | str | ✅ | "PstnToSip" | +| ACCEPT | str | ✅ | "Accept" | +| FINDME | str | ✅ | "FindMe" | +| FOLLOWME | str | ✅ | "FollowMe" | +| TESTCALL | str | ✅ | "TestCall" | +| FAXSENT | str | ✅ | "FaxSent" | +| CALLBACK | str | ✅ | "CallBack" | +| CALLINGCARD | str | ✅ | "CallingCard" | +| RINGDIRECTLY | str | ✅ | "RingDirectly" | +| RINGOUTWEBTOSUBSCRIBER | str | ✅ | "RingOutWebToSubscriber" | +| RINGOUTWEBTOCALLER | str | ✅ | "RingOutWebToCaller" | +| SIPTOPSTNMETERED | str | ✅ | "SipToPstnMetered" | +| RINGOUTCLIENTTOSUBSCRIBER | str | ✅ | "RingOutClientToSubscriber" | +| RINGOUTCLIENTTOCALLER | str | ✅ | "RingOutClientToCaller" | +| RINGME | str | ✅ | "RingMe" | +| TRANSFERCALL | str | ✅ | "TransferCall" | +| SIPTOPSTNUNMETERED | str | ✅ | "SipToPstnUnmetered" | +| RINGOUTDEVICETOSUBSCRIBER | str | ✅ | "RingOutDeviceToSubscriber" | +| RINGOUTDEVICETOCALLER | str | ✅ | "RingOutDeviceToCaller" | +| RINGOUTONELEGTOCALLER | str | ✅ | "RingOutOneLegToCaller" | +| EXTENSIONTOEXTENSION | str | ✅ | "ExtensionToExtension" | +| CALLPARK | str | ✅ | "CallPark" | +| PAGINGSERVER | str | ✅ | "PagingServer" | +| HUNTING | str | ✅ | "Hunting" | +| OUTGOINGFREESPDL | str | ✅ | "OutgoingFreeSpDl" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| CONFERENCECALL | str | ✅ | "ConferenceCall" | +| MOBILEAPP | str | ✅ | "MobileApp" | +| MOVETOCONFERENCE | str | ✅ | "MoveToConference" | +| UNKNOWN | str | ✅ | "Unknown" | +| MEETINGSCALL | str | ✅ | "MeetingsCall" | +| SILENTMONITORING | str | ✅ | "SilentMonitoring" | +| MONITORING | str | ✅ | "Monitoring" | +| PICKUP | str | ✅ | "Pickup" | +| IMSCALL | str | ✅ | "ImsCall" | +| JOINCALL | str | ✅ | "JoinCall" | +| TEXTRELAY | str | ✅ | "TextRelay" | + + diff --git a/documentation/models/CallLogDelegateInfo.md b/documentation/models/CallLogDelegateInfo.md new file mode 100644 index 00000000..2673465e --- /dev/null +++ b/documentation/models/CallLogDelegateInfo.md @@ -0,0 +1,12 @@ +# CallLogDelegateInfo + +Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a Secretary extension | +| name | str | ❌ | Custom name of a Secretary extension | + + diff --git a/documentation/models/CallLogFromParty.md b/documentation/models/CallLogFromParty.md new file mode 100644 index 00000000..e2f470e4 --- /dev/null +++ b/documentation/models/CallLogFromParty.md @@ -0,0 +1,15 @@ +# CallLogFromParty + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :---------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS | +| extension_number | str | ❌ | Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message | +| extension_id | str | ❌ | Internal identifier of an extension | +| name | str | ❌ | Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then | +| location | str | ❌ | Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) | +| device | CallLogRecordDeviceInfo | ❌ | | +| dialer_phone_number | str | ❌ | Dialer phone number without any format modifications. Returned for inbound calls | + + diff --git a/documentation/models/CallLogRecord.md b/documentation/models/CallLogRecord.md new file mode 100644 index 00000000..61e19ba9 --- /dev/null +++ b/documentation/models/CallLogRecord.md @@ -0,0 +1,55 @@ +# CallLogRecord + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | CallTypeEnum | ✅ | The type of call | +| direction | CallDirectionEnum | ✅ | The direction of a call | +| action | CallActionEnum | ✅ | The internal action corresponding to the call operation | +| start_time | str | ✅ | The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| duration | int | ✅ | Call duration in seconds | +| duration_ms | int | ✅ | Call duration in milliseconds | +| id\_ | str | ✅ | Internal identifier of a call log record | +| uri | str | ✅ | Canonical URI of a call log record | +| session_id | str | ✅ | Internal identifier of a call session | +| extension | ExtensionInfoCallLog | ❌ | Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned | +| telephony_session_id | str | ❌ | Telephony identifier of a call session | +| sip_uuid_info | str | ❌ | Call session identifier, required for Telephony REST API | +| transfer_target | CallLogRecordTransferTarget | ❌ | | +| transferee | CallLogRecordTransferee | ❌ | | +| party_id | str | ❌ | Internal Identifier of Participant | +| transport | CallTransportEnum | ❌ | The type of call transport. 'PSTN' indicates that a call leg was initiated from the PSTN network provider; 'VoIP' - from an RC phone. | +| from\_ | CallLogFromParty | ❌ | | +| to | CallLogToParty | ❌ | | +| message | CallLogRecordMessage | ❌ | Linked message (Fax/Voicemail) | +| delegate | CallLogDelegateInfo | ❌ | Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension | +| delegation_type | DelegationTypeEnum | ❌ | Call delegation type | +| result | CallResultEnum | ❌ | The result of the call operation | +| reason | CallResultReasonEnum | ❌ | The reason of the call result: _ `Accepted` - The call was connected to and accepted by this number _ `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) _ `Line Busy` - The phone number you dialed was busy _ `Not Answered` - The phone number you dialed was not answered _ `No Answer` - You did not answer the call _ `Hang Up` - The caller hung up before the call was answered _ `Stopped` - This attempt was stopped because the call was answered by another phone _ `Internal Error` - An internal error occurred when making the call. Please try again _ `No Credit` - There was not enough Calling Credit on your account to make this call _ `Restricted Number` - The number you dialed is restricted by RingCentral _ `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again _ `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling _ `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator _ `Bad Number` - An error occurred when making the call. Please check the number before trying again _ `Info 411 Restricted` - Calling to 411 Information Services is restricted _ `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> _ `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection _ `Failed Try Again` - Call failed. Please try again _ `Max Call Limit` - The number of simultaneous calls to your account has reached its limit _ `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service _ `Calls Not Accepted` - Your account was not accepting calls at this time _ `Number Not Allowed` - The number that was dialed to access your account is not allowed _ `Number Blocked` - This number is in your Blocked Numbers list _ `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator _ `Resource Error` - An error occurred when making the call. Please try again _ `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account _ `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established _ `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped _ `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine _ `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax _ `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again _ `Fax Save Error` - An internal error occurred when saving the fax. Please try again _ `Fax Send Error` - An error occurred when sending the fax. Please try again _ `Emergency Address not defined` - The call was rejected due to no E911 address _ `Carrier is not active` - The call was rejected due to carrier inactivity _ `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration _ `Internal Call Error` - An internal error occurred when making the call. Please try again _ `Receive Error` - Fax receive error | +| reason_description | str | ❌ | The detailed reason description of the call result | +| recording | CallLogRecordingInfo | ❌ | Call recording data. Returned if the call was recorded | +| short_recording | bool | ❌ | Indicates that the recording is too short and therefore wouldn't be returned. The flag is not returned if the value is false | +| billing | BillingInfo | ❌ | Billing information related to the call. Returned for 'Detailed' view only | +| internal_type | CallInternalTypeEnum | ❌ | The internal type of the call | +| deleted | bool | ❌ | Indicates whether the record is deleted. Returned for deleted records, for ISync requests | +| legs | List[CallLogRecordLegInfo] | ❌ | For 'Detailed' view only. Leg description | +| last_modified_time | str | ❌ | For 'Detailed' view only. The datetime when the call log record was modified in (ISO 8601)[https://en.wikipedia.org/wiki/ISO_8601] format including timezone, for example _2016-03-10T18:07:52.534Z_ | + +# CallLogRecordTransferTarget + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------- | +| telephony_session_id | str | ❌ | Internal Identifier of Telephony Session, which belongs to transfer target in case of Warm Transfer | + +# CallLogRecordTransferee + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------------------------------------------------------------------------------- | +| telephony_session_id | str | ❌ | Internal Identifier of Telephony Session, which belongs to transferee in case of Warm Transfer | + + diff --git a/documentation/models/CallLogRecordDeviceInfo.md b/documentation/models/CallLogRecordDeviceInfo.md new file mode 100644 index 00000000..e4055e53 --- /dev/null +++ b/documentation/models/CallLogRecordDeviceInfo.md @@ -0,0 +1,10 @@ +# CallLogRecordDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------- | +| id\_ | str | ✅ | Internal identifier of a device | +| uri | str | ✅ | Canonical URI of a device resource | + + diff --git a/documentation/models/CallLogRecordLegInfo.md b/documentation/models/CallLogRecordLegInfo.md new file mode 100644 index 00000000..1b1cc8d9 --- /dev/null +++ b/documentation/models/CallLogRecordLegInfo.md @@ -0,0 +1,51 @@ +# CallLogRecordLegInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | CallTypeEnum | ✅ | The type of call | +| direction | CallDirectionEnum | ✅ | The direction of a call | +| action | CallActionEnum | ✅ | The internal action corresponding to the call operation | +| start_time | str | ✅ | The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| duration | int | ✅ | Call duration in seconds | +| duration_ms | int | ✅ | Call duration in milliseconds | +| leg_type | CallLegTypeEnum | ✅ | Leg type | +| extension | ExtensionInfoCallLog | ❌ | Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned | +| telephony_session_id | str | ❌ | Telephony identifier of a call session | +| sip_uuid_info | str | ❌ | Call session identifier, required for Telephony REST API | +| transfer_target | CallLogRecordLegInfoTransferTarget | ❌ | | +| transferee | CallLogRecordLegInfoTransferee | ❌ | | +| party_id | str | ❌ | Internal Identifier of Participant | +| transport | CallTransportEnum | ❌ | The type of call transport. 'PSTN' indicates that a call leg was initiated from the PSTN network provider; 'VoIP' - from an RC phone. | +| from\_ | CallLogFromParty | ❌ | | +| to | CallLogToParty | ❌ | | +| message | CallLogRecordMessage | ❌ | Linked message (Fax/Voicemail) | +| delegate | CallLogDelegateInfo | ❌ | Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension | +| delegation_type | DelegationTypeEnum | ❌ | Call delegation type | +| result | CallResultEnum | ❌ | The result of the call operation | +| reason | CallResultReasonEnum | ❌ | The reason of the call result: _ `Accepted` - The call was connected to and accepted by this number _ `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) _ `Line Busy` - The phone number you dialed was busy _ `Not Answered` - The phone number you dialed was not answered _ `No Answer` - You did not answer the call _ `Hang Up` - The caller hung up before the call was answered _ `Stopped` - This attempt was stopped because the call was answered by another phone _ `Internal Error` - An internal error occurred when making the call. Please try again _ `No Credit` - There was not enough Calling Credit on your account to make this call _ `Restricted Number` - The number you dialed is restricted by RingCentral _ `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again _ `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling _ `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator _ `Bad Number` - An error occurred when making the call. Please check the number before trying again _ `Info 411 Restricted` - Calling to 411 Information Services is restricted _ `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> _ `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection _ `Failed Try Again` - Call failed. Please try again _ `Max Call Limit` - The number of simultaneous calls to your account has reached its limit _ `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service _ `Calls Not Accepted` - Your account was not accepting calls at this time _ `Number Not Allowed` - The number that was dialed to access your account is not allowed _ `Number Blocked` - This number is in your Blocked Numbers list _ `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator _ `Resource Error` - An error occurred when making the call. Please try again _ `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account _ `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established _ `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped _ `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine _ `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax _ `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again _ `Fax Save Error` - An internal error occurred when saving the fax. Please try again _ `Fax Send Error` - An error occurred when sending the fax. Please try again _ `Emergency Address not defined` - The call was rejected due to no E911 address _ `Carrier is not active` - The call was rejected due to carrier inactivity _ `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration _ `Internal Call Error` - An internal error occurred when making the call. Please try again _ `Receive Error` - Fax receive error | +| reason_description | str | ❌ | The detailed reason description of the call result | +| recording | CallLogRecordingInfo | ❌ | Call recording data. Returned if the call was recorded | +| short_recording | bool | ❌ | Indicates that the recording is too short and therefore wouldn't be returned. The flag is not returned if the value is false | +| billing | BillingInfo | ❌ | Billing information related to the call. Returned for 'Detailed' view only | +| internal_type | CallInternalTypeEnum | ❌ | The internal type of the call | +| master | bool | ❌ | Returned for 'Detailed' call log. Specifies if the leg is master-leg | + +# CallLogRecordLegInfoTransferTarget + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------- | +| telephony_session_id | str | ❌ | Internal Identifier of Telephony Session, which belongs to transfer target in case of Warm Transfer | + +# CallLogRecordLegInfoTransferee + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------------------------------------------------------------------------------- | +| telephony_session_id | str | ❌ | Internal Identifier of Telephony Session, which belongs to transferee in case of Warm Transfer | + + diff --git a/documentation/models/CallLogRecordMessage.md b/documentation/models/CallLogRecordMessage.md new file mode 100644 index 00000000..d46fa3f4 --- /dev/null +++ b/documentation/models/CallLogRecordMessage.md @@ -0,0 +1,13 @@ +# CallLogRecordMessage + +Linked message (Fax/Voicemail) + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :------------------------------- | +| id\_ | str | ✅ | Internal identifier of a message | +| type\_ | str | ✅ | Type of message | +| uri | str | ✅ | Link to a message resource | + + diff --git a/documentation/models/CallLogRecordingInfo.md b/documentation/models/CallLogRecordingInfo.md new file mode 100644 index 00000000..37575aa1 --- /dev/null +++ b/documentation/models/CallLogRecordingInfo.md @@ -0,0 +1,25 @@ +# CallLogRecordingInfo + +Call recording data. Returned if the call was recorded + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of the call recording | +| uri | str | ✅ | Link to the call recording metadata resource | +| type\_ | CallLogRecordingInfoType | ✅ | Indicates recording mode used | +| content_uri | str | ✅ | Link to a call recording binary content. Has to be retrieved with proper authorization (access token must be passed via `Authorization` header or query parameter) | + +# CallLogRecordingInfoType + +Indicates recording mode used + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AUTOMATIC | str | ✅ | "Automatic" | +| ONDEMAND | str | ✅ | "OnDemand" | + + diff --git a/documentation/models/CallLogResponse.md b/documentation/models/CallLogResponse.md new file mode 100644 index 00000000..5058e362 --- /dev/null +++ b/documentation/models/CallLogResponse.md @@ -0,0 +1,12 @@ +# CallLogResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :------------------------------------------------ | +| records | List[CallLogRecord] | ✅ | List of call log records | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the list of company/user call log records | + + diff --git a/documentation/models/CallLogSyncInfo.md b/documentation/models/CallLogSyncInfo.md new file mode 100644 index 00000000..a43e46d7 --- /dev/null +++ b/documentation/models/CallLogSyncInfo.md @@ -0,0 +1,11 @@ +# CallLogSyncInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | +| sync_type | CallLogSyncTypeEnum | ✅ | Type of call log synchronization request: full or incremental sync | +| sync_token | str | ✅ | Synchronization token | +| sync_time | str | ✅ | Time of the last synchronization in (ISO 8601)[https://en.wikipedia.org/wiki/ISO_8601] format including timezone, for example _2016-03-10T18:07:52.534Z_ | + + diff --git a/documentation/models/CallLogSyncResponse.md b/documentation/models/CallLogSyncResponse.md new file mode 100644 index 00000000..1d778385 --- /dev/null +++ b/documentation/models/CallLogSyncResponse.md @@ -0,0 +1,11 @@ +# CallLogSyncResponse + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ✅ | Link to the list of call log records with sync information | +| records | List[CallLogRecord] | ✅ | List of call log records with synchronization information. For `ISync` the total number of returned records is limited to 250; this includes both new records and the old ones, specified by the recordCount parameter | +| sync_info | CallLogSyncInfo | ✅ | | + + diff --git a/documentation/models/CallLogSyncTypeEnum.md b/documentation/models/CallLogSyncTypeEnum.md new file mode 100644 index 00000000..242f73cf --- /dev/null +++ b/documentation/models/CallLogSyncTypeEnum.md @@ -0,0 +1,12 @@ +# CallLogSyncTypeEnum + +Type of call log synchronization request: full or incremental sync + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FSYNC | str | ✅ | "FSync" | +| ISYNC | str | ✅ | "ISync" | + + diff --git a/documentation/models/CallLogToParty.md b/documentation/models/CallLogToParty.md new file mode 100644 index 00000000..a078154f --- /dev/null +++ b/documentation/models/CallLogToParty.md @@ -0,0 +1,15 @@ +# CallLogToParty + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :---------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS | +| extension_number | str | ❌ | Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message | +| extension_id | str | ❌ | Internal identifier of an extension | +| name | str | ❌ | Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then | +| location | str | ❌ | Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) | +| device | CallLogRecordDeviceInfo | ❌ | | +| dialed_phone_number | str | ❌ | Dialed phone number without any format modifications. Returned for outbound calls | + + diff --git a/documentation/models/CallMonitoringBulkAssign.md b/documentation/models/CallMonitoringBulkAssign.md new file mode 100644 index 00000000..76e6b2ae --- /dev/null +++ b/documentation/models/CallMonitoringBulkAssign.md @@ -0,0 +1,11 @@ +# CallMonitoringBulkAssign + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------- | :------- | :---------- | +| added_extensions | List[CallMonitoringExtensionInfo] | ❌ | | +| updated_extensions | List[CallMonitoringExtensionInfo] | ❌ | | +| removed_extensions | List[CallMonitoringExtensionInfo] | ❌ | | + + diff --git a/documentation/models/CallMonitoringExtensionInfo.md b/documentation/models/CallMonitoringExtensionInfo.md new file mode 100644 index 00000000..59650a17 --- /dev/null +++ b/documentation/models/CallMonitoringExtensionInfo.md @@ -0,0 +1,19 @@ +# CallMonitoringExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of an extension. Only the following extension types are allowed: User, DigitalUser, VirtualUser, FaxUser, Limited | +| permissions | List[CallMonitoringExtensionInfoPermissions] | ❌ | Set of call monitoring group permissions granted to a specified extension. In order to remove a specified extension from a call monitoring group use an empty value | + +# CallMonitoringExtensionInfoPermissions + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| MONITORING | str | ✅ | "Monitoring" | +| MONITORED | str | ✅ | "Monitored" | + + diff --git a/documentation/models/CallMonitoringGroup.md b/documentation/models/CallMonitoringGroup.md new file mode 100644 index 00000000..f501e23f --- /dev/null +++ b/documentation/models/CallMonitoringGroup.md @@ -0,0 +1,11 @@ +# CallMonitoringGroup + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------- | +| uri | str | ❌ | Link to a call monitoring group resource | +| id\_ | str | ❌ | Internal identifier of a group | +| name | str | ❌ | Name of a group | + + diff --git a/documentation/models/CallMonitoringGroupMemberInfo.md b/documentation/models/CallMonitoringGroupMemberInfo.md new file mode 100644 index 00000000..6633fc14 --- /dev/null +++ b/documentation/models/CallMonitoringGroupMemberInfo.md @@ -0,0 +1,26 @@ +# CallMonitoringGroupMemberInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------------------------------------------- | :------- | :---------------------------------------------------- | +| uri | str | ❌ | Link to a call monitoring group member | +| id\_ | str | ❌ | Internal identifier of a call monitoring group member | +| extension_number | str | ❌ | Extension number of a call monitoring group member | +| permissions | List[CallMonitoringGroupMemberInfoPermissions] | ❌ | | + +# CallMonitoringGroupMemberInfoPermissions + +Call monitoring permission; multiple values are allowed: + +- `Monitoring` - User can monitor a group; +- `Monitored` - User can be monitored. + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| MONITORING | str | ✅ | "Monitoring" | +| MONITORED | str | ✅ | "Monitored" | + + diff --git a/documentation/models/CallMonitoringGroupMemberList.md b/documentation/models/CallMonitoringGroupMemberList.md new file mode 100644 index 00000000..f56bfef5 --- /dev/null +++ b/documentation/models/CallMonitoringGroupMemberList.md @@ -0,0 +1,12 @@ +# CallMonitoringGroupMemberList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------- | :------- | :----------------------------------------------- | +| uri | str | ✅ | Link to a call monitoring group members resource | +| records | List[CallMonitoringGroupMemberInfo] | ✅ | List of a call monitoring group members | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/CallMonitoringGroups.md b/documentation/models/CallMonitoringGroups.md new file mode 100644 index 00000000..96a7160d --- /dev/null +++ b/documentation/models/CallMonitoringGroups.md @@ -0,0 +1,12 @@ +# CallMonitoringGroups + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :--------------------------------------------- | +| uri | str | ✅ | Link to a call monitoring groups resource | +| records | List[CallMonitoringGroup] | ✅ | List of call monitoring group members | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/CallParty.md b/documentation/models/CallParty.md new file mode 100644 index 00000000..add4392c --- /dev/null +++ b/documentation/models/CallParty.md @@ -0,0 +1,67 @@ +# CallParty + +Information on a party of a call session + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :---------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a party | +| status | CallStatusInfo | ❌ | Status data of a call session | +| muted | bool | ❌ | Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces | +| stand_alone | bool | ❌ | If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session | +| park | ParkInfo | ❌ | Call park information | +| from\_ | PartyInfo | ❌ | | +| to | PartyInfo | ❌ | | +| owner | OwnerInfo | ❌ | Deprecated. Information on a call owner | +| direction | CallPartyDirection | ❌ | Direction of a call | +| conference_role | CallPartyConferenceRole | ❌ | A party's role in the conference scenarios. For calls of 'Conference' type only | +| ring_out_role | CallPartyRingOutRole | ❌ | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only | +| ring_me_role | CallPartyRingMeRole | ❌ | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only | +| recordings | List[RecordingInfo] | ❌ | Active recordings list | + +# CallPartyDirection + +Direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + +# CallPartyConferenceRole + +A party's role in the conference scenarios. For calls of 'Conference' type only + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| HOST | str | ✅ | "Host" | +| PARTICIPANT | str | ✅ | "Participant" | + +# CallPartyRingOutRole + +A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INITIATOR | str | ✅ | "Initiator" | +| TARGET | str | ✅ | "Target" | + +# CallPartyRingMeRole + +A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INITIATOR | str | ✅ | "Initiator" | +| TARGET | str | ✅ | "Target" | + + diff --git a/documentation/models/CallPartyFlip.md b/documentation/models/CallPartyFlip.md new file mode 100644 index 00000000..d4510ced --- /dev/null +++ b/documentation/models/CallPartyFlip.md @@ -0,0 +1,9 @@ +# CallPartyFlip + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------- | +| call_flip_id | str | ❌ | Call flip id | + + diff --git a/documentation/models/CallPartyReply.md b/documentation/models/CallPartyReply.md new file mode 100644 index 00000000..4aa38fe2 --- /dev/null +++ b/documentation/models/CallPartyReply.md @@ -0,0 +1,10 @@ +# CallPartyReply + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------- | :------- | :------------ | +| reply_with_text | str | ❌ | Text to reply | +| reply_with_pattern | ReplyWithPattern | ❌ | | + + diff --git a/documentation/models/CallQueueBulkAssignResource.md b/documentation/models/CallQueueBulkAssignResource.md new file mode 100644 index 00000000..8550ecaf --- /dev/null +++ b/documentation/models/CallQueueBulkAssignResource.md @@ -0,0 +1,10 @@ +# CallQueueBulkAssignResource + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :-------- | :------- | :---------- | +| added_extension_ids | List[str] | ❌ | | +| removed_extension_ids | List[str] | ❌ | | + + diff --git a/documentation/models/CallQueueDetails.md b/documentation/models/CallQueueDetails.md new file mode 100644 index 00000000..02aceb6b --- /dev/null +++ b/documentation/models/CallQueueDetails.md @@ -0,0 +1,64 @@ +# CallQueueDetails + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :---------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to a call queue | +| id\_ | str | ❌ | Internal identifier of a call queue | +| extension_number | str | ❌ | Extension number of a call queue | +| name | str | ❌ | Name of a call queue | +| status | CallQueueDetailsStatus | ❌ | Call queue status | +| sub_type | CallQueueDetailsSubType | ❌ | Indicates whether it is an emergency call queue extension or not | +| service_level_settings | CallQueueServiceLevelSettings | ❌ | Call queue service level settings | +| editable_member_status | bool | ❌ | Allows members to change their queue status | +| alert_timer | AlertTimer | ❌ | Alert timer or pickup setting. Delay time in seconds before call queue group members are notified when calls are queued | + +# CallQueueDetailsStatus + +Call queue status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | + +# CallQueueDetailsSubType + +Indicates whether it is an emergency call queue extension or not + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| EMERGENCY | str | ✅ | "Emergency" | + +# AlertTimer + +Alert timer or pickup setting. Delay time in seconds before call queue group members are notified when calls are queued + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| \_5 | int | ✅ | 5 | +| \_10 | int | ✅ | 10 | +| \_15 | int | ✅ | 15 | +| \_20 | int | ✅ | 20 | +| \_30 | int | ✅ | 30 | +| \_45 | int | ✅ | 45 | +| \_60 | int | ✅ | 60 | +| \_120 | int | ✅ | 120 | +| \_180 | int | ✅ | 180 | +| \_240 | int | ✅ | 240 | +| \_300 | int | ✅ | 300 | +| \_360 | int | ✅ | 360 | +| \_420 | int | ✅ | 420 | +| \_480 | int | ✅ | 480 | +| \_540 | int | ✅ | 540 | +| \_600 | int | ✅ | 600 | + + diff --git a/documentation/models/CallQueueExtensionInfo.md b/documentation/models/CallQueueExtensionInfo.md new file mode 100644 index 00000000..9e87fa65 --- /dev/null +++ b/documentation/models/CallQueueExtensionInfo.md @@ -0,0 +1,16 @@ +# CallQueueExtensionInfo + +For Call Queue extension type only. Please note that legacy +'Department' extension type corresponds to 'Call Queue' extensions +in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| sla_goal | int | ❌ | Target percentage of calls that must be answered by agents within the service level time threshold | +| sla_threshold_seconds | int | ❌ | Period of time in seconds that is considered to be an acceptable service level | +| include_abandoned_calls | bool | ❌ | If `true` abandoned calls (hanged up prior to being served) are included into service level calculation | +| abandoned_threshold_seconds | int | ❌ | Period of time in seconds specifying abandoned calls duration - calls that are shorter will not be included into the calculation of service level.; zero value means that abandoned calls of any duration will be included into calculation | + + diff --git a/documentation/models/CallQueueId.md b/documentation/models/CallQueueId.md new file mode 100644 index 00000000..cb4bce09 --- /dev/null +++ b/documentation/models/CallQueueId.md @@ -0,0 +1,11 @@ +# CallQueueId + +Call queue information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a call queue | + + diff --git a/documentation/models/CallQueueIdResource.md b/documentation/models/CallQueueIdResource.md new file mode 100644 index 00000000..6ee434e9 --- /dev/null +++ b/documentation/models/CallQueueIdResource.md @@ -0,0 +1,9 @@ +# CallQueueIdResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a call queue | + + diff --git a/documentation/models/CallQueueInfo.md b/documentation/models/CallQueueInfo.md new file mode 100644 index 00000000..d4916400 --- /dev/null +++ b/documentation/models/CallQueueInfo.md @@ -0,0 +1,36 @@ +# CallQueueInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------- | :------- | :--------------------------------------------------------------- | +| uri | str | ❌ | Link to a call queue | +| id\_ | str | ❌ | Internal identifier of a call queue | +| extension_number | str | ❌ | Extension number of a call queue | +| name | str | ❌ | Name of a call queue | +| status | CallQueueInfoStatus | ❌ | Call queue status | +| sub_type | CallQueueInfoSubType | ❌ | Indicates whether it is an emergency call queue extension or not | + +# CallQueueInfoStatus + +Call queue status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | + +# CallQueueInfoSubType + +Indicates whether it is an emergency call queue extension or not + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| EMERGENCY | str | ✅ | "Emergency" | + + diff --git a/documentation/models/CallQueueInfoRequest.md b/documentation/models/CallQueueInfoRequest.md new file mode 100644 index 00000000..8800b1c8 --- /dev/null +++ b/documentation/models/CallQueueInfoRequest.md @@ -0,0 +1,16 @@ +# CallQueueInfoRequest + +For Call Queue extension type only. Please note that legacy 'Department' +extension type corresponds to 'Call Queue' extensions in modern RingCentral +product terminology + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------- | +| sla_goal | int | ❌ | Target percentage of calls that must be answered by agents within the service level time threshold | +| sla_threshold_seconds | int | ❌ | | +| include_abandoned_calls | bool | ❌ | | +| abandoned_threshold_seconds | int | ❌ | | + + diff --git a/documentation/models/CallQueueMember.md b/documentation/models/CallQueueMember.md new file mode 100644 index 00000000..5d7a0d14 --- /dev/null +++ b/documentation/models/CallQueueMember.md @@ -0,0 +1,14 @@ +# CallQueueMember + +Call queue member information + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| name | str | ❌ | Extension full name | +| extension_number | str | ❌ | Extension number | +| site | SiteResource | ❌ | Site extension information | + + diff --git a/documentation/models/CallQueueMemberId.md b/documentation/models/CallQueueMemberId.md new file mode 100644 index 00000000..297f6199 --- /dev/null +++ b/documentation/models/CallQueueMemberId.md @@ -0,0 +1,11 @@ +# CallQueueMemberId + +Call queue member information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension - queue member | + + diff --git a/documentation/models/CallQueueMemberInfo.md b/documentation/models/CallQueueMemberInfo.md new file mode 100644 index 00000000..84210c12 --- /dev/null +++ b/documentation/models/CallQueueMemberInfo.md @@ -0,0 +1,11 @@ +# CallQueueMemberInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------- | +| uri | str | ❌ | Link to a call queue member | +| id\_ | int | ❌ | Internal identifier of a call queue member | +| extension_number | str | ❌ | Extension number of a call queue member | + + diff --git a/documentation/models/CallQueueMemberPresence.md b/documentation/models/CallQueueMemberPresence.md new file mode 100644 index 00000000..2adf1283 --- /dev/null +++ b/documentation/models/CallQueueMemberPresence.md @@ -0,0 +1,11 @@ +# CallQueueMemberPresence + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :-------------- | :------- | :-------------------------------------------------------------------------- | +| member | CallQueueMember | ❌ | Call queue member information | +| accept_queue_calls | bool | ❌ | Private member telephony availability status applied to calls of all queues | +| accept_current_queue_calls | bool | ❌ | Call queue member availability in this particular queue | + + diff --git a/documentation/models/CallQueueMembers.md b/documentation/models/CallQueueMembers.md new file mode 100644 index 00000000..eac51e3b --- /dev/null +++ b/documentation/models/CallQueueMembers.md @@ -0,0 +1,12 @@ +# CallQueueMembers + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :--------------------------------------------- | +| uri | str | ✅ | Link to a call queue members resource | +| records | List[CallQueueMemberInfo] | ✅ | List of call queue members | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/CallQueueOverflowSettings.md b/documentation/models/CallQueueOverflowSettings.md new file mode 100644 index 00000000..fcf86ecc --- /dev/null +++ b/documentation/models/CallQueueOverflowSettings.md @@ -0,0 +1,10 @@ +# CallQueueOverflowSettings + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------ | :------- | :------------------------- | +| enabled | bool | ❌ | Call queue overflow status | +| items | List[CallQueueInfo] | ❌ | | + + diff --git a/documentation/models/CallQueueOverflowSettingsRequestResource.md b/documentation/models/CallQueueOverflowSettingsRequestResource.md new file mode 100644 index 00000000..a5ae0ecf --- /dev/null +++ b/documentation/models/CallQueueOverflowSettingsRequestResource.md @@ -0,0 +1,10 @@ +# CallQueueOverflowSettingsRequestResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :------------------------- | +| enabled | bool | ❌ | Call queue overflow status | +| items | List[CallQueueIdResource] | ❌ | | + + diff --git a/documentation/models/CallQueuePresence.md b/documentation/models/CallQueuePresence.md new file mode 100644 index 00000000..e6029b18 --- /dev/null +++ b/documentation/models/CallQueuePresence.md @@ -0,0 +1,9 @@ +# CallQueuePresence + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------- | :------- | :---------- | +| records | List[CallQueueMemberPresence] | ❌ | | + + diff --git a/documentation/models/CallQueueResource.md b/documentation/models/CallQueueResource.md new file mode 100644 index 00000000..21ca11fb --- /dev/null +++ b/documentation/models/CallQueueResource.md @@ -0,0 +1,10 @@ +# CallQueueResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/CallQueueServiceLevelSettings.md b/documentation/models/CallQueueServiceLevelSettings.md new file mode 100644 index 00000000..89ab008c --- /dev/null +++ b/documentation/models/CallQueueServiceLevelSettings.md @@ -0,0 +1,14 @@ +# CallQueueServiceLevelSettings + +Call queue service level settings + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------- | +| sla_goal | int | ❌ | Target percentage of calls that must be answered by agents within the service level time threshold | +| sla_threshold_seconds | int | ❌ | The period of time in seconds that is considered to be an acceptable service level | +| include_abandoned_calls | bool | ❌ | Includes abandoned calls (when callers hang up prior to being served by an agent) into service-level calculation | +| abandoned_threshold_seconds | int | ❌ | Abandoned calls that are shorter than the defined period of time in seconds will not be included into the calculation of Service Level | + + diff --git a/documentation/models/CallQueueUpdateMemberPresence.md b/documentation/models/CallQueueUpdateMemberPresence.md new file mode 100644 index 00000000..2a1d8a8d --- /dev/null +++ b/documentation/models/CallQueueUpdateMemberPresence.md @@ -0,0 +1,10 @@ +# CallQueueUpdateMemberPresence + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :---------------- | :------- | :----------------------------------------------------- | +| member | CallQueueMemberId | ❌ | Call queue member information | +| accept_current_queue_calls | bool | ❌ | Call queue member availability for calls of this queue | + + diff --git a/documentation/models/CallQueueUpdatePresence.md b/documentation/models/CallQueueUpdatePresence.md new file mode 100644 index 00000000..1237f172 --- /dev/null +++ b/documentation/models/CallQueueUpdatePresence.md @@ -0,0 +1,9 @@ +# CallQueueUpdatePresence + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------- | :------- | :---------- | +| records | List[CallQueueUpdateMemberPresence] | ❌ | | + + diff --git a/documentation/models/CallQueues.md b/documentation/models/CallQueues.md new file mode 100644 index 00000000..9a45e26f --- /dev/null +++ b/documentation/models/CallQueues.md @@ -0,0 +1,12 @@ +# CallQueues + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ✅ | Link to a call queues resource | +| records | List[CallQueueInfo] | ✅ | List of call queues | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/CallRecording.md b/documentation/models/CallRecording.md new file mode 100644 index 00000000..6f5648fd --- /dev/null +++ b/documentation/models/CallRecording.md @@ -0,0 +1,10 @@ +# CallRecording + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :-------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a call recording | +| active | bool | ❌ | Call recording status | + + diff --git a/documentation/models/CallRecordingCustomGreeting.md b/documentation/models/CallRecordingCustomGreeting.md new file mode 100644 index 00000000..a6047e3e --- /dev/null +++ b/documentation/models/CallRecordingCustomGreeting.md @@ -0,0 +1,21 @@ +# CallRecordingCustomGreeting + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------------------- | :------- | :----------------------- | +| type\_ | CallRecordingCustomGreetingType | ❌ | | +| custom | CallRecordingCustomGreetingData | ❌ | Custom greeting data | +| language | CallRecordingCustomGreetingLanguage | ❌ | Custom greeting language | + +# CallRecordingCustomGreetingType + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | + + diff --git a/documentation/models/CallRecordingCustomGreetingData.md b/documentation/models/CallRecordingCustomGreetingData.md new file mode 100644 index 00000000..e75451be --- /dev/null +++ b/documentation/models/CallRecordingCustomGreetingData.md @@ -0,0 +1,12 @@ +# CallRecordingCustomGreetingData + +Custom greeting data + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------------- | +| uri | str | ❌ | Link to a custom company greeting | +| id\_ | str | ❌ | Internal identifier of a custom company greeting | + + diff --git a/documentation/models/CallRecordingCustomGreetingLanguage.md b/documentation/models/CallRecordingCustomGreetingLanguage.md new file mode 100644 index 00000000..3568c53f --- /dev/null +++ b/documentation/models/CallRecordingCustomGreetingLanguage.md @@ -0,0 +1,14 @@ +# CallRecordingCustomGreetingLanguage + +Custom greeting language + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| uri | str | ❌ | Link to a language | +| id\_ | str | ❌ | Internal identifier of a language | +| name | str | ❌ | Language name | +| locale_code | str | ❌ | Language locale code | + + diff --git a/documentation/models/CallRecordingCustomGreetings.md b/documentation/models/CallRecordingCustomGreetings.md new file mode 100644 index 00000000..ae6fc15f --- /dev/null +++ b/documentation/models/CallRecordingCustomGreetings.md @@ -0,0 +1,11 @@ +# CallRecordingCustomGreetings + +Returns data on call recording custom greetings. + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------------------- | :------- | :---------- | +| records | List[CallRecordingCustomGreeting] | ❌ | | + + diff --git a/documentation/models/CallRecordingExtensionInfo.md b/documentation/models/CallRecordingExtensionInfo.md new file mode 100644 index 00000000..10c60832 --- /dev/null +++ b/documentation/models/CallRecordingExtensionInfo.md @@ -0,0 +1,12 @@ +# CallRecordingExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Link to an extension resource | +| extension_number | str | ❌ | Number of an extension | +| name | str | ❌ | Name of an extension | + + diff --git a/documentation/models/CallRecordingExtensionResource.md b/documentation/models/CallRecordingExtensionResource.md new file mode 100644 index 00000000..bec81ece --- /dev/null +++ b/documentation/models/CallRecordingExtensionResource.md @@ -0,0 +1,25 @@ +# CallRecordingExtensionResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------ | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | | +| extension_number | str | ❌ | | +| type\_ | str | ❌ | | +| call_direction | CallDirection | ❌ | Direction of call | + +# CallDirection + +Direction of call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| OUTBOUND | str | ✅ | "Outbound" | +| INBOUND | str | ✅ | "Inbound" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/CallRecordingExtensions.md b/documentation/models/CallRecordingExtensions.md new file mode 100644 index 00000000..39d3c06d --- /dev/null +++ b/documentation/models/CallRecordingExtensions.md @@ -0,0 +1,12 @@ +# CallRecordingExtensions + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to call recording extension list resource | +| records | List[CallRecordingExtensionInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/CallRecordingIds.md b/documentation/models/CallRecordingIds.md new file mode 100644 index 00000000..36339cf5 --- /dev/null +++ b/documentation/models/CallRecordingIds.md @@ -0,0 +1,9 @@ +# CallRecordingIds + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------- | :------- | :------------------------------ | +| records | List[str] | ✅ | Call recordings ID(s) to delete | + + diff --git a/documentation/models/CallRecordingSettingsResource.md b/documentation/models/CallRecordingSettingsResource.md new file mode 100644 index 00000000..92329b2d --- /dev/null +++ b/documentation/models/CallRecordingSettingsResource.md @@ -0,0 +1,11 @@ +# CallRecordingSettingsResource + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------------- | :------- | :-------------------------- | +| on_demand | OnDemandResource | ❌ | | +| automatic | AutomaticRecordingResource | ❌ | | +| greetings | List[GreetingResource] | ❌ | Collection of Greeting Info | + + diff --git a/documentation/models/CallRecordingUpdate.md b/documentation/models/CallRecordingUpdate.md new file mode 100644 index 00000000..c0d87976 --- /dev/null +++ b/documentation/models/CallRecordingUpdate.md @@ -0,0 +1,9 @@ +# CallRecordingUpdate + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :--------------- | +| active | bool | ❌ | Recording status | + + diff --git a/documentation/models/CallResponse.md b/documentation/models/CallResponse.md new file mode 100644 index 00000000..f6b40eec --- /dev/null +++ b/documentation/models/CallResponse.md @@ -0,0 +1,12 @@ +# CallResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ANSWERED | str | ✅ | "Answered" | +| NOTANSWERED | str | ✅ | "NotAnswered" | +| CONNECTED | str | ✅ | "Connected" | +| NOTCONNECTED | str | ✅ | "NotConnected" | + + diff --git a/documentation/models/CallResult.md b/documentation/models/CallResult.md new file mode 100644 index 00000000..e6059d3b --- /dev/null +++ b/documentation/models/CallResult.md @@ -0,0 +1,14 @@ +# CallResult + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| COMPLETED | str | ✅ | "Completed" | +| ABANDONED | str | ✅ | "Abandoned" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNKNOWN | str | ✅ | "Unknown" | +| MISSED | str | ✅ | "Missed" | +| ACCEPTED | str | ✅ | "Accepted" | + + diff --git a/documentation/models/CallResultEnum.md b/documentation/models/CallResultEnum.md new file mode 100644 index 00000000..3be30e08 --- /dev/null +++ b/documentation/models/CallResultEnum.md @@ -0,0 +1,53 @@ +# CallResultEnum + +The result of the call operation + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :------------------------- | +| \_911 | str | ✅ | "911" | +| \_933 | str | ✅ | "933" | +| ABANDONED | str | ✅ | "Abandoned" | +| ACCEPTED | str | ✅ | "Accepted" | +| ANSWERED_NOT_ACCEPTED | str | ✅ | "Answered Not Accepted" | +| BLOCKED | str | ✅ | "Blocked" | +| BUSY | str | ✅ | "Busy" | +| CALL_FAILED | str | ✅ | "Call Failed" | +| CALL_FAILURE | str | ✅ | "Call Failure" | +| CALL_CONNECTED | str | ✅ | "Call connected" | +| CARRIER_IS_NOT_ACTIVE | str | ✅ | "Carrier is not active" | +| DECLINED | str | ✅ | "Declined" | +| EDGE_TRUNK_MISCONFIGURED | str | ✅ | "EDGE trunk misconfigured" | +| FAX_NOT_SENT | str | ✅ | "Fax Not Sent" | +| FAX_PARTIALLY_SENT | str | ✅ | "Fax Partially Sent" | +| FAX_POOR_LINE | str | ✅ | "Fax Poor Line" | +| FAX_RECEIPT_ERROR | str | ✅ | "Fax Receipt Error" | +| FAX_ON_DEMAND | str | ✅ | "Fax on Demand" | +| HANG_UP | str | ✅ | "Hang Up" | +| IP_PHONE_OFFLINE | str | ✅ | "IP Phone Offline" | +| IN_PROGRESS | str | ✅ | "In Progress" | +| INTERNAL_ERROR | str | ✅ | "Internal Error" | +| INTERNATIONAL_DISABLED | str | ✅ | "International Disabled" | +| INTERNATIONAL_RESTRICTED | str | ✅ | "International Restricted" | +| MISSED | str | ✅ | "Missed" | +| NO_ANSWER | str | ✅ | "No Answer" | +| NO_CALLING_CREDIT | str | ✅ | "No Calling Credit" | +| NOT_ALLOWED | str | ✅ | "Not Allowed" | +| PARTIAL_RECEIVE | str | ✅ | "Partial Receive" | +| PHONE_LOGIN | str | ✅ | "Phone Login" | +| RECEIVE_ERROR | str | ✅ | "Receive Error" | +| RECEIVED | str | ✅ | "Received" | +| REJECTED | str | ✅ | "Rejected" | +| REPLY | str | ✅ | "Reply" | +| RESTRICTED_NUMBER | str | ✅ | "Restricted Number" | +| SEND_ERROR | str | ✅ | "Send Error" | +| SENT | str | ✅ | "Sent" | +| SENT_TO_VOICEMAIL | str | ✅ | "Sent to Voicemail" | +| STOPPED | str | ✅ | "Stopped" | +| SUSPENDED_ACCOUNT | str | ✅ | "Suspended account" | +| UNKNOWN | str | ✅ | "Unknown" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| WRONG_NUMBER | str | ✅ | "Wrong Number" | + + diff --git a/documentation/models/CallResultReasonEnum.md b/documentation/models/CallResultReasonEnum.md new file mode 100644 index 00000000..58267683 --- /dev/null +++ b/documentation/models/CallResultReasonEnum.md @@ -0,0 +1,88 @@ +# CallResultReasonEnum + +The reason of the call result: + +- `Accepted` - The call was connected to and accepted by this number +- `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) +- `Line Busy` - The phone number you dialed was busy +- `Not Answered` - The phone number you dialed was not answered +- `No Answer` - You did not answer the call +- `Hang Up` - The caller hung up before the call was answered +- `Stopped` - This attempt was stopped because the call was answered by another phone +- `Internal Error` - An internal error occurred when making the call. Please try again +- `No Credit` - There was not enough Calling Credit on your account to make this call +- `Restricted Number` - The number you dialed is restricted by RingCentral +- `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again +- `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling +- `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator +- `Bad Number` - An error occurred when making the call. Please check the number before trying again +- `Info 411 Restricted` - Calling to 411 Information Services is restricted +- `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> +- `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection +- `Failed Try Again` - Call failed. Please try again +- `Max Call Limit` - The number of simultaneous calls to your account has reached its limit +- `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service +- `Calls Not Accepted` - Your account was not accepting calls at this time +- `Number Not Allowed` - The number that was dialed to access your account is not allowed +- `Number Blocked` - This number is in your Blocked Numbers list +- `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator +- `Resource Error` - An error occurred when making the call. Please try again +- `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account +- `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established +- `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped +- `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine +- `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax +- `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again +- `Fax Save Error` - An internal error occurred when saving the fax. Please try again +- `Fax Send Error` - An error occurred when sending the fax. Please try again +- `Emergency Address not defined` - The call was rejected due to no E911 address +- `Carrier is not active` - The call was rejected due to carrier inactivity +- `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration +- `Internal Call Error` - An internal error occurred when making the call. Please try again +- `Receive Error` - Fax receive error + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------- | :--- | :------- | :------------------------------ | +| ACCEPTED | str | ✅ | "Accepted" | +| BAD_NUMBER | str | ✅ | "Bad Number" | +| CALL_LOOP | str | ✅ | "Call Loop" | +| CALLS_NOT_ACCEPTED | str | ✅ | "Calls Not Accepted" | +| CARRIER_IS_NOT_ACTIVE | str | ✅ | "Carrier is not active" | +| CONNECTED | str | ✅ | "Connected" | +| CUSTOMER_611_RESTRICTED | str | ✅ | "Customer 611 Restricted" | +| EDGE_TRUNK_MISCONFIGURED | str | ✅ | "EDGE trunk misconfigured" | +| EMERGENCY_ADDRESS_NOT_DEFINED | str | ✅ | "Emergency Address not defined" | +| FAILED_TRY_AGAIN | str | ✅ | "Failed Try Again" | +| FAX_NOT_RECEIVED | str | ✅ | "Fax Not Received" | +| FAX_NOT_SENT | str | ✅ | "Fax Not Sent" | +| FAX_PARTIALLY_SENT | str | ✅ | "Fax Partially Sent" | +| FAX_POOR_LINE | str | ✅ | "Fax Poor Line" | +| FAX_PREPARE_ERROR | str | ✅ | "Fax Prepare Error" | +| FAX_SAVE_ERROR | str | ✅ | "Fax Save Error" | +| FAX_SEND_ERROR | str | ✅ | "Fax Send Error" | +| HANG_UP | str | ✅ | "Hang Up" | +| INFO_411_RESTRICTED | str | ✅ | "Info 411 Restricted" | +| INTERNAL_CALL_ERROR | str | ✅ | "Internal Call Error" | +| INTERNAL_ERROR | str | ✅ | "Internal Error" | +| INTERNATIONAL_DISABLED | str | ✅ | "International Disabled" | +| INTERNATIONAL_RESTRICTED | str | ✅ | "International Restricted" | +| LINE_BUSY | str | ✅ | "Line Busy" | +| MAX_CALL_LIMIT | str | ✅ | "Max Call Limit" | +| NO_ANSWER | str | ✅ | "No Answer" | +| NO_CREDIT | str | ✅ | "No Credit" | +| NO_DIGITAL_LINE | str | ✅ | "No Digital Line" | +| NOT_ANSWERED | str | ✅ | "Not Answered" | +| NUMBER_BLOCKED | str | ✅ | "Number Blocked" | +| NUMBER_DISABLED | str | ✅ | "Number Disabled" | +| NUMBER_NOT_ALLOWED | str | ✅ | "Number Not Allowed" | +| RECEIVE_ERROR | str | ✅ | "Receive Error" | +| RESOURCE_ERROR | str | ✅ | "Resource Error" | +| RESTRICTED_NUMBER | str | ✅ | "Restricted Number" | +| STOPPED | str | ✅ | "Stopped" | +| TOO_MANY_CALLS | str | ✅ | "Too Many Calls" | +| UNKNOWN | str | ✅ | "Unknown" | +| WRONG_NUMBER | str | ✅ | "Wrong Number" | + + diff --git a/documentation/models/CallSegmentFilter.md b/documentation/models/CallSegmentFilter.md new file mode 100644 index 00000000..c0f2df64 --- /dev/null +++ b/documentation/models/CallSegmentFilter.md @@ -0,0 +1,10 @@ +# CallSegmentFilter + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------- | :------- | :------------------------------ | +| segment | CallSegmentOptions | ✅ | Call segment for filtering | +| length | CallSegmentLengthFilter | ❌ | Duration bounds for the segment | + + diff --git a/documentation/models/CallSegmentLengthFilter.md b/documentation/models/CallSegmentLengthFilter.md new file mode 100644 index 00000000..6c4ee11d --- /dev/null +++ b/documentation/models/CallSegmentLengthFilter.md @@ -0,0 +1,12 @@ +# CallSegmentLengthFilter + +Duration bounds for the segment + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------- | +| min_seconds | int | ❌ | Minimum duration of segment in seconds | +| max_seconds | int | ❌ | Maximum duration of segment in seconds | + + diff --git a/documentation/models/CallSegmentOptions.md b/documentation/models/CallSegmentOptions.md new file mode 100644 index 00000000..611a2e4e --- /dev/null +++ b/documentation/models/CallSegmentOptions.md @@ -0,0 +1,19 @@ +# CallSegmentOptions + +Call segment for filtering + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| RINGING | str | ✅ | "Ringing" | +| LIVETALK | str | ✅ | "LiveTalk" | +| HOLD | str | ✅ | "Hold" | +| PARK | str | ✅ | "Park" | +| TRANSFER | str | ✅ | "Transfer" | +| IVRPROMPT | str | ✅ | "IvrPrompt" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| VMGREETING | str | ✅ | "VmGreeting" | +| SETUP | str | ✅ | "Setup" | + + diff --git a/documentation/models/CallSession.md b/documentation/models/CallSession.md new file mode 100644 index 00000000..55d290da --- /dev/null +++ b/documentation/models/CallSession.md @@ -0,0 +1,9 @@ +# CallSession + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------- | :------- | :----------------------- | +| session | CallSessionObject | ❌ | Call session information | + + diff --git a/documentation/models/CallSessionObject.md b/documentation/models/CallSessionObject.md new file mode 100644 index 00000000..b4e90c0c --- /dev/null +++ b/documentation/models/CallSessionObject.md @@ -0,0 +1,15 @@ +# CallSessionObject + +Call session information + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :-------------- | :------- | :------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a call session | +| origin | OriginInfo | ❌ | Session origin details | +| voice_call_token | str | ❌ | For calls of 'Conference' type only | +| parties | List[CallParty] | ❌ | | +| creation_time | str | ❌ | Date and time of the latest session update represented in Unix time format | + + diff --git a/documentation/models/CallStatusInfo.md b/documentation/models/CallStatusInfo.md new file mode 100644 index 00000000..e84929bb --- /dev/null +++ b/documentation/models/CallStatusInfo.md @@ -0,0 +1,72 @@ +# CallStatusInfo + +Status data of a call session + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------- | :------- | :---------------------------------------------------------- | +| code | CallStatusInfoCode | ❌ | Status code of a call | +| peer_id | PeerInfo | ❌ | Peer session/party details. Valid in 'Gone' state of a call | +| reason | CallStatusInfoReason | ❌ | Reason for call termination. For 'Disconnected' code only | +| description | str | ❌ | Optional message | + +# CallStatusInfoCode + +Status code of a call + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| SETUP | str | ✅ | "Setup" | +| PROCEEDING | str | ✅ | "Proceeding" | +| ANSWERED | str | ✅ | "Answered" | +| DISCONNECTED | str | ✅ | "Disconnected" | +| GONE | str | ✅ | "Gone" | +| PARKED | str | ✅ | "Parked" | +| HOLD | str | ✅ | "Hold" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| FAXRECEIVE | str | ✅ | "FaxReceive" | +| TDS | str | ✅ | "Tds" | +| VOICEMAILSCREENING | str | ✅ | "VoiceMailScreening" | + +# CallStatusInfoReason + +Reason for call termination. For 'Disconnected' code only + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| PICKUP | str | ✅ | "Pickup" | +| SUPERVISING | str | ✅ | "Supervising" | +| TAKEOVER | str | ✅ | "TakeOver" | +| TIMEOUT | str | ✅ | "Timeout" | +| BLINDTRANSFER | str | ✅ | "BlindTransfer" | +| RCCTRANSFER | str | ✅ | "RccTransfer" | +| ATTENDEDTRANSFER | str | ✅ | "AttendedTransfer" | +| CALLERINPUTREDIRECT | str | ✅ | "CallerInputRedirect" | +| CALLFLIP | str | ✅ | "CallFlip" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| DTMFTRANSFER | str | ✅ | "DtmfTransfer" | +| AGENTANSWERED | str | ✅ | "AgentAnswered" | +| AGENTDROPPED | str | ✅ | "AgentDropped" | +| REJECTED | str | ✅ | "Rejected" | +| CANCELLED | str | ✅ | "Cancelled" | +| INTERNALERROR | str | ✅ | "InternalError" | +| NOANSWER | str | ✅ | "NoAnswer" | +| TARGETBUSY | str | ✅ | "TargetBusy" | +| INVALIDNUMBER | str | ✅ | "InvalidNumber" | +| INTERNATIONALDISABLED | str | ✅ | "InternationalDisabled" | +| DESTINATIONBLOCKED | str | ✅ | "DestinationBlocked" | +| NOTENOUGHFUNDS | str | ✅ | "NotEnoughFunds" | +| NOSUCHUSER | str | ✅ | "NoSuchUser" | +| CALLPARK | str | ✅ | "CallPark" | +| CALLREDIRECTED | str | ✅ | "CallRedirected" | +| CALLREPLIED | str | ✅ | "CallReplied" | +| CALLSWITCH | str | ✅ | "CallSwitch" | +| CALLFINISHED | str | ✅ | "CallFinished" | +| CALLDROPPED | str | ✅ | "CallDropped" | + + diff --git a/documentation/models/CallTransportEnum.md b/documentation/models/CallTransportEnum.md new file mode 100644 index 00000000..d224a7f9 --- /dev/null +++ b/documentation/models/CallTransportEnum.md @@ -0,0 +1,13 @@ +# CallTransportEnum + +The type of call transport. 'PSTN' indicates that a call leg was initiated +from the PSTN network provider; 'VoIP' - from an RC phone. + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| PSTN | str | ✅ | "PSTN" | +| VOIP | str | ✅ | "VoIP" | + + diff --git a/documentation/models/CallType.md b/documentation/models/CallType.md new file mode 100644 index 00000000..e3f1eac4 --- /dev/null +++ b/documentation/models/CallType.md @@ -0,0 +1,14 @@ +# CallType + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| DIRECT | str | ✅ | "Direct" | +| FROMQUEUE | str | ✅ | "FromQueue" | +| PARKRETRIEVAL | str | ✅ | "ParkRetrieval" | +| TRANSFERRED | str | ✅ | "Transferred" | +| OUTBOUND | str | ✅ | "Outbound" | +| OVERFLOW | str | ✅ | "Overflow" | + + diff --git a/documentation/models/CallTypeEnum.md b/documentation/models/CallTypeEnum.md new file mode 100644 index 00000000..16e7fee5 --- /dev/null +++ b/documentation/models/CallTypeEnum.md @@ -0,0 +1,12 @@ +# CallTypeEnum + +The type of call + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| VOICE | str | ✅ | "Voice" | +| FAX | str | ✅ | "Fax" | + + diff --git a/documentation/models/CalledNumberInfo.md b/documentation/models/CalledNumberInfo.md new file mode 100644 index 00000000..ec957e99 --- /dev/null +++ b/documentation/models/CalledNumberInfo.md @@ -0,0 +1,9 @@ +# CalledNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------ | +| phone_number | str | ❌ | Called phone number | + + diff --git a/documentation/models/CallerBlockingSettings.md b/documentation/models/CallerBlockingSettings.md new file mode 100644 index 00000000..bc9ba5d0 --- /dev/null +++ b/documentation/models/CallerBlockingSettings.md @@ -0,0 +1,48 @@ +# CallerBlockingSettings + +Returns the lists of blocked and allowed phone numbers + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------- | :------- | :------------------------------------------------------------------ | +| mode | CallerBlockingSettingsMode | ❌ | Call blocking options: either specific or all calls and faxes | +| no_caller_id | CallerBlockingSettingsNoCallerId | ❌ | Determines how to handle calls with no caller ID in `Specific` mode | +| pay_phones | CallerBlockingSettingsPayPhones | ❌ | Blocking settings for pay phones | +| greetings | List[BlockedCallerGreetingInfo] | ❌ | List of greetings played for blocked callers | + +# CallerBlockingSettingsMode + +Call blocking options: either specific or all calls and faxes + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SPECIFIC | str | ✅ | "Specific" | +| ALL | str | ✅ | "All" | + +# CallerBlockingSettingsNoCallerId + +Determines how to handle calls with no caller ID in `Specific` mode + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| BLOCKCALLSANDFAXES | str | ✅ | "BlockCallsAndFaxes" | +| BLOCKFAXES | str | ✅ | "BlockFaxes" | +| ALLOW | str | ✅ | "Allow" | + +# CallerBlockingSettingsPayPhones + +Blocking settings for pay phones + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| BLOCK | str | ✅ | "Block" | +| ALLOW | str | ✅ | "Allow" | + + diff --git a/documentation/models/CallerBlockingSettingsUpdate.md b/documentation/models/CallerBlockingSettingsUpdate.md new file mode 100644 index 00000000..7c7d7c1a --- /dev/null +++ b/documentation/models/CallerBlockingSettingsUpdate.md @@ -0,0 +1,48 @@ +# CallerBlockingSettingsUpdate + +Returns the lists of blocked and allowed phone numbers + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------- | :------- | :------------------------------------------------------------------ | +| mode | CallerBlockingSettingsUpdateMode | ❌ | Call blocking options: either specific or all calls and faxes | +| no_caller_id | CallerBlockingSettingsUpdateNoCallerId | ❌ | Determines how to handle calls with no caller ID in 'Specific' mode | +| pay_phones | CallerBlockingSettingsUpdatePayPhones | ❌ | Blocking settings for pay phones | +| greetings | List[BlockedCallerGreetingInfo] | ❌ | List of greetings played for blocked callers | + +# CallerBlockingSettingsUpdateMode + +Call blocking options: either specific or all calls and faxes + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SPECIFIC | str | ✅ | "Specific" | +| ALL | str | ✅ | "All" | + +# CallerBlockingSettingsUpdateNoCallerId + +Determines how to handle calls with no caller ID in 'Specific' mode + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| BLOCKCALLSANDFAXES | str | ✅ | "BlockCallsAndFaxes" | +| BLOCKFAXES | str | ✅ | "BlockFaxes" | +| ALLOW | str | ✅ | "Allow" | + +# CallerBlockingSettingsUpdatePayPhones + +Blocking settings for pay phones + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| BLOCK | str | ✅ | "Block" | +| ALLOW | str | ✅ | "Allow" | + + diff --git a/documentation/models/CallerIdByDevice.md b/documentation/models/CallerIdByDevice.md new file mode 100644 index 00000000..064756cd --- /dev/null +++ b/documentation/models/CallerIdByDevice.md @@ -0,0 +1,12 @@ +# CallerIdByDevice + +Caller ID settings by device + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------- | :------- | :---------- | +| device | CallerIdDeviceInfo | ❌ | | +| caller_id | CallerIdByDeviceInfo | ❌ | | + + diff --git a/documentation/models/CallerIdByDeviceInfo.md b/documentation/models/CallerIdByDeviceInfo.md new file mode 100644 index 00000000..37535c6b --- /dev/null +++ b/documentation/models/CallerIdByDeviceInfo.md @@ -0,0 +1,10 @@ +# CallerIdByDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | str | ❌ | If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] | +| phone_info | CallerIdPhoneInfo | ❌ | | + + diff --git a/documentation/models/CallerIdByDeviceInfoRequest.md b/documentation/models/CallerIdByDeviceInfoRequest.md new file mode 100644 index 00000000..02a1211e --- /dev/null +++ b/documentation/models/CallerIdByDeviceInfoRequest.md @@ -0,0 +1,10 @@ +# CallerIdByDeviceInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | str | ❌ | If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] | +| phone_info | CallerIdPhoneInfoRequest | ❌ | | + + diff --git a/documentation/models/CallerIdByDeviceRequest.md b/documentation/models/CallerIdByDeviceRequest.md new file mode 100644 index 00000000..8c6d0426 --- /dev/null +++ b/documentation/models/CallerIdByDeviceRequest.md @@ -0,0 +1,12 @@ +# CallerIdByDeviceRequest + +Caller ID settings by device + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :-------------------------- | :------- | :---------- | +| device | CallerIdDeviceInfoRequest | ❌ | | +| caller_id | CallerIdByDeviceInfoRequest | ❌ | | + + diff --git a/documentation/models/CallerIdByFeature.md b/documentation/models/CallerIdByFeature.md new file mode 100644 index 00000000..ff391d34 --- /dev/null +++ b/documentation/models/CallerIdByFeature.md @@ -0,0 +1,28 @@ +# CallerIdByFeature + +Caller ID settings by feature + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :----------------------- | :------- | :---------- | +| feature | CallerIdByFeatureFeature | ❌ | | +| caller_id | CallerIdByFeatureInfo | ❌ | | + +# CallerIdByFeatureFeature + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| RINGOUT | str | ✅ | "RingOut" | +| RINGME | str | ✅ | "RingMe" | +| CALLFLIP | str | ✅ | "CallFlip" | +| FAXNUMBER | str | ✅ | "FaxNumber" | +| ADDITIONALSOFTPHONE | str | ✅ | "AdditionalSoftphone" | +| ALTERNATE | str | ✅ | "Alternate" | +| COMMONPHONE | str | ✅ | "CommonPhone" | +| MOBILEAPP | str | ✅ | "MobileApp" | +| DELEGATED | str | ✅ | "Delegated" | + + diff --git a/documentation/models/CallerIdByFeatureInfo.md b/documentation/models/CallerIdByFeatureInfo.md new file mode 100644 index 00000000..fab39a6b --- /dev/null +++ b/documentation/models/CallerIdByFeatureInfo.md @@ -0,0 +1,10 @@ +# CallerIdByFeatureInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | str | ❌ | If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] | +| phone_info | CallerIdPhoneInfo | ❌ | | + + diff --git a/documentation/models/CallerIdByFeatureInfoRequest.md b/documentation/models/CallerIdByFeatureInfoRequest.md new file mode 100644 index 00000000..2596a75d --- /dev/null +++ b/documentation/models/CallerIdByFeatureInfoRequest.md @@ -0,0 +1,10 @@ +# CallerIdByFeatureInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | str | ❌ | If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] | +| phone_info | CallerIdPhoneInfoRequest | ❌ | | + + diff --git a/documentation/models/CallerIdByFeatureRequest.md b/documentation/models/CallerIdByFeatureRequest.md new file mode 100644 index 00000000..5ce34762 --- /dev/null +++ b/documentation/models/CallerIdByFeatureRequest.md @@ -0,0 +1,28 @@ +# CallerIdByFeatureRequest + +Caller ID settings by feature + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------------------ | :------- | :---------- | +| feature | CallerIdByFeatureRequestFeature | ❌ | | +| caller_id | CallerIdByFeatureInfoRequest | ❌ | | + +# CallerIdByFeatureRequestFeature + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| RINGOUT | str | ✅ | "RingOut" | +| RINGME | str | ✅ | "RingMe" | +| CALLFLIP | str | ✅ | "CallFlip" | +| FAXNUMBER | str | ✅ | "FaxNumber" | +| ADDITIONALSOFTPHONE | str | ✅ | "AdditionalSoftphone" | +| ALTERNATE | str | ✅ | "Alternate" | +| COMMONPHONE | str | ✅ | "CommonPhone" | +| MOBILEAPP | str | ✅ | "MobileApp" | +| DELEGATED | str | ✅ | "Delegated" | + + diff --git a/documentation/models/CallerIdDeviceInfo.md b/documentation/models/CallerIdDeviceInfo.md new file mode 100644 index 00000000..006ed30d --- /dev/null +++ b/documentation/models/CallerIdDeviceInfo.md @@ -0,0 +1,11 @@ +# CallerIdDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a device | +| uri | str | ❌ | Link to a device resource | +| name | str | ❌ | Name of a device | + + diff --git a/documentation/models/CallerIdDeviceInfoRequest.md b/documentation/models/CallerIdDeviceInfoRequest.md new file mode 100644 index 00000000..02c540e6 --- /dev/null +++ b/documentation/models/CallerIdDeviceInfoRequest.md @@ -0,0 +1,9 @@ +# CallerIdDeviceInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a device | + + diff --git a/documentation/models/CallerIdPhoneInfo.md b/documentation/models/CallerIdPhoneInfo.md new file mode 100644 index 00000000..a80dbd34 --- /dev/null +++ b/documentation/models/CallerIdPhoneInfo.md @@ -0,0 +1,11 @@ +# CallerIdPhoneInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a phone number | +| uri | str | ❌ | Link to a phone number resource | +| phone_number | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | + + diff --git a/documentation/models/CallerIdPhoneInfoRequest.md b/documentation/models/CallerIdPhoneInfoRequest.md new file mode 100644 index 00000000..4269f324 --- /dev/null +++ b/documentation/models/CallerIdPhoneInfoRequest.md @@ -0,0 +1,9 @@ +# CallerIdPhoneInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a phone number | + + diff --git a/documentation/models/CallersInfo.md b/documentation/models/CallersInfo.md new file mode 100644 index 00000000..b0f153fd --- /dev/null +++ b/documentation/models/CallersInfo.md @@ -0,0 +1,10 @@ +# CallersInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :----------------------- | +| caller_id | str | ❌ | Phone number of a caller | +| name | str | ❌ | Contact name of a caller | + + diff --git a/documentation/models/CallersInfoRequest.md b/documentation/models/CallersInfoRequest.md new file mode 100644 index 00000000..ede70d63 --- /dev/null +++ b/documentation/models/CallersInfoRequest.md @@ -0,0 +1,10 @@ +# CallersInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :----------------------- | +| caller_id | str | ❌ | Phone number of a caller | +| name | str | ❌ | Contact name of a caller | + + diff --git a/documentation/models/CallsByActions.md b/documentation/models/CallsByActions.md new file mode 100644 index 00000000..b39b86b6 --- /dev/null +++ b/documentation/models/CallsByActions.md @@ -0,0 +1,12 @@ +# CallsByActions + +Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------- | :------- | :-------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByActionsBreakdown | ✅ | Result breakdown by actions | + + diff --git a/documentation/models/CallsByActionsBreakdown.md b/documentation/models/CallsByActionsBreakdown.md new file mode 100644 index 00000000..93777fb9 --- /dev/null +++ b/documentation/models/CallsByActionsBreakdown.md @@ -0,0 +1,17 @@ +# CallsByActionsBreakdown + +Result breakdown by actions + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---- | :------- | :----------------------------- | +| park_on | float | ✅ | Value for ParkOn action | +| park_off | float | ✅ | Value for ParkOff action | +| hold_on | float | ✅ | Value for HoldOn action | +| hold_off | float | ✅ | Value for HoldOff action | +| blind_transfer | float | ✅ | Value for BlindTransfer action | +| warm_transfer | float | ✅ | Value for WarmTransfer action | +| dtmf_transfer | float | ✅ | Value for DTMFTransfer action | + + diff --git a/documentation/models/CallsByCompanyHours.md b/documentation/models/CallsByCompanyHours.md new file mode 100644 index 00000000..8b78b5bd --- /dev/null +++ b/documentation/models/CallsByCompanyHours.md @@ -0,0 +1,12 @@ +# CallsByCompanyHours + +Data for calls with breakdown by company hours (BusinessHours, AfterHours) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :-------------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByCompanyHoursBreakdown | ✅ | Result breakdown by company hours | + + diff --git a/documentation/models/CallsByCompanyHoursBreakdown.md b/documentation/models/CallsByCompanyHoursBreakdown.md new file mode 100644 index 00000000..30530c68 --- /dev/null +++ b/documentation/models/CallsByCompanyHoursBreakdown.md @@ -0,0 +1,12 @@ +# CallsByCompanyHoursBreakdown + +Result breakdown by company hours + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---- | :------- | :------------------------------------ | +| business_hours | float | ✅ | Value for BusinessHours company hours | +| after_hours | float | ✅ | Value for AfterHours company hours | + + diff --git a/documentation/models/CallsByDirection.md b/documentation/models/CallsByDirection.md new file mode 100644 index 00000000..cb644955 --- /dev/null +++ b/documentation/models/CallsByDirection.md @@ -0,0 +1,12 @@ +# CallsByDirection + +Data for calls with breakdown by direction (Inbound, Outbound) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :---------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByDirectionBreakdown | ✅ | Result breakdown by direction | + + diff --git a/documentation/models/CallsByDirectionBreakdown.md b/documentation/models/CallsByDirectionBreakdown.md new file mode 100644 index 00000000..38b23788 --- /dev/null +++ b/documentation/models/CallsByDirectionBreakdown.md @@ -0,0 +1,12 @@ +# CallsByDirectionBreakdown + +Result breakdown by direction + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---- | :------- | :--------------------------- | +| inbound | float | ✅ | Value for Inbound direction | +| outbound | float | ✅ | Value for Outbound direction | + + diff --git a/documentation/models/CallsByOrigin.md b/documentation/models/CallsByOrigin.md new file mode 100644 index 00000000..b0d17a70 --- /dev/null +++ b/documentation/models/CallsByOrigin.md @@ -0,0 +1,12 @@ +# CallsByOrigin + +Data for calls with breakdown by origin (Internal, External) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------- | :------- | :------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByOriginBreakdown | ✅ | Result breakdown by origin | + + diff --git a/documentation/models/CallsByOriginBreakdown.md b/documentation/models/CallsByOriginBreakdown.md new file mode 100644 index 00000000..6d10d789 --- /dev/null +++ b/documentation/models/CallsByOriginBreakdown.md @@ -0,0 +1,12 @@ +# CallsByOriginBreakdown + +Result breakdown by origin + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---- | :------- | :------------------------ | +| internal | float | ✅ | Value for Internal origin | +| external | float | ✅ | Value for External origin | + + diff --git a/documentation/models/CallsByQueueSla.md b/documentation/models/CallsByQueueSla.md new file mode 100644 index 00000000..d8b20320 --- /dev/null +++ b/documentation/models/CallsByQueueSla.md @@ -0,0 +1,12 @@ +# CallsByQueueSla + +Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :---------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByQueueSlaBreakdown | ✅ | Result breakdown by queue SLA | + + diff --git a/documentation/models/CallsByQueueSlaBreakdown.md b/documentation/models/CallsByQueueSlaBreakdown.md new file mode 100644 index 00000000..c7351bbf --- /dev/null +++ b/documentation/models/CallsByQueueSlaBreakdown.md @@ -0,0 +1,12 @@ +# CallsByQueueSlaBreakdown + +Result breakdown by queue SLA + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :------------------------- | +| in_sla | float | ✅ | Value for InSla queue SLA | +| out_of_sla | float | ✅ | Value for OutSla queue SLA | + + diff --git a/documentation/models/CallsByResponse.md b/documentation/models/CallsByResponse.md new file mode 100644 index 00000000..824e5fd0 --- /dev/null +++ b/documentation/models/CallsByResponse.md @@ -0,0 +1,12 @@ +# CallsByResponse + +Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :--------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByResponseBreakdown | ✅ | Result breakdown by response | + + diff --git a/documentation/models/CallsByResponseBreakdown.md b/documentation/models/CallsByResponseBreakdown.md new file mode 100644 index 00000000..eac0dd66 --- /dev/null +++ b/documentation/models/CallsByResponseBreakdown.md @@ -0,0 +1,14 @@ +# CallsByResponseBreakdown + +Result breakdown by response + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---- | :------- | :------------------------------ | +| answered | float | ✅ | Value for Answered response | +| not_answered | float | ✅ | Value for NotAnswered response | +| connected | float | ✅ | Value for Connected response | +| not_connected | float | ✅ | Value for NotConnected response | + + diff --git a/documentation/models/CallsByResult.md b/documentation/models/CallsByResult.md new file mode 100644 index 00000000..8d00a6bb --- /dev/null +++ b/documentation/models/CallsByResult.md @@ -0,0 +1,12 @@ +# CallsByResult + +Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------- | :------- | :------------------------------ | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByResultBreakdown | ✅ | Result breakdown by call result | + + diff --git a/documentation/models/CallsByResultBreakdown.md b/documentation/models/CallsByResultBreakdown.md new file mode 100644 index 00000000..18e644d0 --- /dev/null +++ b/documentation/models/CallsByResultBreakdown.md @@ -0,0 +1,16 @@ +# CallsByResultBreakdown + +Result breakdown by call result + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :---- | :------- | :------------------------- | +| completed | float | ✅ | Value for Completed result | +| abandoned | float | ✅ | Value for Abandoned result | +| voicemail | float | ✅ | Value for Voicemail result | +| missed | float | ✅ | Value for Missed result | +| accepted | float | ✅ | Value for Accepted result | +| unknown | float | ✅ | Value for Unknown result | + + diff --git a/documentation/models/CallsBySegments.md b/documentation/models/CallsBySegments.md new file mode 100644 index 00000000..6410829b --- /dev/null +++ b/documentation/models/CallsBySegments.md @@ -0,0 +1,12 @@ +# CallsBySegments + +Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :--------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsBySegmentsBreakdown | ✅ | Result breakdown by segments | + + diff --git a/documentation/models/CallsBySegmentsBreakdown.md b/documentation/models/CallsBySegmentsBreakdown.md new file mode 100644 index 00000000..3f357232 --- /dev/null +++ b/documentation/models/CallsBySegmentsBreakdown.md @@ -0,0 +1,19 @@ +# CallsBySegmentsBreakdown + +Result breakdown by segments + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---- | :------- | :--------------------------- | +| ringing | float | ✅ | Value for Ringing segment | +| live_talk | float | ✅ | Value for LiveTalk segment | +| hold | float | ✅ | Value for Hold segment | +| park | float | ✅ | Value for Park segment | +| transfer | float | ✅ | Value for Transfer segment | +| ivr_prompt | float | ✅ | Value for IVRPrompt segment | +| voicemail | float | ✅ | Value for Voicemail segment | +| vm_greeting | float | ✅ | Value for VMGreeting segment | +| setup | float | ✅ | Value for Setup segment | + + diff --git a/documentation/models/CallsByType.md b/documentation/models/CallsByType.md new file mode 100644 index 00000000..8d81c247 --- /dev/null +++ b/documentation/models/CallsByType.md @@ -0,0 +1,12 @@ +# CallsByType + +Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------- | :------- | :----------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | CallsByTypeBreakdown | ✅ | Result breakdown by type | + + diff --git a/documentation/models/CallsByTypeBreakdown.md b/documentation/models/CallsByTypeBreakdown.md new file mode 100644 index 00000000..f246b9a0 --- /dev/null +++ b/documentation/models/CallsByTypeBreakdown.md @@ -0,0 +1,16 @@ +# CallsByTypeBreakdown + +Result breakdown by type + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---- | :------- | :--------------------------- | +| direct | float | ✅ | Value for Direct type | +| from_queue | float | ✅ | Value for FromQueue type | +| park_retrieval | float | ✅ | Value for ParkRetrieval type | +| transferred | float | ✅ | Value for Transferred type | +| outbound | float | ✅ | Value for Outbound type | +| overflow | float | ✅ | Value for Overflow type | + + diff --git a/documentation/models/CallsCounters.md b/documentation/models/CallsCounters.md new file mode 100644 index 00000000..2904fa7f --- /dev/null +++ b/documentation/models/CallsCounters.md @@ -0,0 +1,21 @@ +# CallsCounters + +Call volume data for the specified grouping + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------- | +| all_calls | AllCalls | ❌ | Data for all calls | +| calls_by_direction | CallsByDirection | ❌ | Data for calls with breakdown by direction (Inbound, Outbound) | +| calls_by_origin | CallsByOrigin | ❌ | Data for calls with breakdown by origin (Internal, External) | +| calls_by_response | CallsByResponse | ❌ | Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments | CallsBySegments | ❌ | Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_by_result | CallsByResult | ❌ | Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_actions | CallsByActions | ❌ | Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) | +| calls_by_company_hours | CallsByCompanyHours | ❌ | Data for calls with breakdown by company hours (BusinessHours, AfterHours) | +| calls_by_queue_sla | CallsByQueueSla | ❌ | Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| calls_by_type | CallsByType | ❌ | Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow) | +| queue_opportunities | QueueOpportunities | ❌ | Queue opportunities data for the specified grouping | + + diff --git a/documentation/models/CallsTimers.md b/documentation/models/CallsTimers.md new file mode 100644 index 00000000..6b441b2a --- /dev/null +++ b/documentation/models/CallsTimers.md @@ -0,0 +1,19 @@ +# CallsTimers + +Call length data for the specified grouping + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------- | +| all_calls | AllCalls | ❌ | Data for all calls | +| calls_by_direction | CallsByDirection | ❌ | Data for calls with breakdown by direction (Inbound, Outbound) | +| calls_by_origin | CallsByOrigin | ❌ | Data for calls with breakdown by origin (Internal, External) | +| calls_by_response | CallsByResponse | ❌ | Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments | CallsBySegments | ❌ | Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_by_result | CallsByResult | ❌ | Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_by_company_hours | CallsByCompanyHours | ❌ | Data for calls with breakdown by company hours (BusinessHours, AfterHours) | +| calls_by_queue_sla | CallsByQueueSla | ❌ | Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| calls_by_type | CallsByType | ❌ | Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow) | + + diff --git a/documentation/models/CloudRecording.md b/documentation/models/CloudRecording.md new file mode 100644 index 00000000..5a2a4881 --- /dev/null +++ b/documentation/models/CloudRecording.md @@ -0,0 +1,19 @@ +# CloudRecording + +Recording information + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------- | +| id\_ | str | ✅ | Call id | +| short_id | str | ✅ | Short bridge id | +| start_time | str | ✅ | Start time ISO 8601 | +| display_name | str | ✅ | Meeting name | +| host_info | Host | ✅ | Meeting host | +| media_link | str | ✅ | Link to the recording file. Not used anymore by Web team | +| url | str | ✅ | Encrypted link to the recording file | +| duration | int | ❌ | Meeting duration in seconds | +| expires_in | str | ❌ | Date after which recording will be deleted | + + diff --git a/documentation/models/CloudRecordings.md b/documentation/models/CloudRecordings.md new file mode 100644 index 00000000..c86736bf --- /dev/null +++ b/documentation/models/CloudRecordings.md @@ -0,0 +1,12 @@ +# CloudRecordings + +Recordings page + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------- | :------- | :----------------- | +| recordings | List[CloudRecording] | ✅ | Recordings array | +| paging | Paging | ✅ | Paging information | + + diff --git a/documentation/models/CodeChallengeMethodEnum.md b/documentation/models/CodeChallengeMethodEnum.md new file mode 100644 index 00000000..69a99032 --- /dev/null +++ b/documentation/models/CodeChallengeMethodEnum.md @@ -0,0 +1,13 @@ +# CodeChallengeMethodEnum + +The code challenge method as defined by the PKCE specification - +[RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| PLAIN | str | ✅ | "plain" | +| S256 | str | ✅ | "S256" | + + diff --git a/documentation/models/CommonEmergencyLocationAddressInfo.md b/documentation/models/CommonEmergencyLocationAddressInfo.md new file mode 100644 index 00000000..c0482447 --- /dev/null +++ b/documentation/models/CommonEmergencyLocationAddressInfo.md @@ -0,0 +1,3 @@ +# CommonEmergencyLocationAddressInfo + + diff --git a/documentation/models/CommonEmergencyLocationAddressInfoAu.md b/documentation/models/CommonEmergencyLocationAddressInfoAu.md new file mode 100644 index 00000000..5b1a652f --- /dev/null +++ b/documentation/models/CommonEmergencyLocationAddressInfoAu.md @@ -0,0 +1,25 @@ +# CommonEmergencyLocationAddressInfoAu + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------------------------ | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | The name of the street (the field is utilized as 'streetName' field for AU addresses) | +| company_name | str | ❌ | Company name | +| building_name | str | ❌ | (Optional) Building name | +| street_type | str | ❌ | Street type | +| building_number | str | ❌ | Building/street number | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | + + diff --git a/documentation/models/CommonEmergencyLocationAddressInfoDefault.md b/documentation/models/CommonEmergencyLocationAddressInfoDefault.md new file mode 100644 index 00000000..fe246d43 --- /dev/null +++ b/documentation/models/CommonEmergencyLocationAddressInfoDefault.md @@ -0,0 +1,21 @@ +# CommonEmergencyLocationAddressInfoDefault + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------ | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | First line address | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | + + diff --git a/documentation/models/CommonEmergencyLocationAddressInfoFr.md b/documentation/models/CommonEmergencyLocationAddressInfoFr.md new file mode 100644 index 00000000..fd945ff9 --- /dev/null +++ b/documentation/models/CommonEmergencyLocationAddressInfoFr.md @@ -0,0 +1,24 @@ +# CommonEmergencyLocationAddressInfoFr + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------------------------ | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | The name of the street (The field is utilized as 'streetName' field for FR addresses) | +| company_name | str | ❌ | Company name | +| building_name | str | ❌ | (Optional) Building name | +| building_number | str | ❌ | Building/street number | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | + + diff --git a/documentation/models/CommonEmergencyLocationResource.md b/documentation/models/CommonEmergencyLocationResource.md new file mode 100644 index 00000000..13076ffa --- /dev/null +++ b/documentation/models/CommonEmergencyLocationResource.md @@ -0,0 +1,21 @@ +# CommonEmergencyLocationResource + +Company emergency response location details + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an emergency response location | +| address | CommonEmergencyLocationAddressInfo | ❌ | | +| name | str | ❌ | Emergency response location name | +| site | ShortSiteInfo | ❌ | | +| address_status | AddressStatus | ❌ | Emergency address status | +| usage_status | UsageStatus | ❌ | Status of emergency response location usage. | +| sync_status | SyncStatus | ❌ | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| address_type | EmergencyAddressType | ❌ | | +| visibility | Visibility | ❌ | Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array | +| owners | List[LocationOwnerInfo] | ❌ | List of private location owners | +| address_format_id | str | ❌ | Address format ID | + + diff --git a/documentation/models/CompanyAnsweringRuleCalledNumberInfo.md b/documentation/models/CompanyAnsweringRuleCalledNumberInfo.md new file mode 100644 index 00000000..2ee9b498 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleCalledNumberInfo.md @@ -0,0 +1,10 @@ +# CompanyAnsweringRuleCalledNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an account phone number | +| phone_number | str | ❌ | Phone number of a callee | + + diff --git a/documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md b/documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md new file mode 100644 index 00000000..f6edf42f --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleCalledNumberInfoRequest.md @@ -0,0 +1,10 @@ +# CompanyAnsweringRuleCalledNumberInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an account phone number | +| phone_number | str | ❌ | Phone number of a callee | + + diff --git a/documentation/models/CompanyAnsweringRuleCallersInfoRequest.md b/documentation/models/CompanyAnsweringRuleCallersInfoRequest.md new file mode 100644 index 00000000..04bd27e6 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleCallersInfoRequest.md @@ -0,0 +1,10 @@ +# CompanyAnsweringRuleCallersInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :----------------------------- | +| caller_id | str | ❌ | Phone number of a caller | +| name | str | ❌ | Displayed name for a caller ID | + + diff --git a/documentation/models/CompanyAnsweringRuleExtensionInfo.md b/documentation/models/CompanyAnsweringRuleExtensionInfo.md new file mode 100644 index 00000000..e06d6019 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleExtensionInfo.md @@ -0,0 +1,9 @@ +# CompanyAnsweringRuleExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | + + diff --git a/documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md b/documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md new file mode 100644 index 00000000..cc2d77d1 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleExtensionInfoRequest.md @@ -0,0 +1,11 @@ +# CompanyAnsweringRuleExtensionInfoRequest + +Extension to which the call is forwarded in 'Bypass' mode + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | + + diff --git a/documentation/models/CompanyAnsweringRuleInfo.md b/documentation/models/CompanyAnsweringRuleInfo.md new file mode 100644 index 00000000..4a6d83b5 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleInfo.md @@ -0,0 +1,43 @@ +# CompanyAnsweringRuleInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an answering rule | +| uri | str | ❌ | Canonical URI of an answering rule | +| enabled | bool | ❌ | Specifies if the rule is active or inactive | +| type\_ | CompanyAnsweringRuleInfoType | ❌ | Type of an answering rule | +| name | str | ❌ | Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number | +| callers | List[CompanyAnsweringRuleCallersInfoRequest] | ❌ | Answering rule will be applied when calls are received from the specified caller(s) | +| called_numbers | List[CompanyAnsweringRuleCalledNumberInfoRequest] | ❌ | Answering rule will be applied when calling the specified number(s) | +| schedule | CompanyAnsweringRuleScheduleInfo | ❌ | Schedule when an answering rule should be applied | +| call_handling_action | CompanyAnsweringRuleInfoCallHandlingAction | ❌ | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| extension | CompanyAnsweringRuleExtensionInfoRequest | ❌ | Extension to which the call is forwarded in 'Bypass' mode | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | + +# CompanyAnsweringRuleInfoType + +Type of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + +# CompanyAnsweringRuleInfoCallHandlingAction + +Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OPERATOR | str | ✅ | "Operator" | +| DISCONNECT | str | ✅ | "Disconnect" | +| BYPASS | str | ✅ | "Bypass" | + + diff --git a/documentation/models/CompanyAnsweringRuleList.md b/documentation/models/CompanyAnsweringRuleList.md new file mode 100644 index 00000000..fa7dea79 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleList.md @@ -0,0 +1,12 @@ +# CompanyAnsweringRuleList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to an answering rule resource | +| records | List[ListCompanyAnsweringRuleInfo] | ❌ | List of company answering rules | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/CompanyAnsweringRuleRequest.md b/documentation/models/CompanyAnsweringRuleRequest.md new file mode 100644 index 00000000..ed2a34ce --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleRequest.md @@ -0,0 +1,41 @@ +# CompanyAnsweringRuleRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | str | ❌ | Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number | +| enabled | bool | ❌ | Specifies if the rule is active or inactive. The default value is `true` | +| type\_ | CompanyAnsweringRuleRequestType | ❌ | Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] | +| callers | List[CompanyAnsweringRuleCallersInfoRequest] | ❌ | Answering rule will be applied when calls are received from the specified caller(s) | +| called_numbers | List[CompanyAnsweringRuleCalledNumberInfo] | ❌ | Answering rule will be applied when calling the specified number(s) | +| schedule | CompanyAnsweringRuleScheduleInfoRequest | ❌ | Schedule when an answering rule should be applied | +| call_handling_action | CompanyAnsweringRuleRequestCallHandlingAction | ❌ | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| extension | CompanyAnsweringRuleExtensionInfoRequest | ❌ | Extension to which the call is forwarded in 'Bypass' mode | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | + +# CompanyAnsweringRuleRequestType + +Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + +# CompanyAnsweringRuleRequestCallHandlingAction + +Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OPERATOR | str | ✅ | "Operator" | +| DISCONNECT | str | ✅ | "Disconnect" | +| BYPASS | str | ✅ | "Bypass" | + + diff --git a/documentation/models/CompanyAnsweringRuleScheduleInfo.md b/documentation/models/CompanyAnsweringRuleScheduleInfo.md new file mode 100644 index 00000000..268603a8 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleScheduleInfo.md @@ -0,0 +1,24 @@ +# CompanyAnsweringRuleScheduleInfo + +Schedule when an answering rule should be applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------------------------------------------- | :------- | :------------------------------------------------------------------------------------ | +| weekly_ranges | CompanyAnsweringRuleWeeklyScheduleInfoRequest | ❌ | Weekly schedule. If specified, ranges cannot be specified | +| ranges | List[RangesInfo] | ❌ | Specific data ranges. If specified, weeklyRanges cannot be specified | +| ref | CompanyAnsweringRuleScheduleInfoRef | ❌ | Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours'] | + +# CompanyAnsweringRuleScheduleInfoRef + +Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours'] + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | + + diff --git a/documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md b/documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md new file mode 100644 index 00000000..1ac23619 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleScheduleInfoRequest.md @@ -0,0 +1,24 @@ +# CompanyAnsweringRuleScheduleInfoRequest + +Schedule when an answering rule should be applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------------------------------------------- | :------- | :------------------------------------------------------------------- | +| weekly_ranges | CompanyAnsweringRuleWeeklyScheduleInfoRequest | ❌ | Weekly schedule. If specified, ranges cannot be specified | +| ranges | List[RangesInfo] | ❌ | Specific data ranges. If specified, weeklyRanges cannot be specified | +| ref | CompanyAnsweringRuleScheduleInfoRequestRef | ❌ | Reference to Business Hours or After Hours schedule | + +# CompanyAnsweringRuleScheduleInfoRequestRef + +Reference to Business Hours or After Hours schedule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | + + diff --git a/documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md b/documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md new file mode 100644 index 00000000..250c12fc --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleTimeIntervalRequest.md @@ -0,0 +1,10 @@ +# CompanyAnsweringRuleTimeIntervalRequest + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :------------------- | +| from\_ | str | ❌ | Time in format hh:mm | +| to | str | ❌ | Time in format hh:mm | + + diff --git a/documentation/models/CompanyAnsweringRuleUpdate.md b/documentation/models/CompanyAnsweringRuleUpdate.md new file mode 100644 index 00000000..2368af71 --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleUpdate.md @@ -0,0 +1,41 @@ +# CompanyAnsweringRuleUpdate + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| enabled | bool | ❌ | Specifies if a rule is active or inactive. The default value is `true` | +| name | str | ❌ | Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number | +| callers | List[CompanyAnsweringRuleCallersInfoRequest] | ❌ | Answering rule will be applied when calls are received from the specified caller(s) | +| called_numbers | List[CompanyAnsweringRuleCalledNumberInfo] | ❌ | Answering rule will be applied when calling the specified number(s) | +| schedule | CompanyAnsweringRuleScheduleInfoRequest | ❌ | Schedule when an answering rule should be applied | +| call_handling_action | CompanyAnsweringRuleUpdateCallHandlingAction | ❌ | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect','Bypass'] | +| type\_ | CompanyAnsweringRuleUpdateType | ❌ | Type of an answering rule | +| extension | CompanyAnsweringRuleCallersInfoRequest | ❌ | | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | + +# CompanyAnsweringRuleUpdateCallHandlingAction + +Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect','Bypass'] + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OPERATOR | str | ✅ | "Operator" | +| DISCONNECT | str | ✅ | "Disconnect" | +| BYPASS | str | ✅ | "Bypass" | + +# CompanyAnsweringRuleUpdateType + +Type of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + + diff --git a/documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md b/documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md new file mode 100644 index 00000000..4cf8f47d --- /dev/null +++ b/documentation/models/CompanyAnsweringRuleWeeklyScheduleInfoRequest.md @@ -0,0 +1,17 @@ +# CompanyAnsweringRuleWeeklyScheduleInfoRequest + +Weekly schedule. If specified, ranges cannot be specified + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :-------------------------------------------- | :------- | :--------------------------------- | +| monday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| tuesday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| wednesday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| thursday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| friday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| saturday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | +| sunday | List[CompanyAnsweringRuleTimeIntervalRequest] | ❌ | Time interval for a particular day | + + diff --git a/documentation/models/CompanyBusinessHours.md b/documentation/models/CompanyBusinessHours.md new file mode 100644 index 00000000..17c81120 --- /dev/null +++ b/documentation/models/CompanyBusinessHours.md @@ -0,0 +1,10 @@ +# CompanyBusinessHours + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | Canonical URI of a business-hours resource | +| schedule | CompanyBusinessHoursScheduleInfo | ❌ | Schedule when an answering rule is applied | + + diff --git a/documentation/models/CompanyBusinessHoursScheduleInfo.md b/documentation/models/CompanyBusinessHoursScheduleInfo.md new file mode 100644 index 00000000..6320913b --- /dev/null +++ b/documentation/models/CompanyBusinessHoursScheduleInfo.md @@ -0,0 +1,11 @@ +# CompanyBusinessHoursScheduleInfo + +Schedule when an answering rule is applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------- | :------- | :-------------- | +| weekly_ranges | WeeklyScheduleInfo | ❌ | Weekly schedule | + + diff --git a/documentation/models/CompanyBusinessHoursUpdateRequest.md b/documentation/models/CompanyBusinessHoursUpdateRequest.md new file mode 100644 index 00000000..95d034f5 --- /dev/null +++ b/documentation/models/CompanyBusinessHoursUpdateRequest.md @@ -0,0 +1,9 @@ +# CompanyBusinessHoursUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------------- | :------- | :----------------------------------------- | +| schedule | CompanyBusinessHoursScheduleInfo | ❌ | Schedule when an answering rule is applied | + + diff --git a/documentation/models/CompanyHoursOptions.md b/documentation/models/CompanyHoursOptions.md new file mode 100644 index 00000000..e4dde523 --- /dev/null +++ b/documentation/models/CompanyHoursOptions.md @@ -0,0 +1,10 @@ +# CompanyHoursOptions + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | + + diff --git a/documentation/models/CompanyPhoneNumberInfo.md b/documentation/models/CompanyPhoneNumberInfo.md new file mode 100644 index 00000000..0b4530e8 --- /dev/null +++ b/documentation/models/CompanyPhoneNumberInfo.md @@ -0,0 +1,75 @@ +# CompanyPhoneNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to a company phone number resource | +| id\_ | int | ❌ | Internal identifier of a phone number | +| country | CountryInfoBasicModel | ❌ | | +| extension | ExtensionInfo | ❌ | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| label | str | ❌ | Custom user-defined name of a phone number, if any | +| location | str | ❌ | Location (City, State). Filled for local US numbers | +| payment_type | PlatformPaymentType | ❌ | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system | +| phone_number | str | ❌ | Phone number | +| status | CompanyPhoneNumberInfoStatus | ❌ | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. If the value is 'Pending' it is an external number not yet ported to RingCentral. | +| type\_ | CompanyPhoneNumberInfoType | ❌ | Phone number type | +| usage_type | CompanyPhoneNumberInfoUsageType | ❌ | Usage type of phone number. Usage type of phone number. Numbers of 'NumberPool' type are not returned in phone number list requests | +| temporary_number | TemporaryNumberInfo | ❌ | Temporary phone number, if any. Returned for phone numbers in `Pending` porting status only | +| contact_center_provider | ContactCenterProvider | ❌ | CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' | +| vanity_pattern | str | ❌ | Vanity pattern for this number. Returned only when vanity search option is requested. Vanity pattern corresponds to request parameters `nxx` plus `line` or `numberPattern` | +| primary | bool | ❌ | Specifies if a phone number is primary, i.e. displayed as 'main number' and called by default | + +# CompanyPhoneNumberInfoStatus + +Status of a phone number. If the value is 'Normal', the phone +number is ready to be used. If the value is 'Pending' it is an +external number not yet ported to RingCentral. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| PENDING | str | ✅ | "Pending" | +| PORTEDIN | str | ✅ | "PortedIn" | +| TEMPORARY | str | ✅ | "Temporary" | + +# CompanyPhoneNumberInfoType + +Phone number type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VOICEFAX | str | ✅ | "VoiceFax" | +| FAXONLY | str | ✅ | "FaxOnly" | +| VOICEONLY | str | ✅ | "VoiceOnly" | + +# CompanyPhoneNumberInfoUsageType + +Usage type of phone number. Usage type of phone number. +Numbers of 'NumberPool' type are not returned in phone number list +requests + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :---------------------------- | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| MEETINGSNUMBER | str | ✅ | "MeetingsNumber" | +| NUMBERPOOL | str | ✅ | "NumberPool" | +| BUSINESSMOBILENUMBER | str | ✅ | "BusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | +| INTEGRATIONNUMBER | str | ✅ | "IntegrationNumber" | + + diff --git a/documentation/models/ConferencePhoneNumberInfo.md b/documentation/models/ConferencePhoneNumberInfo.md new file mode 100644 index 00000000..1f61c73c --- /dev/null +++ b/documentation/models/ConferencePhoneNumberInfo.md @@ -0,0 +1,10 @@ +# ConferencePhoneNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Dial-in phone number to connect to a conference | +| default | bool | ❌ | The value should be `true` if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed | + + diff --git a/documentation/models/ConferenceType.md b/documentation/models/ConferenceType.md new file mode 100644 index 00000000..c2bae847 --- /dev/null +++ b/documentation/models/ConferenceType.md @@ -0,0 +1,10 @@ +# ConferenceType + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| AUDIOCONFERENCING | str | ✅ | "AudioConferencing" | +| MEETINGS | str | ✅ | "Meetings" | + + diff --git a/documentation/models/ContactAddressInfo.md b/documentation/models/ContactAddressInfo.md new file mode 100644 index 00000000..b80cc848 --- /dev/null +++ b/documentation/models/ContactAddressInfo.md @@ -0,0 +1,13 @@ +# ContactAddressInfo + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------ | +| street | str | ❌ | Street address | +| city | str | ❌ | City name | +| country | str | ❌ | Country name | +| state | str | ❌ | State/province name | +| zip | str | ❌ | Zip/Postal code | + + diff --git a/documentation/models/ContactAddressInfoResource.md b/documentation/models/ContactAddressInfoResource.md new file mode 100644 index 00000000..74d98987 --- /dev/null +++ b/documentation/models/ContactAddressInfoResource.md @@ -0,0 +1,13 @@ +# ContactAddressInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| street | str | ❌ | | +| city | str | ❌ | | +| state | str | ❌ | | +| zip | str | ❌ | | +| country | str | ❌ | | + + diff --git a/documentation/models/ContactBusinessAddressInfo.md b/documentation/models/ContactBusinessAddressInfo.md new file mode 100644 index 00000000..c20700bd --- /dev/null +++ b/documentation/models/ContactBusinessAddressInfo.md @@ -0,0 +1,16 @@ +# ContactBusinessAddressInfo + +User's business address. The default is +Company (Auto-Receptionist) settings + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------------------------------- | +| country | str | ❌ | Country name of a user's company | +| state | str | ❌ | State/province name of a user's company. Mandatory for the USA, UK and Canada | +| city | str | ❌ | City name of a user's company | +| street | str | ❌ | Street address of a user's company | +| zip | str | ❌ | Zip code of a user's company | + + diff --git a/documentation/models/ContactCenterProvider.md b/documentation/models/ContactCenterProvider.md new file mode 100644 index 00000000..6aba3eb9 --- /dev/null +++ b/documentation/models/ContactCenterProvider.md @@ -0,0 +1,13 @@ +# ContactCenterProvider + +CCRN (Contact Center Routing Number) provider. If not specified +then the default value 'InContact/North America' is used, its ID is '1' + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of the provider | +| name | str | ❌ | Provider's name | + + diff --git a/documentation/models/ContactInfo.md b/documentation/models/ContactInfo.md new file mode 100644 index 00000000..dfb5b1a9 --- /dev/null +++ b/documentation/models/ContactInfo.md @@ -0,0 +1,22 @@ +# ContactInfo + +Detailed contact information + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| first_name | str | ❌ | User's first name (for extensions of `User` type only) | +| last_name | str | ❌ | For User extension type only. User's last name (for extensions of `User` type only) | +| name | str | ❌ | Extension name (for extensions of `User` type - concatenation of first and last name) | +| company | str | ❌ | User's company name | +| job_title | str | ❌ | User's job title | +| email | str | ❌ | User's contact email | +| business_phone | str | ❌ | User's contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | +| mobile_phone | str | ❌ | User's mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| email_as_login_name | bool | ❌ | Indicates that the contact email is enabled as a login name for this user. Please note that the email must be unique in this case. | +| pronounced_name | PronouncedNameInfo | ❌ | | +| department | str | ❌ | User's department name | + + diff --git a/documentation/models/ContactInfoCreationRequest.md b/documentation/models/ContactInfoCreationRequest.md new file mode 100644 index 00000000..410743e0 --- /dev/null +++ b/documentation/models/ContactInfoCreationRequest.md @@ -0,0 +1,21 @@ +# ContactInfoCreationRequest + +Contact Information + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| first_name | str | ❌ | For User extension type only. Extension user first name | +| last_name | str | ❌ | For User extension type only. Extension user last name | +| company | str | ❌ | Extension user company name | +| job_title | str | ❌ | | +| email | str | ❌ | Email of extension user | +| business_phone | str | ❌ | Extension user contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| mobile_phone | str | ❌ | Extension user mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| email_as_login_name | bool | ❌ | If `true` then contact email is enabled as login name for this user. Please note that email should be unique in this case. The default value is `false` | +| pronounced_name | PronouncedNameInfo | ❌ | | +| department | str | ❌ | Extension user department, if any | + + diff --git a/documentation/models/ContactInfoUpdateRequest.md b/documentation/models/ContactInfoUpdateRequest.md new file mode 100644 index 00000000..e2b05c87 --- /dev/null +++ b/documentation/models/ContactInfoUpdateRequest.md @@ -0,0 +1,19 @@ +# ContactInfoUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| first_name | str | ❌ | For User extension type only. Extension user first name | +| last_name | str | ❌ | For User extension type only. Extension user last name | +| company | str | ❌ | Extension user company name | +| job_title | str | ❌ | | +| email | str | ❌ | Email of extension user | +| business_phone | str | ❌ | Extension user contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| mobile_phone | str | ❌ | Extension user mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| email_as_login_name | bool | ❌ | If `true` then contact email is enabled as login name for this user. Please note that email should be unique in this case. The default value is `false` | +| pronounced_name | PronouncedNameInfo | ❌ | | +| department | str | ❌ | Extension user department, if any | + + diff --git a/documentation/models/ContactList.md b/documentation/models/ContactList.md new file mode 100644 index 00000000..4bb0be86 --- /dev/null +++ b/documentation/models/ContactList.md @@ -0,0 +1,13 @@ +# ContactList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------------- | :------- | :-------------------------------------------------------- | +| uri | str | ❌ | Link to the list of user personal contacts | +| records | List[PersonalContactResource] | ❌ | List of personal contacts from the extension address book | +| navigation | UserContactsNavigationInfo | ❌ | Information on navigation | +| paging | UserContactsPagingInfo | ❌ | Information on paging | +| groups | UserContactsGroupsInfo | ❌ | Information on address book groups | + + diff --git a/documentation/models/ContactResource.md b/documentation/models/ContactResource.md new file mode 100644 index 00000000..802e761d --- /dev/null +++ b/documentation/models/ContactResource.md @@ -0,0 +1,73 @@ +# ContactResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------------------- | :------- | :------------------------------------------------ | +| id\_ | str | ✅ | Contact extension identifier | +| type\_ | ContactResourceType | ❌ | Contact type | +| status | ContactResourceStatus | ❌ | Contact status | +| account | AccountResource | ❌ | | +| department | str | ❌ | | +| email | str | ❌ | | +| extension_number | str | ❌ | | +| first_name | str | ❌ | First name of a contact, for user extensions only | +| last_name | str | ❌ | Last name of a contact, for user extensions only | +| name | str | ❌ | Name of a contact, for non-user extensions | +| job_title | str | ❌ | | +| phone_numbers | List[PhoneNumberResource] | ❌ | | +| profile_image | AccountDirectoryProfileImageResource | ❌ | | +| site | BusinessSiteResource | ❌ | | +| hidden | bool | ❌ | | +| role | DirectoryRoleResource | ❌ | | +| call_queues | List[CallQueueResource] | ❌ | | +| custom_fields | List[CustomFieldResource] | ❌ | | +| groups | List[GroupResource] | ❌ | | +| cost_center | CostCenterResource | ❌ | | +| integration | ExternalIntegrationResource | ❌ | | +| sub_type | ContactSubTypeEnum | ❌ | Extension subtype | + +# ContactResourceType + +Contact type + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| IVRMENU | str | ✅ | "IvrMenu" | +| LIMITED | str | ✅ | "Limited" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| SITE | str | ✅ | "Site" | +| BOT | str | ✅ | "Bot" | +| ROOM | str | ✅ | "Room" | +| PROXYADMIN | str | ✅ | "ProxyAdmin" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | +| EXTERNAL | str | ✅ | "External" | +| ROOMCONNECTOR | str | ✅ | "RoomConnector" | +| UNKNOWN | str | ✅ | "Unknown" | + +# ContactResourceStatus + +Contact status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| FROZEN | str | ✅ | "Frozen" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/ContactSubTypeEnum.md b/documentation/models/ContactSubTypeEnum.md new file mode 100644 index 00000000..d429d703 --- /dev/null +++ b/documentation/models/ContactSubTypeEnum.md @@ -0,0 +1,15 @@ +# ContactSubTypeEnum + +Extension subtype + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| UNKNOWN | str | ✅ | "Unknown" | +| VIDEOPRO | str | ✅ | "VideoPro" | +| VIDEOPROPLUS | str | ✅ | "VideoProPlus" | +| DIGITALSIGNAGE | str | ✅ | "DigitalSignage" | +| EMERGENCY | str | ✅ | "Emergency" | + + diff --git a/documentation/models/ContentAttachment.md b/documentation/models/ContentAttachment.md new file mode 100644 index 00000000..1de01f0e --- /dev/null +++ b/documentation/models/ContentAttachment.md @@ -0,0 +1,17 @@ +# ContentAttachment + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| content_type | str | ❌ | Type of the attachment, which is generally a MIME attachment type like "image/jpeg", etc. Security level in ED determines what type of attachment is allowed. Based on the security level the following attachment types are supported. "Strict" level allows safe extensions below: Content name and supported types _ audio (supports aac mp3 ogg m4a) _ image (supports bmp gif jpg jpeg png svg webp) _ pdf (supports pdf) _ text (supports csv txt log) _ video (supports avi flv m4v mkv mov mp4 mpg qt wmv) _ other (supports amr dms vcard tif tiff mpeg) "Relaxed" level allows documents: Content name and supported types _ excel (supports xls xlsm xlsx xlc xlt xltm xltx) _ presentation (supports key odp otp) _ powerpoint (supports pps ppt pptx pot) _ spreadsheet (supports numbers ods ots) _ word (supports doc docm docx dotm dotx) _ word_processing (supports pages odt ott rtf) "Permissive" level allows all documents. However, there are no security level restrictions for content posted through the channel. | +| creation_time | str | ❌ | Creation time of the attachment. | +| embedded | bool | ❌ | Embedded in a content. | +| filename | str | ❌ | Filename of the attachment. | +| id\_ | str | ❌ | Identifier of the attachment. | +| public | bool | ❌ | Privacy setting of the attachment. | +| size | int | ❌ | Size of the attachment. | +| last_modified_time | str | ❌ | The time when the last modification was completed. | +| uri | str | ❌ | Uri of the attachment. | + + diff --git a/documentation/models/ContentBodyFormatted.md b/documentation/models/ContentBodyFormatted.md new file mode 100644 index 00000000..23f805c5 --- /dev/null +++ b/documentation/models/ContentBodyFormatted.md @@ -0,0 +1,12 @@ +# ContentBodyFormatted + +Text and HTML formatted versions of the content body. + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| html | str | ❌ | | +| text | str | ❌ | | + + diff --git a/documentation/models/ContentBodyInputFormat.md b/documentation/models/ContentBodyInputFormat.md new file mode 100644 index 00000000..09d4fbe4 --- /dev/null +++ b/documentation/models/ContentBodyInputFormat.md @@ -0,0 +1,12 @@ +# ContentBodyInputFormat + +Values can be Text or Html. + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| TEXT | str | ✅ | "Text" | +| HTML | str | ✅ | "Html" | + + diff --git a/documentation/models/ContentComponents.md b/documentation/models/ContentComponents.md new file mode 100644 index 00000000..97d1fa4c --- /dev/null +++ b/documentation/models/ContentComponents.md @@ -0,0 +1,19 @@ +# ContentComponents + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :---------- | +| type\_ | str | ❌ | | +| parameters | List[Parameters] | ❌ | | + +# Parameters + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| type\_ | str | ❌ | | +| text | str | ❌ | | + + diff --git a/documentation/models/ContentCreatedFrom.md b/documentation/models/ContentCreatedFrom.md new file mode 100644 index 00000000..b5de216f --- /dev/null +++ b/documentation/models/ContentCreatedFrom.md @@ -0,0 +1,16 @@ +# ContentCreatedFrom + +Created from of the content. + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| SYNCHRONIZER | str | ✅ | "Synchronizer" | +| INTERFACE | str | ✅ | "Interface" | +| API | str | ✅ | "Api" | +| AUTOSURVEY | str | ✅ | "AutoSurvey" | +| AUTORESPONSETRIGGER | str | ✅ | "AutoResponseTrigger" | +| AUTOREQUESTEMAIL | str | ✅ | "AutoRequestEmail" | + + diff --git a/documentation/models/ContentDisposition.md b/documentation/models/ContentDisposition.md new file mode 100644 index 00000000..2e2de30c --- /dev/null +++ b/documentation/models/ContentDisposition.md @@ -0,0 +1,10 @@ +# ContentDisposition + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| INLINE | str | ✅ | "Inline" | +| ATTACHMENT | str | ✅ | "Attachment" | + + diff --git a/documentation/models/ContentList.md b/documentation/models/ContentList.md new file mode 100644 index 00000000..5a3dcb6e --- /dev/null +++ b/documentation/models/ContentList.md @@ -0,0 +1,10 @@ +# ContentList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------- | +| records | List[ContentModel] | ✅ | | +| paging | NonEnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/ContentModel.md b/documentation/models/ContentModel.md new file mode 100644 index 00000000..03c13394 --- /dev/null +++ b/documentation/models/ContentModel.md @@ -0,0 +1,40 @@ +# ContentModel + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| attachments | List[ContentAttachment] | ✅ | An array containing the attachments that are attached to the content. | +| author_identity_id | str | ✅ | Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel. | +| auto_submitted | bool | ✅ | Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics | +| body | str | ✅ | The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length _ Apple Messages For Business (max length 10000) _ Email (max length 262144) _ RingCX Digital Messaging (max length 1024) _ Facebook (max length 8000) _ GoogleBusinessMessages (max length 3000) _ Google My Business (max length 4000) _ Instagram (max length 950) _ Instagram Messaging (max length 1000) _ LinkedIn (max length 3000) _ Messenger (max length 2000) _ Twitter (max length 280) _ Viber (max length 7000) _ WhatsApp (max length 3800) _ Youtube (max length 8000) | +| body_formatted | ContentBodyFormatted | ✅ | Text and HTML formatted versions of the content body. | +| body_input_format | ContentBodyInputFormat | ✅ | Values can be Text or Html. | +| category_ids | List[str] | ✅ | List of the category identifiers of the content. | +| creation_time | str | ✅ | Creation time of the resource. | +| created_from | ContentCreatedFrom | ✅ | Created from of the content. | +| creator_id | str | ✅ | RC user id of the creator | +| id\_ | str | ✅ | Identifier of the content. | +| in_reply_to_author_identity_id | str | ✅ | The identity identifier of the content to which this content is a reply to. | +| in_reply_to_content_id | str | ✅ | The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory. | +| intervention_id | str | ✅ | The intervention identifier of the content. | +| language | str | ✅ | Language of the content. | +| public | bool | ✅ | True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel. | +| published | bool | ✅ | True if the content is published on the remote channel. | +| rating | int | ✅ | Rating of the content. Present only if the content supports rating and rating is filled. | +| remotely_deleted | bool | ✅ | True if the content has been deleted on the remote channel. | +| source_id | str | ✅ | Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory. | +| source_type | ContentSourceType | ✅ | Type of the channel. | +| source_uri | str | ✅ | External Uri of the content channel. | +| status | ContentStatus | ✅ | Content status. | +| synchronization_status | str | ✅ | Synchronization status. | +| synchronization_error | str | ✅ | Synchronization error details. | +| thread_id | str | ✅ | Content thread identifier of the content. | +| title | str | ✅ | Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion. | +| type\_ | ContentType | ✅ | Type of the content. | +| last_modified_time | str | ✅ | The time when the last modification was completed. | +| capabilities_supported | List[str] | ✅ | Types of structured messages that can be used to reply to this type of message. | +| context_data | dict | ❌ | Additional data of the content. The contextData hash keys are the custom fields keys. | +| foreign_categories | List[str] | ❌ | External categories of the content. Present only if the content has foreignCategories. | + + diff --git a/documentation/models/ContentSourceType.md b/documentation/models/ContentSourceType.md new file mode 100644 index 00000000..bff2b506 --- /dev/null +++ b/documentation/models/ContentSourceType.md @@ -0,0 +1,24 @@ +# ContentSourceType + +Type of the channel. + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :------------------------- | +| APPLEMESSAGESFORBUSINESS | str | ✅ | "AppleMessagesForBusiness" | +| EMAIL | str | ✅ | "Email" | +| ENGAGEMESSAGING | str | ✅ | "EngageMessaging" | +| FACEBOOK | str | ✅ | "Facebook" | +| GOOGLEBUSINESSMESSAGES | str | ✅ | "GoogleBusinessMessages" | +| GOOGLEMYBUSINESS | str | ✅ | "GoogleMyBusiness" | +| INSTAGRAM | str | ✅ | "Instagram" | +| INSTAGRAMMESSAGING | str | ✅ | "InstagramMessaging" | +| LINKEDIN | str | ✅ | "Linkedin" | +| MESSENGER | str | ✅ | "Messenger" | +| TWITTER | str | ✅ | "Twitter" | +| VIBER | str | ✅ | "Viber" | +| WHATSAPP | str | ✅ | "WhatsApp" | +| YOUTUBE | str | ✅ | "Youtube" | + + diff --git a/documentation/models/ContentStatus.md b/documentation/models/ContentStatus.md new file mode 100644 index 00000000..fbacf6c6 --- /dev/null +++ b/documentation/models/ContentStatus.md @@ -0,0 +1,16 @@ +# ContentStatus + +Content status. + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NEW | str | ✅ | "New" | +| ASSIGNED | str | ✅ | "Assigned" | +| REPLIED | str | ✅ | "Replied" | +| USERREPLY | str | ✅ | "UserReply" | +| USERINITIATED | str | ✅ | "UserInitiated" | +| IGNORED | str | ✅ | "Ignored" | + + diff --git a/documentation/models/ContentType.md b/documentation/models/ContentType.md new file mode 100644 index 00000000..61df1129 --- /dev/null +++ b/documentation/models/ContentType.md @@ -0,0 +1,43 @@ +# ContentType + +Type of the content. + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| ALBUM | str | ✅ | "Album" | +| AUTHENTICATEMESSAGE | str | ✅ | "AuthenticateMessage" | +| AUTHENTICATERESPONSE | str | ✅ | "AuthenticateResponse" | +| CAROUSEL | str | ✅ | "Carousel" | +| CAROUSELMESSAGE | str | ✅ | "CarouselMessage" | +| COMMENT | str | ✅ | "Comment" | +| CONTACTMESSAGE | str | ✅ | "ContactMessage" | +| CONTENT | str | ✅ | "Content" | +| EMAIL | str | ✅ | "Email" | +| FORMMESSAGE | str | ✅ | "FormMessage" | +| FORMRESPONSE | str | ✅ | "FormResponse" | +| HSMMESSAGE | str | ✅ | "HsmMessage" | +| LINK | str | ✅ | "Link" | +| LISTMESSAGE | str | ✅ | "ListMessage" | +| MEDIA | str | ✅ | "Media" | +| MESSAGE | str | ✅ | "Message" | +| OUTBOUNDMESSAGE | str | ✅ | "OutboundMessage" | +| PAYMENTMESSAGE | str | ✅ | "PaymentMessage" | +| PHOTO | str | ✅ | "Photo" | +| POSTBACKMESSAGE | str | ✅ | "PostbackMessage" | +| PRIVATETWEET | str | ✅ | "PrivateTweet" | +| PROMPTMESSAGE | str | ✅ | "PromptMessage" | +| QUESTION | str | ✅ | "Question" | +| REVIEW | str | ✅ | "Review" | +| REVIEWRESPONSE | str | ✅ | "ReviewResponse" | +| RICHLINKMESSAGE | str | ✅ | "RichLinkMessage" | +| SELECTMESSAGE | str | ✅ | "SelectMessage" | +| STATUS | str | ✅ | "Status" | +| TEMPLATEMESSAGE | str | ✅ | "TemplateMessage" | +| TIMEPICKERMESSAGE | str | ✅ | "TimePickerMessage" | +| TWEET | str | ✅ | "Tweet" | +| VIDEO | str | ✅ | "Video" | +| VIDEOCALLREQUESTMESSAGE | str | ✅ | "VideoCallRequestMessage" | + + diff --git a/documentation/models/ContractedCountryListResponse.md b/documentation/models/ContractedCountryListResponse.md new file mode 100644 index 00000000..bfb67280 --- /dev/null +++ b/documentation/models/ContractedCountryListResponse.md @@ -0,0 +1,18 @@ +# ContractedCountryListResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------------------- | :------- | :-------------------------------------- | +| records | List[ContractedCountryListResponseRecords] | ✅ | List of countries with the country data | + +# ContractedCountryListResponseRecords + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| name | str | ❌ | Official name of a country | + + diff --git a/documentation/models/ConversationInfo.md b/documentation/models/ConversationInfo.md new file mode 100644 index 00000000..2987ea22 --- /dev/null +++ b/documentation/models/ConversationInfo.md @@ -0,0 +1,12 @@ +# ConversationInfo + +SMS and Pager only. Information about a conversation the message belongs to + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a conversation | +| uri | str | ❌ | Deprecated. Link to a conversation resource | + + diff --git a/documentation/models/ConversationalInsightsUnit.md b/documentation/models/ConversationalInsightsUnit.md new file mode 100644 index 00000000..c2b66335 --- /dev/null +++ b/documentation/models/ConversationalInsightsUnit.md @@ -0,0 +1,24 @@ +# ConversationalInsightsUnit + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------------------- | :------- | :---------- | +| name | ConversationalInsightsUnitName | ✅ | | +| values | List[ConversationalInsightsUnitValues] | ✅ | | + +# ConversationalInsightsUnitName + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| EXTRACTIVESUMMARY | str | ✅ | "ExtractiveSummary" | +| ABSTRACTIVESUMMARYLONG | str | ✅ | "AbstractiveSummaryLong" | +| ABSTRACTIVESUMMARYSHORT | str | ✅ | "AbstractiveSummaryShort" | +| KEYPHRASES | str | ✅ | "KeyPhrases" | +| QUESTIONSASKED | str | ✅ | "QuestionsAsked" | +| OVERALLSENTIMENT | str | ✅ | "OverallSentiment" | +| TOPICS | str | ✅ | "Topics" | + + diff --git a/documentation/models/ConversationalInsightsUnitValues.md b/documentation/models/ConversationalInsightsUnitValues.md new file mode 100644 index 00000000..23f1b7b6 --- /dev/null +++ b/documentation/models/ConversationalInsightsUnitValues.md @@ -0,0 +1,19 @@ +# ConversationalInsightsUnitValues + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :----------------------------------- | +| value | str | ✅ | | +| start | float | ✅ | | +| end | float | ✅ | | +| confidence | float | ❌ | | +| group_id | str | ❌ | Paragraph index of the long summary. | +| speaker_id | str | ❌ | | +| assignee | str | ❌ | | +| category | str | ❌ | | +| text | str | ❌ | | +| question | str | ❌ | | +| answer | str | ❌ | | + + diff --git a/documentation/models/CostCenterInfo.md b/documentation/models/CostCenterInfo.md new file mode 100644 index 00000000..a2623ef6 --- /dev/null +++ b/documentation/models/CostCenterInfo.md @@ -0,0 +1,12 @@ +# CostCenterInfo + +Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------- | +| id\_ | str | ❌ | Internal identifier of a cost center | +| name | str | ❌ | Name of a cost center | + + diff --git a/documentation/models/CostCenterResource.md b/documentation/models/CostCenterResource.md new file mode 100644 index 00000000..b834d5db --- /dev/null +++ b/documentation/models/CostCenterResource.md @@ -0,0 +1,11 @@ +# CostCenterResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| code | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/CountryInfoBasicModel.md b/documentation/models/CountryInfoBasicModel.md new file mode 100644 index 00000000..aca873dc --- /dev/null +++ b/documentation/models/CountryInfoBasicModel.md @@ -0,0 +1,11 @@ +# CountryInfoBasicModel + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | +| name | str | ❌ | The official name of a country | + + diff --git a/documentation/models/CountryInfoDictionaryModel.md b/documentation/models/CountryInfoDictionaryModel.md new file mode 100644 index 00000000..dfad6ff6 --- /dev/null +++ b/documentation/models/CountryInfoDictionaryModel.md @@ -0,0 +1,19 @@ +# CountryInfoDictionaryModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | +| name | str | ❌ | The official name of a country | +| iso_code | str | ❌ | Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) | +| calling_code | str | ❌ | Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) | +| emergency_calling | bool | ❌ | Emergency calling feature availability/emergency address requirement indicator | +| number_selling | bool | ❌ | Indicates that phone numbers are available for this country | +| login_allowed | bool | ❌ | Indicates that login with the phone number of this country is allowed | +| signup_allowed | bool | ❌ | Indicates that signup/billing is allowed for this country | +| free_softphone_line | bool | ❌ | Indicates that free phone line for softphone is available for this country | +| local_dialing | bool | ❌ | Indicates that the local dialing is supported in this country and default area code can be set | + + diff --git a/documentation/models/CountryInfoMinimalModel.md b/documentation/models/CountryInfoMinimalModel.md new file mode 100644 index 00000000..f7c1c37b --- /dev/null +++ b/documentation/models/CountryInfoMinimalModel.md @@ -0,0 +1,10 @@ +# CountryInfoMinimalModel + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | + + diff --git a/documentation/models/CountryInfoShortModel.md b/documentation/models/CountryInfoShortModel.md new file mode 100644 index 00000000..b037f689 --- /dev/null +++ b/documentation/models/CountryInfoShortModel.md @@ -0,0 +1,13 @@ +# CountryInfoShortModel + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | +| name | str | ❌ | The official name of a country | +| iso_code | str | ❌ | A ISO country code value complying with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. | +| calling_code | str | ❌ | Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) | + + diff --git a/documentation/models/CountryListDictionaryModel.md b/documentation/models/CountryListDictionaryModel.md new file mode 100644 index 00000000..ef618962 --- /dev/null +++ b/documentation/models/CountryListDictionaryModel.md @@ -0,0 +1,12 @@ +# CountryListDictionaryModel + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :--------------------------------------------- | +| records | List[CountryInfoDictionaryModel] | ✅ | List of countries with the country data | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the list of countries supported | + + diff --git a/documentation/models/CreateAnsweringRuleForwardingNumberInfo.md b/documentation/models/CreateAnsweringRuleForwardingNumberInfo.md new file mode 100644 index 00000000..a27676fa --- /dev/null +++ b/documentation/models/CreateAnsweringRuleForwardingNumberInfo.md @@ -0,0 +1,31 @@ +# CreateAnsweringRuleForwardingNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------ | :------- | :--------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a forwarding number | +| uri | str | ❌ | Canonical URI of a forwarding/call flip phone number | +| phone_number | str | ❌ | Forwarding/Call flip phone number | +| label | str | ❌ | Forwarding/Call flip number title | +| type\_ | CreateAnsweringRuleForwardingNumberInfoType | ❌ | Type of forwarding number | + +# CreateAnsweringRuleForwardingNumberInfoType + +Type of forwarding number + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| PHONELINE | str | ✅ | "PhoneLine" | +| OUTAGE | str | ✅ | "Outage" | +| OTHER | str | ✅ | "Other" | +| BUSINESSMOBILEPHONE | str | ✅ | "BusinessMobilePhone" | +| EXTERNALCARRIER | str | ✅ | "ExternalCarrier" | +| EXTENSIONAPPS | str | ✅ | "ExtensionApps" | + + diff --git a/documentation/models/CreateAnsweringRuleRequest.md b/documentation/models/CreateAnsweringRuleRequest.md new file mode 100644 index 00000000..d86e560d --- /dev/null +++ b/documentation/models/CreateAnsweringRuleRequest.md @@ -0,0 +1,58 @@ +# CreateAnsweringRuleRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | str | ✅ | Type of an answering rule. The 'Custom' value should be specified | +| name | str | ✅ | Name of an answering rule specified by user | +| enabled | bool | ❌ | Specifies if the rule is active or inactive. The default value is `true` | +| callers | List[CallersInfoRequest] | ❌ | Answering rule will be applied when calls are received from the specified caller(s) | +| called_numbers | List[CalledNumberInfo] | ❌ | Answering rules are applied when calling to selected number(s) | +| schedule | ScheduleInfo | ❌ | Schedule when an answering rule should be applied | +| call_handling_action | CreateAnsweringRuleRequestCallHandlingAction | ❌ | Specifies how incoming calls are forwarded | +| forwarding | ForwardingInfo | ❌ | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| unconditional_forwarding | UnconditionalForwardingInfo | ❌ | Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter | +| queue | QueueInfo | ❌ | Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action | +| transfer | TransferredExtensionInfo | ❌ | | +| voicemail | VoicemailInfo | ❌ | Specifies whether to take a voicemail and who should do it | +| missed_call | MissedCallInfo | ❌ | Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | +| screening | CreateAnsweringRuleRequestScreening | ❌ | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | + +# CreateAnsweringRuleRequestCallHandlingAction + +Specifies how incoming calls are forwarded + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| FORWARDCALLS | str | ✅ | "ForwardCalls" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | +| AGENTQUEUE | str | ✅ | "AgentQueue" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| TAKEMESSAGESONLY | str | ✅ | "TakeMessagesOnly" | +| PLAYANNOUNCEMENTONLY | str | ✅ | "PlayAnnouncementOnly" | +| SHAREDLINES | str | ✅ | "SharedLines" | + +# CreateAnsweringRuleRequestScreening + +Call screening status. 'Off' - no call screening; 'NoCallerId' + +- if caller ID is missing, then callers are asked to say their name before + connecting; 'UnknownCallerId' - if caller ID is not in contact list, then + callers are asked to say their name before connecting; 'Always' - the + callers are always asked to say their name before connecting. The default + value is 'Off' + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| OFF | str | ✅ | "Off" | +| NOCALLERID | str | ✅ | "NoCallerId" | +| UNKNOWNCALLERID | str | ✅ | "UnknownCallerId" | +| ALWAYS | str | ✅ | "Always" | + + diff --git a/documentation/models/CreateBridgeRequest.md b/documentation/models/CreateBridgeRequest.md new file mode 100644 index 00000000..8d61c7ca --- /dev/null +++ b/documentation/models/CreateBridgeRequest.md @@ -0,0 +1,32 @@ +# CreateBridgeRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | str | ❌ | Custom name of a bridge | +| type\_ | CreateBridgeRequestType | ❌ | Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. | +| pins | BridgePins | ❌ | | +| security | BridgeRequestSecurity | ❌ | | +| preferences | BridgePreferences | ❌ | | + +# CreateBridgeRequestType + +Type of bridge. It specifies bridge life cycle. + +1. Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. +2. Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long + time after the last meeting, then it will be deleted. +3. PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. + Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted + from the system. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INSTANT | str | ✅ | "Instant" | +| SCHEDULED | str | ✅ | "Scheduled" | +| PMI | str | ✅ | "PMI" | + + diff --git a/documentation/models/CreateCallMonitoringGroupRequest.md b/documentation/models/CreateCallMonitoringGroupRequest.md new file mode 100644 index 00000000..af86e853 --- /dev/null +++ b/documentation/models/CreateCallMonitoringGroupRequest.md @@ -0,0 +1,9 @@ +# CreateCallMonitoringGroupRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------- | +| name | str | ✅ | Name of a group | + + diff --git a/documentation/models/CreateContentRequest.md b/documentation/models/CreateContentRequest.md new file mode 100644 index 00000000..b7c4bcc8 --- /dev/null +++ b/documentation/models/CreateContentRequest.md @@ -0,0 +1,25 @@ +# CreateContentRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| author_identity_id | str | ❌ | Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel. | +| body | str | ❌ | The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length _ Apple Messages For Business (max length 10000) _ Email (max length 262144) _ RingCX Digital Messaging (max length 1024) _ Facebook (max length 8000) _ GoogleBusinessMessages (max length 3000) _ Google My Business (max length 4000) _ Instagram (max length 950) _ Instagram Messaging (max length 1000) _ LinkedIn (max length 3000) _ Messenger (max length 2000) _ Twitter (max length 280) _ Viber (max length 7000) _ WhatsApp (max length 3800) _ Youtube (max length 8000) | +| in_reply_to_content_id | str | ❌ | The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory. | +| public | bool | ❌ | True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel. | +| source_id | str | ❌ | Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory. | +| attachment_ids | List[str] | ❌ | An array containing the attachment identifiers that need to be attached to the content. | +| title | str | ❌ | Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion. | +| to | To | ❌ | | +| cc | List[str] | ❌ | Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion. | +| bcc | List[str] | ❌ | Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion. | +| template_name | str | ❌ | Applicable to WhatsApp channels only. Name of the Whatsapp template to use for the content. All available template names are visible on the Whatsapp Business Manager interface. | +| template_language | str | ❌ | Applicable to WhatsApp channels only. Language of the Whatsapp template to use for the content. All available template languages are visible on the Whatsapp Business Manager interface. Language specified must conform to the ISO 639-1 alpha-2 codes for representing the names of languages. | +| components | List[ContentComponents] | ❌ | Applicable to WhatsApp channels only. Component configuration of the Whatsapp template to use for the content. All available components are visible on the Whatsapp Business Manager interface. | +| context_data | dict | ❌ | Additional data of the content. The contextData hash keys are the custom fields keys. | +| auto_submitted | bool | ❌ | Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics | + +# To + + diff --git a/documentation/models/CreateConversationRequest.md b/documentation/models/CreateConversationRequest.md new file mode 100644 index 00000000..dfe1aa8d --- /dev/null +++ b/documentation/models/CreateConversationRequest.md @@ -0,0 +1,18 @@ +# CreateConversationRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| members | List[CreateConversationRequestMembers] | ✅ | Identifier(s) of chat member(s). The maximum supported number of IDs is 15. User's own ID is optional. If `members` section is omitted then "Personal" chat will be returned | + +# CreateConversationRequestMembers + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a person | +| email | str | ❌ | Email of a person | + + diff --git a/documentation/models/CreateDataExportTaskRequest.md b/documentation/models/CreateDataExportTaskRequest.md new file mode 100644 index 00000000..b25a4175 --- /dev/null +++ b/documentation/models/CreateDataExportTaskRequest.md @@ -0,0 +1,12 @@ +# CreateDataExportTaskRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| time_from | str | ❌ | Starting time for data collection. The default value is `timeTo` minus 24 hours. Max allowed time frame between `timeFrom` and `timeTo` is 6 months | +| time_to | str | ❌ | Ending time for data collection. The default value is current time. Max allowed time frame between `timeFrom` and `timeTo` is 6 months | +| contacts | List[DataExportTaskContactInfo] | ❌ | List of contacts which data is collected. The following data will be exported: posts, tasks, events, etc. posted by the user(s); posts addressing the user(s) via direct and @Mentions; tasks assigned to the listed user(s). The list of 30 users per request is supported. | +| chat_ids | List[str] | ❌ | List of chats from which the data (posts, files, tasks, events, notes, etc.) will be collected. Maximum number of chats supported is 10 | + + diff --git a/documentation/models/CreateFaxMessageRequest.md b/documentation/models/CreateFaxMessageRequest.md new file mode 100644 index 00000000..e7a15d4f --- /dev/null +++ b/documentation/models/CreateFaxMessageRequest.md @@ -0,0 +1,15 @@ +# CreateFaxMessageRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :----------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| attachment | any | ✅ | File to upload | +| to | List[FaxRequestTo] | ✅ | Recipient's phone number(s) | +| fax_resolution | FaxResolutionEnum | ❌ | Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi | +| send_time | str | ❌ | Timestamp to send a fax at. If not specified, current or the past a fax message is sent immediately | +| iso_code | str | ❌ | Alpha-2 ISO Code of a country | +| cover_index | int | ❌ | Cover page identifier. If `coverIndex` is set to '0' (zero) a cover page is not attached. For a list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') | +| cover_page_text | str | ❌ | Cover page text, entered by a fax sender and printed on a cover page. Maximum length is limited to 1024 symbols | + + diff --git a/documentation/models/CreateForwardingNumberDeviceInfo.md b/documentation/models/CreateForwardingNumberDeviceInfo.md new file mode 100644 index 00000000..1b07fcdd --- /dev/null +++ b/documentation/models/CreateForwardingNumberDeviceInfo.md @@ -0,0 +1,12 @@ +# CreateForwardingNumberDeviceInfo + +Forwarding device information. Applicable for 'PhoneLine' type only. +Cannot be specified together with 'phoneNumber' parameter + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of the other extension device | + + diff --git a/documentation/models/CreateForwardingNumberRequest.md b/documentation/models/CreateForwardingNumberRequest.md new file mode 100644 index 00000000..e4758842 --- /dev/null +++ b/documentation/models/CreateForwardingNumberRequest.md @@ -0,0 +1,27 @@ +# CreateForwardingNumberRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | +| flip_number | int | ❌ | Number assigned to the call flip phone number, corresponds to the shortcut dial number | +| phone_number | str | ❌ | Forwarding/Call flip phone number | +| label | str | ❌ | Forwarding/Call flip number title | +| type\_ | CreateForwardingNumberRequestType | ❌ | Forwarding/Call flip phone type. If specified, 'label' attribute value is ignored. The default value is 'Other' | +| device | CreateForwardingNumberDeviceInfo | ❌ | Forwarding device information. Applicable for 'PhoneLine' type only. Cannot be specified together with 'phoneNumber' parameter | + +# CreateForwardingNumberRequestType + +Forwarding/Call flip phone type. If specified, 'label' attribute value is ignored. The default value is 'Other' + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| PHONELINE | str | ✅ | "PhoneLine" | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| OTHER | str | ✅ | "Other" | + + diff --git a/documentation/models/CreateGlipFileNewRequest.md b/documentation/models/CreateGlipFileNewRequest.md new file mode 100644 index 00000000..14850d3e --- /dev/null +++ b/documentation/models/CreateGlipFileNewRequest.md @@ -0,0 +1,9 @@ +# CreateGlipFileNewRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------- | +| body | any | ✅ | The file (binary or multipart/form-data) to upload | + + diff --git a/documentation/models/CreateInternalTextMessageRequest.md b/documentation/models/CreateInternalTextMessageRequest.md new file mode 100644 index 00000000..ab572c13 --- /dev/null +++ b/documentation/models/CreateInternalTextMessageRequest.md @@ -0,0 +1,12 @@ +# CreateInternalTextMessageRequest + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| text | str | ✅ | Text of a pager message. Max length is 1024 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 512 symbols | +| from\_ | PagerCallerInfoRequest | ❌ | Sender of a pager message. | +| reply_on | int | ❌ | Internal identifier of a message this message replies to | +| to | List[PagerCallerInfoRequest] | ❌ | Optional if `replyOn` parameter is specified. Receiver of a pager message. | + + diff --git a/documentation/models/CreateIvrPromptRequest.md b/documentation/models/CreateIvrPromptRequest.md new file mode 100644 index 00000000..06ca8957 --- /dev/null +++ b/documentation/models/CreateIvrPromptRequest.md @@ -0,0 +1,10 @@ +# CreateIvrPromptRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :--------------------------------------------------------------------------------------------------- | +| attachment | any | ✅ | Audio file that will be used as a prompt. Attachment cannot be empty, only audio files are supported | +| name | str | ❌ | Description of file contents. | + + diff --git a/documentation/models/CreateMessageStoreReportRequest.md b/documentation/models/CreateMessageStoreReportRequest.md new file mode 100644 index 00000000..8571fe17 --- /dev/null +++ b/documentation/models/CreateMessageStoreReportRequest.md @@ -0,0 +1,11 @@ +# CreateMessageStoreReportRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| date_to | str | ❌ | The end of the time range to collect message records in ISO 8601 format including timezone. Default is the current time | +| date_from | str | ❌ | The beginning of the time range to collect call log records in ISO 8601 format including timezone. Default is the current time minus 24 hours | +| message_types | List[PicMessageTypeEnum] | ❌ | Types of messages to be collected. If not specified, all messages without message type filtering will be returned. Multiple values are accepted | + + diff --git a/documentation/models/CreateMmsMessage.md b/documentation/models/CreateMmsMessage.md new file mode 100644 index 00000000..a7206a43 --- /dev/null +++ b/documentation/models/CreateMmsMessage.md @@ -0,0 +1,13 @@ +# CreateMmsMessage + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from\_ | MessageStoreCallerInfoRequest | ✅ | Message sender information. The `phoneNumber` value should be one the account phone numbers allowed to send the current type of messages | +| to | List[MessageStoreCallerInfoRequest] | ✅ | Message receiver(s) information. The `phoneNumber` value is required | +| attachments | List[any] | ✅ | Media file(s) to upload | +| text | str | ❌ | Text of a message. Max length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 500 symbols | +| country | SmsRequestCountryInfo | ❌ | Target number country information. Either `id` or `isoCode` can be specified. | + + diff --git a/documentation/models/CreateMultipleSwitchesRequest.md b/documentation/models/CreateMultipleSwitchesRequest.md new file mode 100644 index 00000000..f6f070f1 --- /dev/null +++ b/documentation/models/CreateMultipleSwitchesRequest.md @@ -0,0 +1,9 @@ +# CreateMultipleSwitchesRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :---------- | +| records | List[CreateSwitchInfo] | ❌ | | + + diff --git a/documentation/models/CreateMultipleSwitchesResponse.md b/documentation/models/CreateMultipleSwitchesResponse.md new file mode 100644 index 00000000..e727dc3b --- /dev/null +++ b/documentation/models/CreateMultipleSwitchesResponse.md @@ -0,0 +1,11 @@ +# CreateMultipleSwitchesResponse + +Information on a task for multiple switches creation + +**Properties** + +| Name | Type | Required | Description | +| :--- | :----------------- | :------- | :---------- | +| task | List[BulkTaskInfo] | ❌ | | + + diff --git a/documentation/models/CreateMultipleWirelessPointsRequest.md b/documentation/models/CreateMultipleWirelessPointsRequest.md new file mode 100644 index 00000000..4b945095 --- /dev/null +++ b/documentation/models/CreateMultipleWirelessPointsRequest.md @@ -0,0 +1,9 @@ +# CreateMultipleWirelessPointsRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :---------- | +| records | List[CreateWirelessPoint] | ❌ | | + + diff --git a/documentation/models/CreateMultipleWirelessPointsResponse.md b/documentation/models/CreateMultipleWirelessPointsResponse.md new file mode 100644 index 00000000..792efaf7 --- /dev/null +++ b/documentation/models/CreateMultipleWirelessPointsResponse.md @@ -0,0 +1,9 @@ +# CreateMultipleWirelessPointsResponse + +**Properties** + +| Name | Type | Required | Description | +| :--- | :----------- | :------- | :---------- | +| task | BulkTaskInfo | ❌ | | + + diff --git a/documentation/models/CreateNetworkRequest.md b/documentation/models/CreateNetworkRequest.md new file mode 100644 index 00000000..62e9cb2a --- /dev/null +++ b/documentation/models/CreateNetworkRequest.md @@ -0,0 +1,12 @@ +# CreateNetworkRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| name | str | ✅ | | +| public_ip_ranges | List[PublicIpRangeInfo] | ✅ | | +| private_ip_ranges | List[PrivateIpRangeInfoRequest] | ✅ | | +| site | AutomaticLocationUpdatesSiteInfo | ❌ | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | + + diff --git a/documentation/models/CreateSipRegistrationRequest.md b/documentation/models/CreateSipRegistrationRequest.md new file mode 100644 index 00000000..42ba9611 --- /dev/null +++ b/documentation/models/CreateSipRegistrationRequest.md @@ -0,0 +1,25 @@ +# CreateSipRegistrationRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| device | DeviceInfoRequest | ❌ | Device information | +| sip_info | List[SipInfoRequest] | ❌ | SIP settings for device | +| soft_phone_line_reassignment | SoftPhoneLineReassignment | ❌ | Supported for Softphone clients only. If 'SoftphoneLineReassignment' feature is enabled the reassignment process can be initialized, however if there is no DL for the given user's device then SPR-131 error code will be returned. | + +# SoftPhoneLineReassignment + +Supported for Softphone clients only. If 'SoftphoneLineReassignment' feature is enabled +the reassignment process can be initialized, however if there is no DL for the given user's device +then SPR-131 error code will be returned. + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| NONE | str | ✅ | "None" | +| INITIALIZE | str | ✅ | "Initialize" | +| REASSIGN | str | ✅ | "Reassign" | + + diff --git a/documentation/models/CreateSipRegistrationResponse.md b/documentation/models/CreateSipRegistrationResponse.md new file mode 100644 index 00000000..15de4ee4 --- /dev/null +++ b/documentation/models/CreateSipRegistrationResponse.md @@ -0,0 +1,14 @@ +# CreateSipRegistrationResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------ | :------- | :---------------------------------------------------------------------------------------------- | +| device | SipRegistrationDeviceInfo | ✅ | | +| sip_info | List[SipInfoResponse] | ✅ | SIP settings for device | +| sip_flags | SipFlagsResponse | ✅ | SIP flags information | +| sip_info_pstn | List[SipInfoResponse] | ❌ | SIP PSTN settings for device | +| sip_error_codes | List[str] | ❌ | | +| polling_interval | int | ❌ | Suggested interval in seconds to periodically call SIP-provision API and update the local cache | + + diff --git a/documentation/models/CreateSiteRequest.md b/documentation/models/CreateSiteRequest.md new file mode 100644 index 00000000..9027c19c --- /dev/null +++ b/documentation/models/CreateSiteRequest.md @@ -0,0 +1,16 @@ +# CreateSiteRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------- | +| name | str | ❌ | Extension user first name | +| extension_number | str | ❌ | Extension number | +| caller_id_name | str | ❌ | Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) | +| email | str | ❌ | Extension user email | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| operator | SiteOperatorReference | ❌ | Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled | +| code | str | ❌ | Site code value | + + diff --git a/documentation/models/CreateSmsMessage.md b/documentation/models/CreateSmsMessage.md new file mode 100644 index 00000000..98bc7ba6 --- /dev/null +++ b/documentation/models/CreateSmsMessage.md @@ -0,0 +1,12 @@ +# CreateSmsMessage + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from\_ | MessageStoreCallerInfoRequest | ✅ | Message sender information. The `phoneNumber` value should be one the account phone numbers allowed to send the current type of messages | +| to | List[MessageStoreCallerInfoRequest] | ✅ | Message receiver(s) information. The `phoneNumber` value is required | +| text | str | ✅ | Text of a message. Max length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 500 symbols | +| country | SmsRequestCountryInfo | ❌ | Target number country information. Either `id` or `isoCode` can be specified. | + + diff --git a/documentation/models/CreateSubscriptionRequest.md b/documentation/models/CreateSubscriptionRequest.md new file mode 100644 index 00000000..6cb49ef2 --- /dev/null +++ b/documentation/models/CreateSubscriptionRequest.md @@ -0,0 +1,11 @@ +# CreateSubscriptionRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| event_filters | List[str] | ✅ | The list of event filters corresponding to events the user is subscribed to | +| delivery_mode | NotificationDeliveryModeRequest | ✅ | Notification delivery transport information | +| expires_in | int | ❌ | Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| | + + diff --git a/documentation/models/CreateSwitchInfo.md b/documentation/models/CreateSwitchInfo.md new file mode 100644 index 00000000..303818a9 --- /dev/null +++ b/documentation/models/CreateSwitchInfo.md @@ -0,0 +1,14 @@ +# CreateSwitchInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| chassis_id | str | ✅ | Unique identifier of a network switch. The supported formats are: XX:XX:XX:XX:XX:XX (symbols 0-9 and A-F) for MAC address and X.X.X.X for IP address (symbols 0-255) | +| port | str | ❌ | Switch entity extension for better diversity. Should be used together with chassisId. | +| name | str | ❌ | Name of a network switch | +| site | SwitchSiteInfo | ❌ | | +| emergency_address | EmergencyAddressInfo | ❌ | | +| emergency_location | EmergencyLocationInfo | ❌ | Emergency response location information | + + diff --git a/documentation/models/CreateUserEmergencyLocationRequest.md b/documentation/models/CreateUserEmergencyLocationRequest.md new file mode 100644 index 00000000..4dd952ce --- /dev/null +++ b/documentation/models/CreateUserEmergencyLocationRequest.md @@ -0,0 +1,12 @@ +# CreateUserEmergencyLocationRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--------------------------------- | :------- | :----------------------------------------------------------- | +| name | str | ❌ | Name of a new personal emergency response location | +| address_format_id | str | ❌ | Address format ID | +| trusted | bool | ❌ | If 'true' address validation for non-us addresses is skipped | +| address | CommonEmergencyLocationAddressInfo | ❌ | | + + diff --git a/documentation/models/CreateUserMeetingProfileImageRequest.md b/documentation/models/CreateUserMeetingProfileImageRequest.md new file mode 100644 index 00000000..05a76bf8 --- /dev/null +++ b/documentation/models/CreateUserMeetingProfileImageRequest.md @@ -0,0 +1,9 @@ +# CreateUserMeetingProfileImageRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------------------------------------------------------------- | +| profile_pic | any | ✅ | Profile image file size cannot exceed 2Mb. Supported formats are: JPG/JPEG, GIF and PNG | + + diff --git a/documentation/models/CreateUserProfileImageRequest.md b/documentation/models/CreateUserProfileImageRequest.md new file mode 100644 index 00000000..d05e1d56 --- /dev/null +++ b/documentation/models/CreateUserProfileImageRequest.md @@ -0,0 +1,9 @@ +# CreateUserProfileImageRequest + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| image | any | ✅ | | + + diff --git a/documentation/models/CreateWebhookSubscriptionRequest.md b/documentation/models/CreateWebhookSubscriptionRequest.md new file mode 100644 index 00000000..8a6014de --- /dev/null +++ b/documentation/models/CreateWebhookSubscriptionRequest.md @@ -0,0 +1,11 @@ +# CreateWebhookSubscriptionRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| event_filters | List[str] | ✅ | The list of event filters corresponding to events the user is subscribed to | +| delivery_mode | WebhookDeliveryModeRequest | ✅ | | +| expires_in | int | ❌ | Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| | + + diff --git a/documentation/models/CreateWirelessPoint.md b/documentation/models/CreateWirelessPoint.md new file mode 100644 index 00000000..8cabca1b --- /dev/null +++ b/documentation/models/CreateWirelessPoint.md @@ -0,0 +1,13 @@ +# CreateWirelessPoint + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| bssid | str | ✅ | Unique 48-bit identifier of wireless access point that follows MAC address conventions. Mask: XX:XX:XX:XX:XX:XX, where X can be a symbol in the range of 0-9 or A-F | +| name | str | ✅ | Wireless access point name | +| site | EmergencyAddressAutoUpdateSiteInfo | ❌ | | +| emergency_address | EmergencyAddressInfo | ❌ | | +| emergency_location | EmergencyLocationInfo | ❌ | Emergency response location information | + + diff --git a/documentation/models/CreatorInfo.md b/documentation/models/CreatorInfo.md new file mode 100644 index 00000000..b7e60468 --- /dev/null +++ b/documentation/models/CreatorInfo.md @@ -0,0 +1,13 @@ +# CreatorInfo + +Task creator information + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a user | +| first_name | str | ❌ | First name of a user | +| last_name | str | ❌ | Last name of a user | + + diff --git a/documentation/models/CurrencyInfo.md b/documentation/models/CurrencyInfo.md new file mode 100644 index 00000000..0b21b6dc --- /dev/null +++ b/documentation/models/CurrencyInfo.md @@ -0,0 +1,15 @@ +# CurrencyInfo + +Currency information + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------- | +| id\_ | int | ❌ | Internal identifier of a currency | +| code | str | ❌ | Official code of a currency | +| name | str | ❌ | Official name of a currency | +| symbol | str | ❌ | Graphic symbol of a currency | +| minor_symbol | str | ❌ | Minor graphic symbol of a currency | + + diff --git a/documentation/models/CurrencyResource.md b/documentation/models/CurrencyResource.md new file mode 100644 index 00000000..012c254c --- /dev/null +++ b/documentation/models/CurrencyResource.md @@ -0,0 +1,13 @@ +# CurrencyResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| code | str | ❌ | | +| name | str | ❌ | | +| symbol | str | ❌ | | +| minor_symbol | str | ❌ | | + + diff --git a/documentation/models/CustomAnsweringRuleInfo.md b/documentation/models/CustomAnsweringRuleInfo.md new file mode 100644 index 00000000..4fc65b47 --- /dev/null +++ b/documentation/models/CustomAnsweringRuleInfo.md @@ -0,0 +1,66 @@ +# CustomAnsweringRuleInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :---------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI to an answering rule resource | +| id\_ | str | ❌ | Internal identifier of an answering rule | +| type\_ | CustomAnsweringRuleInfoType | ❌ | Type of an answering rule | +| name | str | ❌ | Name of an answering rule specified by user | +| enabled | bool | ❌ | Specifies if an answering rule is active or inactive | +| schedule | ScheduleInfo | ❌ | Schedule when an answering rule should be applied | +| called_numbers | List[CalledNumberInfo] | ❌ | Answering rules are applied when calling to selected number(s) | +| callers | List[CallersInfo] | ❌ | Answering rules are applied when calls are received from specified caller(s) | +| call_handling_action | CustomAnsweringRuleInfoCallHandlingAction | ❌ | Specifies how incoming calls are forwarded | +| forwarding | ForwardingInfo | ❌ | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| unconditional_forwarding | UnconditionalForwardingInfo | ❌ | Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter | +| queue | QueueInfo | ❌ | Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action | +| transfer | TransferredExtensionInfo | ❌ | | +| voicemail | VoicemailInfo | ❌ | Specifies whether to take a voicemail and who should do it | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | +| screening | CustomAnsweringRuleInfoScreening | ❌ | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| shared_lines | SharedLinesInfo | ❌ | SharedLines call handling action settings | + +# CustomAnsweringRuleInfoType + +Type of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + +# CustomAnsweringRuleInfoCallHandlingAction + +Specifies how incoming calls are forwarded + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| FORWARDCALLS | str | ✅ | "ForwardCalls" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | +| AGENTQUEUE | str | ✅ | "AgentQueue" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| TAKEMESSAGESONLY | str | ✅ | "TakeMessagesOnly" | +| PLAYANNOUNCEMENTONLY | str | ✅ | "PlayAnnouncementOnly" | +| SHAREDLINES | str | ✅ | "SharedLines" | + +# CustomAnsweringRuleInfoScreening + +Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| OFF | str | ✅ | "Off" | +| NOCALLERID | str | ✅ | "NoCallerId" | +| UNKNOWNCALLERID | str | ✅ | "UnknownCallerId" | +| ALWAYS | str | ✅ | "Always" | + + diff --git a/documentation/models/CustomCompanyGreetingInfo.md b/documentation/models/CustomCompanyGreetingInfo.md new file mode 100644 index 00000000..9dae5f72 --- /dev/null +++ b/documentation/models/CustomCompanyGreetingInfo.md @@ -0,0 +1,40 @@ +# CustomCompanyGreetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :----------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to an extension custom greeting | +| id\_ | str | ❌ | Internal identifier of an answering rule | +| type\_ | CustomCompanyGreetingInfoType | ❌ | Type of company greeting | +| content_type | CustomCompanyGreetingInfoContentType | ❌ | Content media type | +| content_uri | str | ❌ | Link to a greeting content (audio file) | +| answering_rule | CustomGreetingAnsweringRuleInfo | ❌ | Information on an answering rule that the greeting is applied to | +| language | CustomCompanyGreetingLanguageInfo | ❌ | Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording' | + +# CustomCompanyGreetingInfoType + +Type of company greeting + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| COMPANY | str | ✅ | "Company" | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + +# CustomCompanyGreetingInfoContentType + +Content media type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| AUDIO_MPEG | str | ✅ | "audio/mpeg" | +| AUDIO_WAV | str | ✅ | "audio/wav" | + + diff --git a/documentation/models/CustomCompanyGreetingLanguageInfo.md b/documentation/models/CustomCompanyGreetingLanguageInfo.md new file mode 100644 index 00000000..ca02c391 --- /dev/null +++ b/documentation/models/CustomCompanyGreetingLanguageInfo.md @@ -0,0 +1,14 @@ +# CustomCompanyGreetingLanguageInfo + +Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording' + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a greeting language | +| uri | str | ❌ | Link to a greeting language | +| name | str | ❌ | Name of a greeting language | +| locale_code | str | ❌ | Locale code of a greeting language | + + diff --git a/documentation/models/CustomFieldCreateRequest.md b/documentation/models/CustomFieldCreateRequest.md new file mode 100644 index 00000000..c44c30bb --- /dev/null +++ b/documentation/models/CustomFieldCreateRequest.md @@ -0,0 +1,20 @@ +# CustomFieldCreateRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------- | :------- | :-------------------------------------- | +| category | CustomFieldCreateRequestCategory | ❌ | Object category to attach custom fields | +| display_name | str | ❌ | Custom field display name | + +# CustomFieldCreateRequestCategory + +Object category to attach custom fields + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | + + diff --git a/documentation/models/CustomFieldInfo.md b/documentation/models/CustomFieldInfo.md new file mode 100644 index 00000000..ee4417a3 --- /dev/null +++ b/documentation/models/CustomFieldInfo.md @@ -0,0 +1,11 @@ +# CustomFieldInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a custom field | +| value | str | ❌ | Custom field value | +| display_name | str | ❌ | | + + diff --git a/documentation/models/CustomFieldList.md b/documentation/models/CustomFieldList.md new file mode 100644 index 00000000..7d74f484 --- /dev/null +++ b/documentation/models/CustomFieldList.md @@ -0,0 +1,9 @@ +# CustomFieldList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :---------- | +| records | List[CustomFieldModel] | ❌ | | + + diff --git a/documentation/models/CustomFieldModel.md b/documentation/models/CustomFieldModel.md new file mode 100644 index 00000000..7d06d3e4 --- /dev/null +++ b/documentation/models/CustomFieldModel.md @@ -0,0 +1,21 @@ +# CustomFieldModel + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------- | :------- | :-------------------------------------- | +| id\_ | str | ❌ | Custom field identifier | +| category | CustomFieldModelCategory | ❌ | Object category to attach custom fields | +| display_name | str | ❌ | Custom field display name | + +# CustomFieldModelCategory + +Object category to attach custom fields + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | + + diff --git a/documentation/models/CustomFieldResource.md b/documentation/models/CustomFieldResource.md new file mode 100644 index 00000000..1330d70f --- /dev/null +++ b/documentation/models/CustomFieldResource.md @@ -0,0 +1,11 @@ +# CustomFieldResource + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| value | str | ❌ | | + + diff --git a/documentation/models/CustomFieldUpdateRequest.md b/documentation/models/CustomFieldUpdateRequest.md new file mode 100644 index 00000000..61100b0d --- /dev/null +++ b/documentation/models/CustomFieldUpdateRequest.md @@ -0,0 +1,9 @@ +# CustomFieldUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------ | +| display_name | str | ❌ | Custom field display name | + + diff --git a/documentation/models/CustomGreetingAnsweringRuleInfo.md b/documentation/models/CustomGreetingAnsweringRuleInfo.md new file mode 100644 index 00000000..3593fe6c --- /dev/null +++ b/documentation/models/CustomGreetingAnsweringRuleInfo.md @@ -0,0 +1,12 @@ +# CustomGreetingAnsweringRuleInfo + +Information on an answering rule that the greeting is applied to + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------- | +| uri | str | ❌ | Canonical URI of an answering rule | +| id\_ | str | ❌ | Internal identifier of an answering rule | + + diff --git a/documentation/models/CustomGreetingInfoRequest.md b/documentation/models/CustomGreetingInfoRequest.md new file mode 100644 index 00000000..6d90eddc --- /dev/null +++ b/documentation/models/CustomGreetingInfoRequest.md @@ -0,0 +1,9 @@ +# CustomGreetingInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a custom user greeting | + + diff --git a/documentation/models/CustomUserGreetingInfo.md b/documentation/models/CustomUserGreetingInfo.md new file mode 100644 index 00000000..ab90f684 --- /dev/null +++ b/documentation/models/CustomUserGreetingInfo.md @@ -0,0 +1,44 @@ +# CustomUserGreetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------- | :------- | :--------------------------------------------------------------- | +| uri | str | ❌ | Link to a custom user greeting | +| id\_ | str | ❌ | Internal identifier of a custom user greeting | +| type\_ | CustomUserGreetingInfoType | ❌ | Type of custom user greeting | +| content_type | CustomUserGreetingInfoContentType | ❌ | Content media type | +| content_uri | str | ❌ | Link to a greeting content (audio file) | +| answering_rule | CustomGreetingAnsweringRuleInfo | ❌ | Information on an answering rule that the greeting is applied to | + +# CustomUserGreetingInfoType + +Type of custom user greeting + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| INTRODUCTORY | str | ✅ | "Introductory" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| INTERRUPTPROMPT | str | ✅ | "InterruptPrompt" | +| CONNECTINGAUDIO | str | ✅ | "ConnectingAudio" | +| CONNECTINGMESSAGE | str | ✅ | "ConnectingMessage" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNAVAILABLE | str | ✅ | "Unavailable" | +| HOLDMUSIC | str | ✅ | "HoldMusic" | +| PRONOUNCEDNAME | str | ✅ | "PronouncedName" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + +# CustomUserGreetingInfoContentType + +Content media type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| AUDIO_MPEG | str | ✅ | "audio/mpeg" | +| AUDIO_WAV | str | ✅ | "audio/wav" | + + diff --git a/documentation/models/DataExportTask.md b/documentation/models/DataExportTask.md new file mode 100644 index 00000000..b46f1dd0 --- /dev/null +++ b/documentation/models/DataExportTask.md @@ -0,0 +1,30 @@ +# DataExportTask + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------- | :------- | :-------------------------------------------- | +| uri | str | ❌ | Canonical URI of a task | +| id\_ | str | ❌ | Internal identifier of a task | +| creation_time | str | ❌ | Task creation timestamp | +| last_modified_time | str | ❌ | Task last modification timestamp | +| status | DataExportTaskStatus | ❌ | Task status | +| creator | CreatorInfo | ❌ | Task creator information | +| specific | SpecificInfo | ❌ | Information specified in request | +| datasets | List[ExportTaskResultInfo] | ❌ | Data collection archives. Returned by task ID | + +# DataExportTaskStatus + +Task status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| ACCEPTED | str | ✅ | "Accepted" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | +| FAILED | str | ✅ | "Failed" | +| EXPIRED | str | ✅ | "Expired" | + + diff --git a/documentation/models/DataExportTaskContactInfo.md b/documentation/models/DataExportTaskContactInfo.md new file mode 100644 index 00000000..1a344980 --- /dev/null +++ b/documentation/models/DataExportTaskContactInfo.md @@ -0,0 +1,12 @@ +# DataExportTaskContactInfo + +List of users whose data is collected. The following data will be exported: posts, tasks, events, etc. posted by the user(s); posts addressing the user(s) via direct and @Mentions; tasks assigned to the listed user(s). The list of 10 users per request is supported. + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------- | +| id\_ | str | ❌ | Internal identifier of a contact | +| email | str | ❌ | Email address of a contact | + + diff --git a/documentation/models/DataExportTaskList.md b/documentation/models/DataExportTaskList.md new file mode 100644 index 00000000..a3cc85ad --- /dev/null +++ b/documentation/models/DataExportTaskList.md @@ -0,0 +1,11 @@ +# DataExportTaskList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :---------- | +| tasks | List[DataExportTask] | ❌ | | +| navigation | GlipDataExportNavigationInfo | ❌ | | +| paging | GlipDataExportPagingInfo | ❌ | | + + diff --git a/documentation/models/DayOfWeek.md b/documentation/models/DayOfWeek.md new file mode 100644 index 00000000..559a55a3 --- /dev/null +++ b/documentation/models/DayOfWeek.md @@ -0,0 +1,15 @@ +# DayOfWeek + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| SUNDAY | str | ✅ | "Sunday" | +| MONDAY | str | ✅ | "Monday" | +| TUESDAY | str | ✅ | "Tuesday" | +| WEDNESDAY | str | ✅ | "Wednesday" | +| THURSDAY | str | ✅ | "Thursday" | +| FRIDAY | str | ✅ | "Friday" | +| SATURDAY | str | ✅ | "Saturday" | + + diff --git a/documentation/models/DefaultUserRole.md b/documentation/models/DefaultUserRole.md new file mode 100644 index 00000000..37d598c2 --- /dev/null +++ b/documentation/models/DefaultUserRole.md @@ -0,0 +1,11 @@ +# DefaultUserRole + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------ | +| uri | str | ❌ | Link to a default role resource | +| id\_ | str | ❌ | Internal identifier of a default role | +| display_name | str | ❌ | Custom name of a default role | + + diff --git a/documentation/models/DefaultUserRoleRequest.md b/documentation/models/DefaultUserRoleRequest.md new file mode 100644 index 00000000..d9c6ad9f --- /dev/null +++ b/documentation/models/DefaultUserRoleRequest.md @@ -0,0 +1,9 @@ +# DefaultUserRoleRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a user role to be set as default | + + diff --git a/documentation/models/Delegate.md b/documentation/models/Delegate.md new file mode 100644 index 00000000..31c45779 --- /dev/null +++ b/documentation/models/Delegate.md @@ -0,0 +1,12 @@ +# Delegate + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------------------------------------------- | +| extension_id | str | ✅ | Delegate extension id | +| id\_ | str | ❌ | Delegate id (equal as extension id of delegate) | +| name | str | ❌ | Delegate name | +| account_id | str | ❌ | Delegate account id | + + diff --git a/documentation/models/DelegationTypeEnum.md b/documentation/models/DelegationTypeEnum.md new file mode 100644 index 00000000..bc214430 --- /dev/null +++ b/documentation/models/DelegationTypeEnum.md @@ -0,0 +1,12 @@ +# DelegationTypeEnum + +Call delegation type + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| COWORKER | str | ✅ | "Coworker" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/DelegatorsListResult.md b/documentation/models/DelegatorsListResult.md new file mode 100644 index 00000000..97e88776 --- /dev/null +++ b/documentation/models/DelegatorsListResult.md @@ -0,0 +1,9 @@ +# DelegatorsListResult + +**Properties** + +| Name | Type | Required | Description | +| :---- | :------------- | :------- | :---------- | +| items | List[Delegate] | ❌ | | + + diff --git a/documentation/models/DeleteDeviceFromInventoryRequest.md b/documentation/models/DeleteDeviceFromInventoryRequest.md new file mode 100644 index 00000000..42b3c03f --- /dev/null +++ b/documentation/models/DeleteDeviceFromInventoryRequest.md @@ -0,0 +1,17 @@ +# DeleteDeviceFromInventoryRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------------------------------- | :------- | :----------------------------------------------------------------- | +| records | List[DeleteDeviceFromInventoryRequestRecords] | ✅ | List of internal identifiers of the devices that should be deleted | + +# DeleteDeviceFromInventoryRequestRecords + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :----------------------------------------------------- | +| device_id | str | ❌ | Internal identifier of a device that should be deleted | + + diff --git a/documentation/models/DeleteDeviceFromInventoryResponse.md b/documentation/models/DeleteDeviceFromInventoryResponse.md new file mode 100644 index 00000000..b450ef64 --- /dev/null +++ b/documentation/models/DeleteDeviceFromInventoryResponse.md @@ -0,0 +1,19 @@ +# DeleteDeviceFromInventoryResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------------------------- | :------- | :---------- | +| records | List[DeleteDeviceFromInventoryResponseRecords] | ✅ | | + +# DeleteDeviceFromInventoryResponseRecords + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| bulk_item_successful | bool | ❌ | Specifies if a device is successfully deleted | +| device_id | str | ❌ | Internal identifier of a device | +| bulk_item_errors | List[dict] | ❌ | The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false | + + diff --git a/documentation/models/DeleteForwardingNumbersRequest.md b/documentation/models/DeleteForwardingNumbersRequest.md new file mode 100644 index 00000000..a74ca488 --- /dev/null +++ b/documentation/models/DeleteForwardingNumbersRequest.md @@ -0,0 +1,9 @@ +# DeleteForwardingNumbersRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------------------------- | +| records | List[ForwardingNumberId] | ❌ | List of forwarding number IDs | + + diff --git a/documentation/models/DeleteMessageByFilterType.md b/documentation/models/DeleteMessageByFilterType.md new file mode 100644 index 00000000..648a17be --- /dev/null +++ b/documentation/models/DeleteMessageByFilterType.md @@ -0,0 +1,14 @@ +# DeleteMessageByFilterType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | +| TEXT | str | ✅ | "Text" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/DeletePhoneNumbersRequest.md b/documentation/models/DeletePhoneNumbersRequest.md new file mode 100644 index 00000000..96c851b1 --- /dev/null +++ b/documentation/models/DeletePhoneNumbersRequest.md @@ -0,0 +1,9 @@ +# DeletePhoneNumbersRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------------- | :------- | :----------------------------------------------- | +| records | List[DeletePhoneNumbersRequestItem] | ✅ | List of phone numbers or phone IDs to be deleted | + + diff --git a/documentation/models/DeletePhoneNumbersRequestItem.md b/documentation/models/DeletePhoneNumbersRequestItem.md new file mode 100644 index 00000000..b50b0883 --- /dev/null +++ b/documentation/models/DeletePhoneNumbersRequestItem.md @@ -0,0 +1,12 @@ +# DeletePhoneNumbersRequestItem + +The indication of a number to be deleted - either "id" or "phoneNumber" must be specified. + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------------------------- | +| id\_ | str | ❌ | Internal unique identifier of a phone number | +| phone_number | str | ❌ | Phone number in e.164 format (with '+' prefix) | + + diff --git a/documentation/models/DeletePhoneNumbersResponse.md b/documentation/models/DeletePhoneNumbersResponse.md new file mode 100644 index 00000000..99f94ddf --- /dev/null +++ b/documentation/models/DeletePhoneNumbersResponse.md @@ -0,0 +1,9 @@ +# DeletePhoneNumbersResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------------- | :------- | :---------- | +| records | List[DeletePhoneNumbersResponseItem] | ✅ | | + + diff --git a/documentation/models/DeletePhoneNumbersResponseItem.md b/documentation/models/DeletePhoneNumbersResponseItem.md new file mode 100644 index 00000000..82f86aad --- /dev/null +++ b/documentation/models/DeletePhoneNumbersResponseItem.md @@ -0,0 +1,12 @@ +# DeletePhoneNumbersResponseItem + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| bulk_item_successful | bool | ✅ | Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors | +| bulk_item_errors | List[dict] | ❌ | The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false | +| id\_ | str | ❌ | Internal unique identifier of a phone number | +| phone_number | str | ❌ | Phone number in e.164 format (with '+' prefix) | + + diff --git a/documentation/models/DepartmentBulkAssignResource.md b/documentation/models/DepartmentBulkAssignResource.md new file mode 100644 index 00000000..df9817ae --- /dev/null +++ b/documentation/models/DepartmentBulkAssignResource.md @@ -0,0 +1,12 @@ +# DepartmentBulkAssignResource + +Please note that legacy 'Department' extension type corresponds to +'Call Queue' extensions in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :---- | :------------------- | :------- | :---------- | +| items | List[BulkAssignItem] | ❌ | | + + diff --git a/documentation/models/DepartmentInfo.md b/documentation/models/DepartmentInfo.md new file mode 100644 index 00000000..c2c53dda --- /dev/null +++ b/documentation/models/DepartmentInfo.md @@ -0,0 +1,14 @@ +# DepartmentInfo + +Please note that the `Department` extension type corresponds to +'Call Queue' extensions in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :-------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a department extension | +| uri | str | ❌ | Canonical URI of an extension resource | +| extension_number | str | ❌ | Short number of a department extension | + + diff --git a/documentation/models/DepartmentMemberList.md b/documentation/models/DepartmentMemberList.md new file mode 100644 index 00000000..daa9dfce --- /dev/null +++ b/documentation/models/DepartmentMemberList.md @@ -0,0 +1,15 @@ +# DepartmentMemberList + +Please note that legacy 'Department' extension type corresponds to +'Call Queue' extensions in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Canonical URL of the resource | +| records | List[ExtensionInfo] | ❌ | List of call queue member extensions | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/DetailedCallInfo.md b/documentation/models/DetailedCallInfo.md new file mode 100644 index 00000000..c8e5027f --- /dev/null +++ b/documentation/models/DetailedCallInfo.md @@ -0,0 +1,14 @@ +# DetailedCallInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :---------- | +| call_id | str | ❌ | | +| to_tag | str | ❌ | | +| from_tag | str | ❌ | | +| remote_uri | str | ❌ | | +| local_uri | str | ❌ | | +| rc_session_id | str | ❌ | | + + diff --git a/documentation/models/DeviceAddonInfo.md b/documentation/models/DeviceAddonInfo.md new file mode 100644 index 00000000..d8b81224 --- /dev/null +++ b/documentation/models/DeviceAddonInfo.md @@ -0,0 +1,11 @@ +# DeviceAddonInfo + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| count | int | ❌ | | + + diff --git a/documentation/models/DeviceDefinition.md b/documentation/models/DeviceDefinition.md new file mode 100644 index 00000000..a3bb69f4 --- /dev/null +++ b/documentation/models/DeviceDefinition.md @@ -0,0 +1,52 @@ +# DeviceDefinition + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :----------------------------------------------------------------------------------- | +| type\_ | DeviceDefinitionType | ✅ | Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment | +| emergency | DeviceDefinitionEmergency | ✅ | Only "address" is supported at the moment | +| phone_info | DeviceDefinitionPhoneInfo | ✅ | | + +# DeviceDefinitionType + +Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| WEBRTC | str | ✅ | "WebRTC" | + +# DeviceDefinitionEmergency + +Only "address" is supported at the moment + +# Emergency_1_1 + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------ | :------- | :---------------------- | +| address | PostalAddress | ✅ | Postal address/location | + +# Emergency_2_1 + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------ | :------- | :---------- | +| location | Emergency2Location1 | ✅ | | + +# Emergency_2Location_1 + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------- | +| id\_ | str | ✅ | Emergency location ID | + +# DeviceDefinitionPhoneInfo + + diff --git a/documentation/models/DeviceEmergencyInfo.md b/documentation/models/DeviceEmergencyInfo.md new file mode 100644 index 00000000..b719be44 --- /dev/null +++ b/documentation/models/DeviceEmergencyInfo.md @@ -0,0 +1,70 @@ +# DeviceEmergencyInfo + +Device emergency settings + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :---------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| address | CommonEmergencyLocationAddressInfoDefault | ❌ | | +| location | DeviceEmergencyLocationInfo | ❌ | Company emergency response location details | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | +| address_status | DeviceEmergencyInfoAddressStatus | ❌ | Emergency address status | +| visibility | DeviceEmergencyInfoVisibility | ❌ | Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array | +| sync_status | DeviceEmergencyInfoSyncStatus | ❌ | Resulting status of the emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| address_editable_status | DeviceEmergencyInfoAddressEditableStatus | ❌ | Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) | + +# DeviceEmergencyInfoAddressStatus + +Emergency address status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | +| PROVISIONING | str | ✅ | "Provisioning" | + +# DeviceEmergencyInfoVisibility + +Visibility of an emergency response location. If `Private` +is set, then location is visible only for the restricted number of users, +specified in `owners` array + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| PRIVATE | str | ✅ | "Private" | +| PUBLIC | str | ✅ | "Public" | + +# DeviceEmergencyInfoSyncStatus + +Resulting status of the emergency address synchronization. Returned +if `syncEmergencyAddress` parameter is set to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + +# DeviceEmergencyInfoAddressEditableStatus + +Ability to register new emergency address for a phone line +using devices sharing this line or only main device (line owner) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| MAINDEVICE | str | ✅ | "MainDevice" | +| ANYDEVICE | str | ✅ | "AnyDevice" | + + diff --git a/documentation/models/DeviceEmergencyLocationInfo.md b/documentation/models/DeviceEmergencyLocationInfo.md new file mode 100644 index 00000000..789b95ef --- /dev/null +++ b/documentation/models/DeviceEmergencyLocationInfo.md @@ -0,0 +1,13 @@ +# DeviceEmergencyLocationInfo + +Company emergency response location details + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :----------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of the emergency response location | +| name | str | ❌ | Location name | +| address_format_id | str | ❌ | Address format ID | + + diff --git a/documentation/models/DeviceEmergencyServiceAddressResourceAu.md b/documentation/models/DeviceEmergencyServiceAddressResourceAu.md new file mode 100644 index 00000000..699ff677 --- /dev/null +++ b/documentation/models/DeviceEmergencyServiceAddressResourceAu.md @@ -0,0 +1,27 @@ +# DeviceEmergencyServiceAddressResourceAu + +Address for emergency cases. The same emergency address is assigned to all the numbers of one device + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------- | +| street | str | ❌ | | +| street2 | str | ❌ | | +| city | str | ❌ | | +| zip | str | ❌ | | +| customer_name | str | ❌ | | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country | str | ❌ | Country name | +| country_name | str | ❌ | Full name of a country | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | +| building_name | str | ❌ | (Optional) Building name | +| street_type | str | ❌ | Street type | +| building_number | str | ❌ | Building/street number | + + diff --git a/documentation/models/DeviceEmergencyServiceAddressResourceDefault.md b/documentation/models/DeviceEmergencyServiceAddressResourceDefault.md new file mode 100644 index 00000000..5f3d9a25 --- /dev/null +++ b/documentation/models/DeviceEmergencyServiceAddressResourceDefault.md @@ -0,0 +1,24 @@ +# DeviceEmergencyServiceAddressResourceDefault + +Address for emergency cases. The same emergency address is assigned to all the numbers of one device + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------- | +| street | str | ❌ | | +| street2 | str | ❌ | | +| city | str | ❌ | | +| zip | str | ❌ | | +| customer_name | str | ❌ | | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country | str | ❌ | Country name | +| country_name | str | ❌ | Full name of a country | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | + + diff --git a/documentation/models/DeviceEmergencyServiceAddressResourceFr.md b/documentation/models/DeviceEmergencyServiceAddressResourceFr.md new file mode 100644 index 00000000..07d0b6a9 --- /dev/null +++ b/documentation/models/DeviceEmergencyServiceAddressResourceFr.md @@ -0,0 +1,26 @@ +# DeviceEmergencyServiceAddressResourceFr + +Address for emergency cases. The same emergency address is assigned to all the numbers of one device + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------- | +| street | str | ❌ | | +| street2 | str | ❌ | | +| city | str | ❌ | | +| zip | str | ❌ | | +| customer_name | str | ❌ | | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country | str | ❌ | Country name | +| country_name | str | ❌ | Full name of a country | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | +| building_name | str | ❌ | (Optional) Building name | +| building_number | str | ❌ | Building/street number | + + diff --git a/documentation/models/DeviceExtensionInfo.md b/documentation/models/DeviceExtensionInfo.md new file mode 100644 index 00000000..c71152e0 --- /dev/null +++ b/documentation/models/DeviceExtensionInfo.md @@ -0,0 +1,11 @@ +# DeviceExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URL of an extension resource | +| extension_number | str | ❌ | Short extension number | + + diff --git a/documentation/models/DeviceFeatureEnum.md b/documentation/models/DeviceFeatureEnum.md new file mode 100644 index 00000000..0bf21ec4 --- /dev/null +++ b/documentation/models/DeviceFeatureEnum.md @@ -0,0 +1,15 @@ +# DeviceFeatureEnum + +Device feature + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| BLA | str | ✅ | "BLA" | +| COMMONPHONE | str | ✅ | "CommonPhone" | +| INTERCOM | str | ✅ | "Intercom" | +| PAGING | str | ✅ | "Paging" | +| HELD | str | ✅ | "HELD" | + + diff --git a/documentation/models/DeviceInfoRequest.md b/documentation/models/DeviceInfoRequest.md new file mode 100644 index 00000000..e4b1e741 --- /dev/null +++ b/documentation/models/DeviceInfoRequest.md @@ -0,0 +1,14 @@ +# DeviceInfoRequest + +Device information + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Device unique identifier, retrieved at previous session (if any) | +| app_external_id | str | ❌ | Supported for iOS devices only. Certificate name (used by iOS applications for APNS subscription) | +| computer_name | str | ❌ | Computer name (for devices of `SoftPhone` type only) | +| serial | str | ❌ | Endpoint/device instance identifier for Softphone and mobile applications | + + diff --git a/documentation/models/DeviceModelInfo.md b/documentation/models/DeviceModelInfo.md new file mode 100644 index 00000000..d745f64d --- /dev/null +++ b/documentation/models/DeviceModelInfo.md @@ -0,0 +1,25 @@ +# DeviceModelInfo + +HardPhone model information + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------------- | :------- | :-------------------------------------------------------------------------------------------------- | +| addons | List[DeviceAddonInfo] | ✅ | Add-ons description | +| id\_ | str | ❌ | Addon identifier. For HardPhones of certain types, which are compatible with this add-on identifier | +| name | str | ❌ | Device name | +| features | List[DeviceModelInfoFeatures] | ❌ | Device feature or multiple features supported | + +# DeviceModelInfoFeatures + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| BLA | str | ✅ | "BLA" | +| INTERCOM | str | ✅ | "Intercom" | +| PAGING | str | ✅ | "Paging" | +| HELD | str | ✅ | "HELD" | + + diff --git a/documentation/models/DevicePhoneLinesEmergencyAddressInfo.md b/documentation/models/DevicePhoneLinesEmergencyAddressInfo.md new file mode 100644 index 00000000..aac4e2f8 --- /dev/null +++ b/documentation/models/DevicePhoneLinesEmergencyAddressInfo.md @@ -0,0 +1,10 @@ +# DevicePhoneLinesEmergencyAddressInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------- | +| required | bool | ❌ | Indicates that emergency address is required | +| local_only | bool | ❌ | Indicates that only local emergency address can be specified | + + diff --git a/documentation/models/DevicePhoneLinesInfo.md b/documentation/models/DevicePhoneLinesInfo.md new file mode 100644 index 00000000..fb07c460 --- /dev/null +++ b/documentation/models/DevicePhoneLinesInfo.md @@ -0,0 +1,25 @@ +# DevicePhoneLinesInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :----------------------------------- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a phone line | +| line_type | LineType | ❌ | Type of phone line | +| emergency_address | DevicePhoneLinesEmergencyAddressInfo | ❌ | | +| phone_info | DevicePhoneNumberInfo | ❌ | Phone number information | + +# LineType + +Type of phone line + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| STANDALONE | str | ✅ | "Standalone" | +| STANDALONEFREE | str | ✅ | "StandaloneFree" | +| BLAPRIMARY | str | ✅ | "BlaPrimary" | +| BLASECONDARY | str | ✅ | "BlaSecondary" | + + diff --git a/documentation/models/DevicePhoneNumberCountryInfo.md b/documentation/models/DevicePhoneNumberCountryInfo.md new file mode 100644 index 00000000..ff31184e --- /dev/null +++ b/documentation/models/DevicePhoneNumberCountryInfo.md @@ -0,0 +1,13 @@ +# DevicePhoneNumberCountryInfo + +Brief information on a phone number country + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a home country | +| uri | str | ❌ | Canonical URI of a home country | +| name | str | ❌ | Official name of a home country | + + diff --git a/documentation/models/DevicePhoneNumberInfo.md b/documentation/models/DevicePhoneNumberInfo.md new file mode 100644 index 00000000..01505a8e --- /dev/null +++ b/documentation/models/DevicePhoneNumberInfo.md @@ -0,0 +1,55 @@ +# DevicePhoneNumberInfo + +Phone number information + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a phone number | +| country | DevicePhoneNumberCountryInfo | ❌ | Brief information on a phone number country | +| payment_type | DevicePhoneNumberInfoPaymentType | ❌ | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system = ['External', 'TollFree', 'Local'] | +| phone_number | str | ❌ | Phone number | +| usage_type | DevicePhoneNumberInfoUsageType | ❌ | | +| type\_ | DevicePhoneNumberInfoType | ❌ | Type of phone number | + +# DevicePhoneNumberInfoPaymentType + +Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system = ['External', 'TollFree', 'Local'] + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| EXTERNAL | str | ✅ | "External" | +| TOLLFREE | str | ✅ | "TollFree" | +| LOCAL | str | ✅ | "Local" | + +# DevicePhoneNumberInfoUsageType + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | + +# DevicePhoneNumberInfoType + +Type of phone number + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VOICEFAX | str | ✅ | "VoiceFax" | +| FAXONLY | str | ✅ | "FaxOnly" | +| VOICEONLY | str | ✅ | "VoiceOnly" | + + diff --git a/documentation/models/DeviceProvisioningExtensionInfo.md b/documentation/models/DeviceProvisioningExtensionInfo.md new file mode 100644 index 00000000..d6791901 --- /dev/null +++ b/documentation/models/DeviceProvisioningExtensionInfo.md @@ -0,0 +1,14 @@ +# DeviceProvisioningExtensionInfo + +Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Number of extension | +| partner_id | str | ❌ | For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | + + diff --git a/documentation/models/DeviceResource.md b/documentation/models/DeviceResource.md new file mode 100644 index 00000000..661e7c95 --- /dev/null +++ b/documentation/models/DeviceResource.md @@ -0,0 +1,58 @@ +# DeviceResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a device | +| uri | str | ❌ | Canonical URI of a device | +| sku | str | ❌ | Device identification number (SKU, Stock Keeping Unit) in the format TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all other devices including soft phones); ID - device model ID; AT - add-on type ID; AC - add-on count (if any). For example 'HP-56-2-2' | +| type\_ | DeviceResourceType | ❌ | Device type | +| name | str | ❌ | Device name. Mandatory if ordering SoftPhone or OtherPhone. Optional for HardPhone. If not specified for HardPhone, then a device model is used as a device name | +| serial | str | ❌ | Serial number for HardPhone (is returned only when the phone is shipped and provisioned); endpoint ID for SoftPhone and mobile applications | +| status | DeviceResourceStatus | ❌ | Device status | +| computer_name | str | ❌ | Computer name (for devices of `SoftPhone` type only) | +| model | ModelInfo | ❌ | HardPhone model information | +| extension | ExtensionInfoIntId | ❌ | This attribute can be omitted for unassigned devices | +| emergency | DeviceEmergencyInfo | ❌ | Device emergency settings | +| emergency_service_address | EmergencyServiceAddressResource | ❌ | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| phone_lines | List[PhoneLinesInfo] | ❌ | Phone lines information | +| shipping | ShippingInfo | ❌ | Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer | +| box_billing_id | int | ❌ | Box billing identifier of a device. Applicable only for devices of `HardPhone` type. It is an alternative way to identify the device to be ordered. Either `model` structure, or `boxBillingId` must be specified | +| use_as_common_phone | bool | ❌ | Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone. | +| hot_desk_device | bool | ❌ | This flag indicates whether this device is used for hot desking or not | +| in_company_net | bool | ❌ | Network location status. `true` if the device is located in the configured corporate network (On-Net); `false` for Off-Net location. Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not enabled for the account/user, or if device network location is not determined | +| site | DeviceSiteInfo | ❌ | Site data | +| last_location_report_time | str | ❌ | Date/time of receiving last location report in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example \*2016-03-10T18:07:52.534Z | +| line_pooling | LinePoolingEnum | ❌ | Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.) | +| billing_statement | BillingStatementInfo | ❌ | Billing information. Returned for device update request if `prestatement` query parameter is set to 'true' | + +# DeviceResourceType + +Device type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| BLA | str | ✅ | "BLA" | +| SOFTPHONE | str | ✅ | "SoftPhone" | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| HARDPHONE | str | ✅ | "HardPhone" | +| WEBPHONE | str | ✅ | "WebPhone" | +| PAGING | str | ✅ | "Paging" | +| ROOM | str | ✅ | "Room" | +| WEBRTC | str | ✅ | "WebRTC" | + +# DeviceResourceStatus + +Device status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| ONLINE | str | ✅ | "Online" | + + diff --git a/documentation/models/DeviceSiteInfo.md b/documentation/models/DeviceSiteInfo.md new file mode 100644 index 00000000..198d9bf1 --- /dev/null +++ b/documentation/models/DeviceSiteInfo.md @@ -0,0 +1,12 @@ +# DeviceSiteInfo + +Site data + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a site | +| name | str | ❌ | Name of a site | + + diff --git a/documentation/models/DeviceUpdateExtensionInfo.md b/documentation/models/DeviceUpdateExtensionInfo.md new file mode 100644 index 00000000..710790b3 --- /dev/null +++ b/documentation/models/DeviceUpdateExtensionInfo.md @@ -0,0 +1,11 @@ +# DeviceUpdateExtensionInfo + +Information on extension that the device is assigned to + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | + + diff --git a/documentation/models/DeviceUpdatePhoneLinesInfo.md b/documentation/models/DeviceUpdatePhoneLinesInfo.md new file mode 100644 index 00000000..af81b149 --- /dev/null +++ b/documentation/models/DeviceUpdatePhoneLinesInfo.md @@ -0,0 +1,11 @@ +# DeviceUpdatePhoneLinesInfo + +Information on phone lines added to a device + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------------------- | :------- | :------------------------------------------- | +| phone_lines | List[UpdateDevicePhoneInfo] | ❌ | Information on phone lines added to a device | + + diff --git a/documentation/models/DialInNumberResource.md b/documentation/models/DialInNumberResource.md new file mode 100644 index 00000000..9397574b --- /dev/null +++ b/documentation/models/DialInNumberResource.md @@ -0,0 +1,12 @@ +# DialInNumberResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------- | :------- | :---------- | +| phone_number | str | ❌ | | +| formatted_number | str | ❌ | | +| location | str | ❌ | | +| country | MeetingsCountryResource | ❌ | | + + diff --git a/documentation/models/DiarizeInput.md b/documentation/models/DiarizeInput.md new file mode 100644 index 00000000..dd359a02 --- /dev/null +++ b/documentation/models/DiarizeInput.md @@ -0,0 +1,49 @@ +# DiarizeInput + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :-------------------- | :------- | :--------------------------------------------------------------------------------------- | +| content_uri | str | ❌ | Publicly facing uri | +| encoding | DiarizeInputEncoding | ❌ | The encoding of the original audio | +| language_code | str | ❌ | Language spoken in the audio file. | +| source | str | ❌ | Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc | +| audio_type | DiarizeInputAudioType | ❌ | Type of the audio | +| separate_speaker_per_channel | bool | ❌ | Set to True if the input audio is multi-channel and each channel has a separate speaker. | +| speaker_count | int | ❌ | Number of speakers in the file, omit parameter if unknown | +| speaker_ids | List[str] | ❌ | Optional set of speakers to be identified from the call. | +| enable_voice_activity_detection | bool | ❌ | Apply voice activity detection. | + +# DiarizeInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + +# DiarizeInputAudioType + +Type of the audio + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| CALLCENTER | str | ✅ | "CallCenter" | +| MEETING | str | ✅ | "Meeting" | +| EARNINGSCALLS | str | ✅ | "EarningsCalls" | +| INTERVIEW | str | ✅ | "Interview" | +| PRESSCONFERENCE | str | ✅ | "PressConference" | +| VOICEMAIL | str | ✅ | "Voicemail" | + + diff --git a/documentation/models/DiarizeSegment.md b/documentation/models/DiarizeSegment.md new file mode 100644 index 00000000..0293955c --- /dev/null +++ b/documentation/models/DiarizeSegment.md @@ -0,0 +1,12 @@ +# DiarizeSegment + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :---------- | +| speaker_id | str | ✅ | | +| start | float | ✅ | | +| end | float | ✅ | | +| confidence | float | ❌ | | + + diff --git a/documentation/models/DiarizedObject.md b/documentation/models/DiarizedObject.md new file mode 100644 index 00000000..077bb8ea --- /dev/null +++ b/documentation/models/DiarizedObject.md @@ -0,0 +1,10 @@ +# DiarizedObject + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------- | :------- | :---------- | +| speaker_count | int | ✅ | | +| utterances | List[DiarizeSegment] | ✅ | | + + diff --git a/documentation/models/DictionaryGreetingInfo.md b/documentation/models/DictionaryGreetingInfo.md new file mode 100644 index 00000000..93a258bd --- /dev/null +++ b/documentation/models/DictionaryGreetingInfo.md @@ -0,0 +1,51 @@ +# DictionaryGreetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a greeting | +| uri | str | ❌ | Link to a greeting | +| name | str | ❌ | Name of a greeting | +| usage_type | DictionaryGreetingInfoUsageType | ❌ | Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension. | +| text | str | ❌ | Text of a greeting, if any | +| content_uri | str | ❌ | Link to a greeting content (audio file), if any | +| type\_ | GreetingTypeEnum | ❌ | Type of greeting, specifying the case when the greeting is played. | +| category | DictionaryGreetingInfoCategory | ❌ | Category of a greeting, specifying data form. The category value 'None' specifies that greetings of a certain type ('Introductory', 'ConnectingAudio', etc.) are switched off for an extension = ['Music', 'Message', 'RingTones', 'None'] | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + +# DictionaryGreetingInfoUsageType + +Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension. + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------- | :--- | :------- | :----------------------------------- | +| USEREXTENSIONANSWERINGRULE | str | ✅ | "UserExtensionAnsweringRule" | +| EXTENSIONANSWERINGRULE | str | ✅ | "ExtensionAnsweringRule" | +| DEPARTMENTEXTENSIONANSWERINGRULE | str | ✅ | "DepartmentExtensionAnsweringRule" | +| BLOCKEDCALLS | str | ✅ | "BlockedCalls" | +| CALLRECORDING | str | ✅ | "CallRecording" | +| COMPANYANSWERINGRULE | str | ✅ | "CompanyAnsweringRule" | +| COMPANYAFTERHOURSANSWERINGRULE | str | ✅ | "CompanyAfterHoursAnsweringRule" | +| LIMITEDEXTENSIONANSWERINGRULE | str | ✅ | "LimitedExtensionAnsweringRule" | +| VOICEMAILEXTENSIONANSWERINGRULE | str | ✅ | "VoicemailExtensionAnsweringRule" | +| ANNOUNCEMENTEXTENSIONANSWERINGRULE | str | ✅ | "AnnouncementExtensionAnsweringRule" | +| SHAREDLINESGROUPANSWERINGRULE | str | ✅ | "SharedLinesGroupAnsweringRule" | + +# DictionaryGreetingInfoCategory + +Category of a greeting, specifying data form. The category value 'None' specifies that greetings of a certain type ('Introductory', 'ConnectingAudio', etc.) are switched off for an extension = ['Music', 'Message', 'RingTones', 'None'] + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| MUSIC | str | ✅ | "Music" | +| MESSAGE | str | ✅ | "Message" | +| RINGTONES | str | ✅ | "RingTones" | +| NONE | str | ✅ | "None" | + + diff --git a/documentation/models/DictionaryGreetingList.md b/documentation/models/DictionaryGreetingList.md new file mode 100644 index 00000000..bd71375e --- /dev/null +++ b/documentation/models/DictionaryGreetingList.md @@ -0,0 +1,12 @@ +# DictionaryGreetingList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Canonical URI of greetings list resource | +| records | List[DictionaryGreetingInfo] | ❌ | List of greetings | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/DirectGrouping.md b/documentation/models/DirectGrouping.md new file mode 100644 index 00000000..68154025 --- /dev/null +++ b/documentation/models/DirectGrouping.md @@ -0,0 +1,12 @@ +# DirectGrouping + +This grouping allows to specify the `groupBy` option by which the data in the response will be grouped + +**Properties** + +| Name | Type | Required | Description | +| :------- | :-------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| group_by | GroupingOptions | ✅ | The selected grouping option | +| keys | List[str] | ❌ | This field can be used to specify unique identifiers of entities selected in `groupBy` field. The response data will be limited to these entities only | + + diff --git a/documentation/models/Direction.md b/documentation/models/Direction.md new file mode 100644 index 00000000..7f2df8c8 --- /dev/null +++ b/documentation/models/Direction.md @@ -0,0 +1,10 @@ +# Direction + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + + diff --git a/documentation/models/DirectoryResource.md b/documentation/models/DirectoryResource.md new file mode 100644 index 00000000..47893943 --- /dev/null +++ b/documentation/models/DirectoryResource.md @@ -0,0 +1,10 @@ +# DirectoryResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------- | :------- | :---------- | +| paging | EnumeratedPagingModel | ✅ | | +| records | List[ContactResource] | ✅ | | + + diff --git a/documentation/models/DirectoryRoleResource.md b/documentation/models/DirectoryRoleResource.md new file mode 100644 index 00000000..1dedbc9c --- /dev/null +++ b/documentation/models/DirectoryRoleResource.md @@ -0,0 +1,12 @@ +# DirectoryRoleResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| id\_ | str | ✅ | | +| name | str | ❌ | | +| domain | str | ❌ | | +| display_name | str | ❌ | | + + diff --git a/documentation/models/DisabledFilterInfo.md b/documentation/models/DisabledFilterInfo.md new file mode 100644 index 00000000..93fc5b29 --- /dev/null +++ b/documentation/models/DisabledFilterInfo.md @@ -0,0 +1,11 @@ +# DisabledFilterInfo + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :--------------------------------------------- | +| filter | str | ✅ | Event filter that is disabled for the user | +| reason | str | ✅ | Reason why the filter is disabled for the user | +| message | str | ❌ | Error message | + + diff --git a/documentation/models/DisplayModesEnum.md b/documentation/models/DisplayModesEnum.md new file mode 100644 index 00000000..2e16bdd6 --- /dev/null +++ b/documentation/models/DisplayModesEnum.md @@ -0,0 +1,14 @@ +# DisplayModesEnum + +Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| PAGE | str | ✅ | "page" | +| POPUP | str | ✅ | "popup" | +| TOUCH | str | ✅ | "touch" | +| MOBILE | str | ✅ | "mobile" | + + diff --git a/documentation/models/EditPagingGroupRequest.md b/documentation/models/EditPagingGroupRequest.md new file mode 100644 index 00000000..29eb9411 --- /dev/null +++ b/documentation/models/EditPagingGroupRequest.md @@ -0,0 +1,12 @@ +# EditPagingGroupRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------- | :------- | :---------------------------------------------------------------------------- | +| added_user_ids | List[str] | ❌ | List of users that will be allowed to page a group specified | +| removed_user_ids | List[str] | ❌ | List of users that will be disallowed to page a group specified | +| added_device_ids | List[str] | ❌ | List of account devices that will be assigned to a paging group specified | +| removed_device_ids | List[str] | ❌ | List of account devices that will be unassigned from a paging group specified | + + diff --git a/documentation/models/EmailRecipientInfo.md b/documentation/models/EmailRecipientInfo.md new file mode 100644 index 00000000..392a9be2 --- /dev/null +++ b/documentation/models/EmailRecipientInfo.md @@ -0,0 +1,39 @@ +# EmailRecipientInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------- | +| extension_id | str | ❌ | Internal identifier of an extension | +| full_name | str | ❌ | User full name | +| extension_number | str | ❌ | User extension number | +| status | EmailRecipientInfoStatus | ❌ | Current state of an extension | +| email_addresses | List[str] | ❌ | List of user email addresses from extension notification settings. By default, main email address from contact information is returned | +| permission | Permission | ❌ | Call queue manager permission | + +# EmailRecipientInfoStatus + +Current state of an extension + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLE | str | ✅ | "Disable" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + +# Permission + +Call queue manager permission + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| FULLACCESS | str | ✅ | "FullAccess" | +| MESSAGES | str | ✅ | "Messages" | +| MEMBERMANAGEMENT | str | ✅ | "MemberManagement" | + + diff --git a/documentation/models/EmergencyAddress.md b/documentation/models/EmergencyAddress.md new file mode 100644 index 00000000..78b6747c --- /dev/null +++ b/documentation/models/EmergencyAddress.md @@ -0,0 +1,23 @@ +# EmergencyAddress + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------------------- | :------- | :------------------------------------------------------------------ | +| required | bool | ❌ | If set to `true` then specifying emergency address is required | +| local_only | bool | ❌ | If set to `true` then only local emergency address can be specified | +| line_provisioning_status | EmergencyAddressLineProvisioningStatus | ❌ | This status is associated with a phone line provision state | + +# EmergencyAddressLineProvisioningStatus + +This status is associated with a phone line provision state + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| VALID | str | ✅ | "Valid" | +| PROVISIONING | str | ✅ | "Provisioning" | +| INVALID | str | ✅ | "Invalid" | + + diff --git a/documentation/models/EmergencyAddressAutoUpdateSiteInfo.md b/documentation/models/EmergencyAddressAutoUpdateSiteInfo.md new file mode 100644 index 00000000..378ff27b --- /dev/null +++ b/documentation/models/EmergencyAddressAutoUpdateSiteInfo.md @@ -0,0 +1,10 @@ +# EmergencyAddressAutoUpdateSiteInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a site | +| name | str | ❌ | Name pf a site | + + diff --git a/documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md b/documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md new file mode 100644 index 00000000..4ca13722 --- /dev/null +++ b/documentation/models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md @@ -0,0 +1,10 @@ +# EmergencyAddressAutoUpdateUsersBulkAssignResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------- | :------- | :---------- | +| enabled_user_ids | List[str] | ❌ | | +| disabled_user_ids | List[str] | ❌ | | + + diff --git a/documentation/models/EmergencyAddressInfo.md b/documentation/models/EmergencyAddressInfo.md new file mode 100644 index 00000000..efb165f1 --- /dev/null +++ b/documentation/models/EmergencyAddressInfo.md @@ -0,0 +1,124 @@ +# EmergencyAddressInfo + +# EmergencyAddressInfo_1 + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | First line address | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | +| sync_status | EmergencyAddressInfo1SyncStatus | ❌ | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | + +# EmergencyAddressInfo_1SyncStatus + +Resulting status of emergency address synchronization. Returned +for 'Get Device Info' request if `syncEmergencyAddress` parameter is set +to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + +# EmergencyAddressInfo_2 + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | The name of the street (the field is utilized as 'streetName' field for AU addresses) | +| company_name | str | ❌ | Company name | +| building_name | str | ❌ | (Optional) Building name | +| street_type | str | ❌ | Street type | +| building_number | str | ❌ | Building/street number | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | +| sync_status | EmergencyAddressInfo2SyncStatus | ❌ | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | + +# EmergencyAddressInfo_2SyncStatus + +Resulting status of emergency address synchronization. Returned +for 'Get Device Info' request if `syncEmergencyAddress` parameter is set +to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + +# EmergencyAddressInfo_3 + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | The name of the street (The field is utilized as 'streetName' field for FR addresses) | +| company_name | str | ❌ | Company name | +| building_name | str | ❌ | (Optional) Building name | +| building_number | str | ❌ | Building/street number | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | +| customer_name | str | ❌ | Customer name | +| sync_status | EmergencyAddressInfo3SyncStatus | ❌ | Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` | + +# EmergencyAddressInfo_3SyncStatus + +Resulting status of emergency address synchronization. Returned +for 'Get Device Info' request if `syncEmergencyAddress` parameter is set +to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + + diff --git a/documentation/models/EmergencyAddressStatus.md b/documentation/models/EmergencyAddressStatus.md new file mode 100644 index 00000000..f13e5c73 --- /dev/null +++ b/documentation/models/EmergencyAddressStatus.md @@ -0,0 +1,11 @@ +# EmergencyAddressStatus + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | +| PROVISIONING | str | ✅ | "Provisioning" | + + diff --git a/documentation/models/EmergencyAddressType.md b/documentation/models/EmergencyAddressType.md new file mode 100644 index 00000000..05ad92c7 --- /dev/null +++ b/documentation/models/EmergencyAddressType.md @@ -0,0 +1,10 @@ +# EmergencyAddressType + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| LOCATIONWITHELINS | str | ✅ | "LocationWithElins" | +| LOCATIONWITHENDPOINT | str | ✅ | "LocationWithEndpoint" | + + diff --git a/documentation/models/EmergencyLocationInfo.md b/documentation/models/EmergencyLocationInfo.md new file mode 100644 index 00000000..4bcbe4ce --- /dev/null +++ b/documentation/models/EmergencyLocationInfo.md @@ -0,0 +1,13 @@ +# EmergencyLocationInfo + +Emergency response location information + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of an emergency response location | +| name | str | ❌ | Emergency response location name | +| address_format_id | str | ❌ | Address format ID | + + diff --git a/documentation/models/EmergencyLocationRequestResource.md b/documentation/models/EmergencyLocationRequestResource.md new file mode 100644 index 00000000..6c17065e --- /dev/null +++ b/documentation/models/EmergencyLocationRequestResource.md @@ -0,0 +1,51 @@ +# EmergencyLocationRequestResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an emergency response location | +| address | CommonEmergencyLocationAddressInfo | ❌ | | +| name | str | ❌ | Emergency response location name | +| site | ShortSiteInfo | ❌ | | +| address_status | EmergencyLocationRequestResourceAddressStatus | ❌ | Emergency address status | +| usage_status | EmergencyLocationRequestResourceUsageStatus | ❌ | Status of an emergency response location usage. | +| address_format_id | str | ❌ | Address format ID | +| visibility | EmergencyLocationRequestResourceVisibility | ❌ | Visibility of an emergency response location. If `Private` is set, then a location is visible only for restricted number of users, specified in `owners` array | +| trusted | bool | ❌ | If 'true' address validation for non-us addresses is skipped | + +# EmergencyLocationRequestResourceAddressStatus + +Emergency address status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | + +# EmergencyLocationRequestResourceUsageStatus + +Status of an emergency response location usage. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| INACTIVE | str | ✅ | "Inactive" | + +# EmergencyLocationRequestResourceVisibility + +Visibility of an emergency response location. If `Private` +is set, then a location is visible only for restricted number of users, +specified in `owners` array + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| PUBLIC | str | ✅ | "Public" | + + diff --git a/documentation/models/EmergencyLocationResponseResource.md b/documentation/models/EmergencyLocationResponseResource.md new file mode 100644 index 00000000..13e8a691 --- /dev/null +++ b/documentation/models/EmergencyLocationResponseResource.md @@ -0,0 +1,20 @@ +# EmergencyLocationResponseResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an emergency response location | +| address | CommonEmergencyLocationAddressInfo | ❌ | | +| name | str | ❌ | Emergency response location name | +| site | ShortSiteInfo | ❌ | | +| address_status | AddressStatus | ❌ | Emergency address status | +| usage_status | UsageStatus | ❌ | Status of emergency response location usage. | +| sync_status | SyncStatus | ❌ | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| address_type | EmergencyAddressType | ❌ | | +| visibility | Visibility | ❌ | Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array | +| owners | List[LocationOwnerInfo] | ❌ | List of private location owners | +| address_format_id | str | ❌ | Address format ID | +| trusted | bool | ❌ | If 'true' address validation for non-us addresses is skipped | + + diff --git a/documentation/models/EmergencyLocationUsageStatus.md b/documentation/models/EmergencyLocationUsageStatus.md new file mode 100644 index 00000000..35ea2c6b --- /dev/null +++ b/documentation/models/EmergencyLocationUsageStatus.md @@ -0,0 +1,10 @@ +# EmergencyLocationUsageStatus + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| INACTIVE | str | ✅ | "Inactive" | + + diff --git a/documentation/models/EmergencyLocationsPaging.md b/documentation/models/EmergencyLocationsPaging.md new file mode 100644 index 00000000..07586e48 --- /dev/null +++ b/documentation/models/EmergencyLocationsPaging.md @@ -0,0 +1,14 @@ +# EmergencyLocationsPaging + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :---------- | +| page | int | ✅ | | +| total_pages | int | ✅ | | +| per_page | int | ✅ | | +| total_elements | int | ✅ | | +| page_start | int | ✅ | | +| page_end | int | ✅ | | + + diff --git a/documentation/models/EmergencyLocationsResource.md b/documentation/models/EmergencyLocationsResource.md new file mode 100644 index 00000000..e6a147ab --- /dev/null +++ b/documentation/models/EmergencyLocationsResource.md @@ -0,0 +1,10 @@ +# EmergencyLocationsResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------------ | :------- | :---------- | +| records | List[CommonEmergencyLocationResource] | ❌ | | +| paging | EmergencyLocationsPaging | ❌ | | + + diff --git a/documentation/models/EmergencyServiceAddressResource.md b/documentation/models/EmergencyServiceAddressResource.md new file mode 100644 index 00000000..7448edea --- /dev/null +++ b/documentation/models/EmergencyServiceAddressResource.md @@ -0,0 +1,61 @@ +# EmergencyServiceAddressResource + +Address for emergency cases. The same emergency address is assigned +to all the numbers of one device + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :---------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| street | str | ❌ | | +| street2 | str | ❌ | | +| city | str | ❌ | | +| zip | str | ❌ | | +| customer_name | str | ❌ | | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country | str | ❌ | Country name | +| country_name | str | ❌ | Full name of a country | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | +| sync_status | EmergencyServiceAddressResourceSyncStatus | ❌ | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| additional_customer_name | str | ❌ | Name of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. | +| customer_email | str | ❌ | Email of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia. | +| additional_customer_email | str | ❌ | Email of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. | +| customer_phone | str | ❌ | Phone number of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia | +| additional_customer_phone | str | ❌ | Phone number of an additional contact person. Should be specified for countries except the US, Canada, the UK & Australia. | +| line_provisioning_status | EmergencyServiceAddressResourceLineProvisioningStatus | ❌ | Status of digital line provisioning | +| tax_id | str | ❌ | Internal identifier of a tax | + +# EmergencyServiceAddressResourceSyncStatus + +Resulting status of emergency address synchronization. Returned +if `syncEmergencyAddress` parameter is set to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + +# EmergencyServiceAddressResourceLineProvisioningStatus + +Status of digital line provisioning + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| PROVISIONING | str | ✅ | "Provisioning" | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | + + diff --git a/documentation/models/EmergencyServiceAddressResourceRequest.md b/documentation/models/EmergencyServiceAddressResourceRequest.md new file mode 100644 index 00000000..32fb5d67 --- /dev/null +++ b/documentation/models/EmergencyServiceAddressResourceRequest.md @@ -0,0 +1,21 @@ +# EmergencyServiceAddressResourceRequest + +Address for emergency cases. The same emergency address is assigned to all +numbers of a single device. If the emergency address is also specified in +`emergency` resource, then this value is ignored + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :------------------------------- | +| street | str | ❌ | | +| street2 | str | ❌ | | +| city | str | ❌ | | +| zip | str | ❌ | | +| customer_name | str | ❌ | | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | + + diff --git a/documentation/models/EmotionSegment.md b/documentation/models/EmotionSegment.md new file mode 100644 index 00000000..44282884 --- /dev/null +++ b/documentation/models/EmotionSegment.md @@ -0,0 +1,25 @@ +# EmotionSegment + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------ | :------- | :---------- | +| start | float | ✅ | | +| end | float | ✅ | | +| emotion | Emotion | ✅ | | +| confidence | float | ❌ | | + +# Emotion + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| ANGER | str | ✅ | "Anger" | +| EXCITEMENT | str | ✅ | "Excitement" | +| FRUSTRATION | str | ✅ | "Frustration" | +| JOY | str | ✅ | "Joy" | +| SADNESS | str | ✅ | "Sadness" | +| NEUTRAL | str | ✅ | "Neutral" | + + diff --git a/documentation/models/EnrollmentInput.md b/documentation/models/EnrollmentInput.md new file mode 100644 index 00000000..47a0c2b1 --- /dev/null +++ b/documentation/models/EnrollmentInput.md @@ -0,0 +1,29 @@ +# EnrollmentInput + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---------------------- | :------- | :------------------------------------------------------------------ | +| encoding | EnrollmentInputEncoding | ✅ | The encoding of the original audio | +| content | str | ✅ | Base64-encoded audio file data. | +| language_code | str | ❌ | Language spoken in the audio file. | +| speaker_id | str | ❌ | The enrollment ID to be registered. Acceptable format [a-zA-Z0-9_]+ | + +# EnrollmentInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + + diff --git a/documentation/models/EnrollmentPatchInput.md b/documentation/models/EnrollmentPatchInput.md new file mode 100644 index 00000000..0d00657b --- /dev/null +++ b/documentation/models/EnrollmentPatchInput.md @@ -0,0 +1,28 @@ +# EnrollmentPatchInput + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--------------------------- | :------- | :--------------------------------- | +| encoding | EnrollmentPatchInputEncoding | ✅ | The encoding of the original audio | +| content | str | ✅ | Base64-encoded audio file data. | +| language_code | str | ❌ | Language spoken in the audio file. | + +# EnrollmentPatchInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + + diff --git a/documentation/models/EnrollmentStatus.md b/documentation/models/EnrollmentStatus.md new file mode 100644 index 00000000..f2a7d5d1 --- /dev/null +++ b/documentation/models/EnrollmentStatus.md @@ -0,0 +1,26 @@ +# EnrollmentStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------- | :------- | :-------------------------------------------------- | +| enrollment_complete | bool | ✅ | Status of the enrollment. | +| speaker_id | str | ✅ | | +| total_speech_duration | float | ✅ | Total duration of the enrollment in seconds. | +| enrollment_quality | EnrollmentQuality | ❌ | Quality of the enrollment. | +| total_enroll_duration | float | ❌ | Total speech duration of the enrollment in seconds. | + +# EnrollmentQuality + +Quality of the enrollment. + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| POOR | str | ✅ | "Poor" | +| AVERAGE | str | ✅ | "Average" | +| GOOD | str | ✅ | "Good" | +| HIGH | str | ✅ | "High" | + + diff --git a/documentation/models/EnumeratedPagingModel.md b/documentation/models/EnumeratedPagingModel.md new file mode 100644 index 00000000..983874ca --- /dev/null +++ b/documentation/models/EnumeratedPagingModel.md @@ -0,0 +1,14 @@ +# EnumeratedPagingModel + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| per_page | int | ✅ | Current page size, describes how many items are in each page. Matches "perPage" parameter from the request. | +| page | int | ❌ | The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| page_start | int | ❌ | The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty | +| page_end | int | ❌ | The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty | +| total_pages | int | ❌ | The total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | The total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/ErlLocationInfo.md b/documentation/models/ErlLocationInfo.md new file mode 100644 index 00000000..202527c5 --- /dev/null +++ b/documentation/models/ErlLocationInfo.md @@ -0,0 +1,13 @@ +# ErlLocationInfo + +Emergency response location information + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an emergency response location | +| name | str | ❌ | Emergency response location name | +| address_format_id | str | ❌ | Address format ID | + + diff --git a/documentation/models/ErrorEntity.md b/documentation/models/ErrorEntity.md new file mode 100644 index 00000000..de889b1e --- /dev/null +++ b/documentation/models/ErrorEntity.md @@ -0,0 +1,12 @@ +# ErrorEntity + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------- | +| error_code | str | ❌ | Error code | +| message | str | ❌ | Error message | +| parameter_name | str | ❌ | Name of invalid parameter | +| parameter_value | str | ❌ | Value of invalid parameter | + + diff --git a/documentation/models/EventRecurrenceInfo.md b/documentation/models/EventRecurrenceInfo.md new file mode 100644 index 00000000..4d690a1b --- /dev/null +++ b/documentation/models/EventRecurrenceInfo.md @@ -0,0 +1,41 @@ +# EventRecurrenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| schedule | EventRecurrenceInfoSchedule | ❌ | Event recurrence settings. For non-periodic events the value is `None`. Must be greater or equal to event duration: 1- Day/Weekday; 7 - Week; 28 - Month; 365 - Year | +| ending_condition | EventRecurrenceInfoEndingCondition | ❌ | Condition of ending an event | +| ending_after | int | ❌ | Count of event iterations. For periodic events only. Value range is 1 - 10. Must be specified if `endingCondition` is `Count` | +| ending_on | str | ❌ | Iterations ending datetime for periodic events in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | + +# EventRecurrenceInfoSchedule + +Event recurrence settings. For non-periodic events the value +is `None`. Must be greater or equal to event duration: 1- Day/Weekday; +7 - Week; 28 - Month; 365 - Year + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| NONE | str | ✅ | "None" | +| DAY | str | ✅ | "Day" | +| WEEKDAY | str | ✅ | "Weekday" | +| WEEK | str | ✅ | "Week" | +| MONTH | str | ✅ | "Month" | +| YEAR | str | ✅ | "Year" | + +# EventRecurrenceInfoEndingCondition + +Condition of ending an event + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| NONE | str | ✅ | "None" | +| COUNT | str | ✅ | "Count" | +| DATE | str | ✅ | "Date" | + + diff --git a/documentation/models/EveryoneCanControl.md b/documentation/models/EveryoneCanControl.md new file mode 100644 index 00000000..40c19378 --- /dev/null +++ b/documentation/models/EveryoneCanControl.md @@ -0,0 +1,12 @@ +# EveryoneCanControl + +Controls whether participants can start and pause recording + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------- | +| enabled | bool | ❌ | Controls whether preference is enabled | +| locked | bool | ❌ | Describes whether preference is locked on Service Web | + + diff --git a/documentation/models/EveryoneTeamInfo.md b/documentation/models/EveryoneTeamInfo.md new file mode 100644 index 00000000..756ec97b --- /dev/null +++ b/documentation/models/EveryoneTeamInfo.md @@ -0,0 +1,24 @@ +# EveryoneTeamInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a chat | +| type\_ | EveryoneTeamInfoType | ❌ | Type of chat | +| name | str | ❌ | Chat name | +| description | str | ❌ | Chat description | +| creation_time | str | ❌ | Chat creation datetime in ISO 8601 format | +| last_modified_time | str | ❌ | Chat last change datetime in ISO 8601 format | + +# EveryoneTeamInfoType + +Type of chat + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| EVERYONE | str | ✅ | "Everyone" | + + diff --git a/documentation/models/ExportTaskResultInfo.md b/documentation/models/ExportTaskResultInfo.md new file mode 100644 index 00000000..1e4d5065 --- /dev/null +++ b/documentation/models/ExportTaskResultInfo.md @@ -0,0 +1,11 @@ +# ExportTaskResultInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------- | +| id\_ | str | ❌ | Internal identifier of a dataset | +| uri | str | ❌ | Link for downloading a dataset | +| size | int | ❌ | Size of ta dataset in bytes | + + diff --git a/documentation/models/ExtensionBulkUpdateInfo.md b/documentation/models/ExtensionBulkUpdateInfo.md new file mode 100644 index 00000000..20972225 --- /dev/null +++ b/documentation/models/ExtensionBulkUpdateInfo.md @@ -0,0 +1,63 @@ +# ExtensionBulkUpdateInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| status | ExtensionBulkUpdateInfoStatus | ❌ | | +| status_info | ExtensionStatusInfo | ❌ | Status information (reason, comment). Returned for 'Disabled' status only | +| reason | str | ❌ | Type of suspension | +| comment | str | ❌ | Free form user comment | +| extension_number | str | ❌ | Extension number available | +| contact | ContactInfoUpdateRequest | ❌ | | +| regional_settings | ExtensionRegionalSettingRequest | ❌ | | +| setup_wizard_state | SetupWizardStateForUpdateEnum | ❌ | Initial configuration wizard state | +| partner_id | str | ❌ | Additional extension identifier created by partner application and applied on client side | +| ivr_pin | str | ❌ | IVR PIN | +| password | str | ❌ | Password for extension | +| call_queue_info | CallQueueInfoRequest | ❌ | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| transition | UserTransitionInfo | ❌ | For NotActivated extensions only. Welcome email settings | +| cost_center | CostCenterInfo | ❌ | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | +| custom_fields | List[CustomFieldInfo] | ❌ | | +| hidden | bool | ❌ | Hides extension from showing in company directory. Supported for extensions of User type only | +| site | ProvisioningSiteInfo | ❌ | Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` | +| type\_ | ExtensionBulkUpdateInfoType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| references | List[ReferenceInfo] | ❌ | List of non-RC internal identifiers assigned to an extension | + +# ExtensionBulkUpdateInfoStatus + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| DISABLED | str | ✅ | "Disabled" | +| ENABLED | str | ✅ | "Enabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| FROZEN | str | ✅ | "Frozen" | + +# ExtensionBulkUpdateInfoType + +Extension type. Please note that legacy 'Department' extension +type corresponds to 'Call Queue' extensions in modern RingCentral +product terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | + + diff --git a/documentation/models/ExtensionBulkUpdateRequest.md b/documentation/models/ExtensionBulkUpdateRequest.md new file mode 100644 index 00000000..4321bdbc --- /dev/null +++ b/documentation/models/ExtensionBulkUpdateRequest.md @@ -0,0 +1,11 @@ +# ExtensionBulkUpdateRequest + +List of extensions to be updated + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------- | :------- | :---------- | +| records | List[ExtensionBulkUpdateInfo] | ✅ | | + + diff --git a/documentation/models/ExtensionBulkUpdateTaskResource.md b/documentation/models/ExtensionBulkUpdateTaskResource.md new file mode 100644 index 00000000..6dce62e0 --- /dev/null +++ b/documentation/models/ExtensionBulkUpdateTaskResource.md @@ -0,0 +1,29 @@ +# ExtensionBulkUpdateTaskResource + +Information on a task for updating multiple extensions + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------ | :------- | :---------------------------------------------- | +| uri | str | ✅ | Link to a task resource | +| id\_ | str | ✅ | Internal identifier of a task | +| status | ExtensionBulkUpdateTaskResourceStatus | ✅ | Task status | +| creation_time | str | ✅ | Task creation date/time | +| last_modified_time | str | ✅ | Task latest update date/time | +| result | ExtensionBulkUpdateTaskResult | ❌ | Result record on multiple extension update task | + +# ExtensionBulkUpdateTaskResourceStatus + +Task status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| ACCEPTED | str | ✅ | "Accepted" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | +| FAILED | str | ✅ | "Failed" | + + diff --git a/documentation/models/ExtensionBulkUpdateTaskResult.md b/documentation/models/ExtensionBulkUpdateTaskResult.md new file mode 100644 index 00000000..a605ddc1 --- /dev/null +++ b/documentation/models/ExtensionBulkUpdateTaskResult.md @@ -0,0 +1,12 @@ +# ExtensionBulkUpdateTaskResult + +Result record on multiple extension update task + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------- | :------- | :---------- | +| affected_items | List[ExtensionUpdateShortResult] | ❌ | | +| errors | List[ErrorEntity] | ❌ | | + + diff --git a/documentation/models/ExtensionCallQueuePresence.md b/documentation/models/ExtensionCallQueuePresence.md new file mode 100644 index 00000000..e0a692b0 --- /dev/null +++ b/documentation/models/ExtensionCallQueuePresence.md @@ -0,0 +1,10 @@ +# ExtensionCallQueuePresence + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------- | :------- | :---------------------------------------------------- | +| call_queue | PresenceCallQueueInfo | ❌ | Call queue information | +| accept_calls | bool | ❌ | Call queue agent availability for calls of this queue | + + diff --git a/documentation/models/ExtensionCallQueuePresenceList.md b/documentation/models/ExtensionCallQueuePresenceList.md new file mode 100644 index 00000000..e26e7e31 --- /dev/null +++ b/documentation/models/ExtensionCallQueuePresenceList.md @@ -0,0 +1,9 @@ +# ExtensionCallQueuePresenceList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------- | :------- | :---------- | +| records | List[ExtensionCallQueuePresence] | ❌ | | + + diff --git a/documentation/models/ExtensionCallQueueUpdatePresence.md b/documentation/models/ExtensionCallQueueUpdatePresence.md new file mode 100644 index 00000000..80aacf12 --- /dev/null +++ b/documentation/models/ExtensionCallQueueUpdatePresence.md @@ -0,0 +1,10 @@ +# ExtensionCallQueueUpdatePresence + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------- | :------- | :---------------------------------------------------- | +| call_queue | CallQueueId | ❌ | Call queue information | +| accept_calls | bool | ❌ | Call queue agent availability for calls of this queue | + + diff --git a/documentation/models/ExtensionCallQueueUpdatePresenceList.md b/documentation/models/ExtensionCallQueueUpdatePresenceList.md new file mode 100644 index 00000000..134728e6 --- /dev/null +++ b/documentation/models/ExtensionCallQueueUpdatePresenceList.md @@ -0,0 +1,9 @@ +# ExtensionCallQueueUpdatePresenceList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------------- | :------- | :---------- | +| records | List[ExtensionCallQueueUpdatePresence] | ❌ | | + + diff --git a/documentation/models/ExtensionCallerIdInfo.md b/documentation/models/ExtensionCallerIdInfo.md new file mode 100644 index 00000000..c75b9037 --- /dev/null +++ b/documentation/models/ExtensionCallerIdInfo.md @@ -0,0 +1,13 @@ +# ExtensionCallerIdInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------------- | :---------------------- | :------- | :---------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URL of a caller ID resource | +| by_device | List[CallerIdByDevice] | ❌ | | +| by_feature | List[CallerIdByFeature] | ❌ | | +| extension_name_for_outbound_calls | bool | ❌ | If `true`, then user first name and last name will be used as caller ID when making outbound calls from extension | +| extension_number_for_internal_calls | bool | ❌ | If `true`, then extension number will be used as caller ID when making internal calls | + + diff --git a/documentation/models/ExtensionCallerIdInfoRequest.md b/documentation/models/ExtensionCallerIdInfoRequest.md new file mode 100644 index 00000000..9738ff0c --- /dev/null +++ b/documentation/models/ExtensionCallerIdInfoRequest.md @@ -0,0 +1,13 @@ +# ExtensionCallerIdInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------------- | :----------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URL of a caller ID resource | +| by_device | List[CallerIdByDeviceRequest] | ❌ | | +| by_feature | List[CallerIdByFeatureRequest] | ❌ | | +| extension_name_for_outbound_calls | bool | ❌ | If `true`, then the user first name and last name will be used as caller ID when making outbound calls from extension | +| extension_number_for_internal_calls | bool | ❌ | If `true`, then extension number will be used as caller ID when making internal calls | + + diff --git a/documentation/models/ExtensionCountryInfoRequest.md b/documentation/models/ExtensionCountryInfoRequest.md new file mode 100644 index 00000000..26cb9625 --- /dev/null +++ b/documentation/models/ExtensionCountryInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionCountryInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | + + diff --git a/documentation/models/ExtensionCreationRequest.md b/documentation/models/ExtensionCreationRequest.md new file mode 100644 index 00000000..8710f8bf --- /dev/null +++ b/documentation/models/ExtensionCreationRequest.md @@ -0,0 +1,59 @@ +# ExtensionCreationRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| contact | ContactInfoCreationRequest | ❌ | Contact Information | +| extension_number | str | ❌ | Extension short number | +| cost_center | CostCenterInfo | ❌ | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | +| custom_fields | List[CustomFieldInfo] | ❌ | | +| password | str | ❌ | Password for extension. If not specified, the password is auto-generated | +| references | List[ReferenceInfo] | ❌ | List of non-RC internal identifiers assigned to an extension | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| partner_id | str | ❌ | Additional extension identifier, created by partner application and applied on client side | +| ivr_pin | str | ❌ | IVR PIN | +| setup_wizard_state | SetupWizardStateForUpdateEnum | ❌ | Initial configuration wizard state | +| site | SiteInfo | ❌ | | +| status | ExtensionCreationRequestStatus | ❌ | Extension current state | +| status_info | ExtensionStatusInfo | ❌ | Status information (reason, comment). Returned for 'Disabled' status only | +| type\_ | ExtensionCreationRequestType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| hidden | bool | ❌ | Hides extension from showing in company directory. Supported for extensions of 'User' type only. For unassigned extensions the value is set to `true` by default. For assigned extensions the value is set to `false` by default | + +# ExtensionCreationRequestStatus + +Extension current state + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | +| FROZEN | str | ✅ | "Frozen" | + +# ExtensionCreationRequestType + +Extension type. Please note that legacy 'Department' extension type +corresponds to 'Call Queue' extensions in modern RingCentral product +terminology + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| USER | str | ✅ | "User" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | + + diff --git a/documentation/models/ExtensionCreationResponse.md b/documentation/models/ExtensionCreationResponse.md new file mode 100644 index 00000000..611b9386 --- /dev/null +++ b/documentation/models/ExtensionCreationResponse.md @@ -0,0 +1,65 @@ +# ExtensionCreationResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| contact | ContactInfo | ❌ | Detailed contact information | +| cost_center | CostCenterInfo | ❌ | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | +| custom_fields | List[CustomFieldInfo] | ❌ | | +| extension_number | str | ❌ | Extension number | +| name | str | ❌ | Extension name. For user extension types the value is a combination of the specified first name and last name | +| partner_id | str | ❌ | For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | +| permissions | ExtensionPermissions | ❌ | Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' | +| profile_image | ProfileImageInfo | ❌ | Information on profile image | +| references | List[ReferenceInfo] | ❌ | List of non-RC internal identifiers assigned to an extension | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| service_features | List[ExtensionServiceFeatureInfo] | ❌ | Extension service features returned in response only when the logged-in user requests his/her own extension info, see also Extension Service Features | +| setup_wizard_state | SetupWizardStateForUpdateEnum | ❌ | Initial configuration wizard state | +| site | ProvisioningSiteInfo | ❌ | Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` | +| status | ExtensionCreationResponseStatus | ❌ | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| status_info | ExtensionStatusInfo | ❌ | Status information (reason, comment). Returned for 'Disabled' status only | +| type\_ | ExtensionCreationResponseType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| hidden | bool | ❌ | Hides an extension from showing in company directory. Supported for extensions of 'User' type only | +| assigned_country | AssignedCountryInfo | ❌ | Information on a country assigned to an extension user. Returned for the User extension type only | + +# ExtensionCreationResponseStatus + +Extension current state. If 'Unassigned' is specified, then +extensions without `extensionNumber` are returned. If not specified, then +all extensions are returned + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| FROZEN | str | ✅ | "Frozen" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + +# ExtensionCreationResponseType + +Extension type. Please note that legacy 'Department' extension type +corresponds to 'Call Queue' extensions in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| USER | str | ✅ | "User" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | + + diff --git a/documentation/models/ExtensionCurrencyInfoRequest.md b/documentation/models/ExtensionCurrencyInfoRequest.md new file mode 100644 index 00000000..2c6014bd --- /dev/null +++ b/documentation/models/ExtensionCurrencyInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionCurrencyInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------- | +| id\_ | str | ❌ | Internal Identifier of a currency | + + diff --git a/documentation/models/ExtensionFilters.md b/documentation/models/ExtensionFilters.md new file mode 100644 index 00000000..cd04655c --- /dev/null +++ b/documentation/models/ExtensionFilters.md @@ -0,0 +1,12 @@ +# ExtensionFilters + +Specifies filtering based on extension ids + +**Properties** + +| Name | Type | Required | Description | +| :------- | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from_ids | List[str] | ❌ | List of extension ids to match against incoming calls, joined via OR condition. Only applicable for `groupByMembers` options and Users, IVRs, SharedLines and Queues in `groupBy` | +| to_ids | List[str] | ❌ | List of extension ids to match against outgoing calls, joined via OR condition. Limited to the extension id that first accepted the call. Only applicable for `groupByMembers` options and Users, IVRs and SharedLines in `groupBy` | + + diff --git a/documentation/models/ExtensionFormattingLocaleInfoRequest.md b/documentation/models/ExtensionFormattingLocaleInfoRequest.md new file mode 100644 index 00000000..5134d329 --- /dev/null +++ b/documentation/models/ExtensionFormattingLocaleInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionFormattingLocaleInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal Identifier of a formatting language | + + diff --git a/documentation/models/ExtensionGreetingLanguageInfoRequest.md b/documentation/models/ExtensionGreetingLanguageInfoRequest.md new file mode 100644 index 00000000..a443dab2 --- /dev/null +++ b/documentation/models/ExtensionGreetingLanguageInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionGreetingLanguageInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a greeting language | + + diff --git a/documentation/models/ExtensionInfo.md b/documentation/models/ExtensionInfo.md new file mode 100644 index 00000000..92d43b6d --- /dev/null +++ b/documentation/models/ExtensionInfo.md @@ -0,0 +1,16 @@ +# ExtensionInfo + +Information on the extension, to which the phone number is assigned. +Returned only for the request of Account phone number list + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| name | str | ❌ | Extension name | +| extension_number | str | ❌ | Extension short number | +| partner_id | str | ❌ | For partner applications. Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | + + diff --git a/documentation/models/ExtensionInfoCallLog.md b/documentation/models/ExtensionInfoCallLog.md new file mode 100644 index 00000000..3395ed8f --- /dev/null +++ b/documentation/models/ExtensionInfoCallLog.md @@ -0,0 +1,12 @@ +# ExtensionInfoCallLog + +Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | int | ✅ | Internal identifier of an extension | +| uri | str | ✅ | Canonical URI of an extension | + + diff --git a/documentation/models/ExtensionInfoGrants.md b/documentation/models/ExtensionInfoGrants.md new file mode 100644 index 00000000..44c745d7 --- /dev/null +++ b/documentation/models/ExtensionInfoGrants.md @@ -0,0 +1,39 @@ +# ExtensionInfoGrants + +Extension information + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Extension short number (usually 3 or 4 digits) | +| name | str | ❌ | Name of extension | +| type\_ | ExtensionInfoGrantsType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | + +# ExtensionInfoGrantsType + +Extension type. Please note that legacy 'Department' +extension type corresponds to 'Call Queue' extensions in modern RingCentral +product terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAX_USER | str | ✅ | "Fax User" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | + + diff --git a/documentation/models/ExtensionInfoIntId.md b/documentation/models/ExtensionInfoIntId.md new file mode 100644 index 00000000..85cf1109 --- /dev/null +++ b/documentation/models/ExtensionInfoIntId.md @@ -0,0 +1,14 @@ +# ExtensionInfoIntId + +This attribute can be omitted for unassigned devices + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Number of extension | +| partner_id | str | ❌ | For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | + + diff --git a/documentation/models/ExtensionLanguageInfoRequest.md b/documentation/models/ExtensionLanguageInfoRequest.md new file mode 100644 index 00000000..cf2d5d7f --- /dev/null +++ b/documentation/models/ExtensionLanguageInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionLanguageInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------- | +| id\_ | str | ❌ | Internal identifier of a language | + + diff --git a/documentation/models/ExtensionPermissions.md b/documentation/models/ExtensionPermissions.md new file mode 100644 index 00000000..00c234f1 --- /dev/null +++ b/documentation/models/ExtensionPermissions.md @@ -0,0 +1,13 @@ +# ExtensionPermissions + +Extension permissions, corresponding to the Service Web permissions +'Admin' and 'InternationalCalling' + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------ | :------- | :------------------------------- | +| admin | PermissionInfoAdmin | ❌ | Admin permission | +| international_calling | PermissionInfoInt | ❌ | International Calling permission | + + diff --git a/documentation/models/ExtensionRegionalSettingRequest.md b/documentation/models/ExtensionRegionalSettingRequest.md new file mode 100644 index 00000000..320d10d7 --- /dev/null +++ b/documentation/models/ExtensionRegionalSettingRequest.md @@ -0,0 +1,26 @@ +# ExtensionRegionalSettingRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :---------------------------------------- | :------- | :------------------ | +| home_country | ExtensionCountryInfoRequest | ❌ | | +| timezone | ExtensionTimezoneInfoRequest | ❌ | | +| language | ExtensionLanguageInfoRequest | ❌ | | +| greeting_language | ExtensionGreetingLanguageInfoRequest | ❌ | | +| formatting_locale | ExtensionFormattingLocaleInfoRequest | ❌ | | +| currency | ExtensionCurrencyInfoRequest | ❌ | | +| time_format | ExtensionRegionalSettingRequestTimeFormat | ❌ | Time format setting | + +# ExtensionRegionalSettingRequestTimeFormat + +Time format setting + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| \_12H | str | ✅ | "12h" | +| \_24H | str | ✅ | "24h" | + + diff --git a/documentation/models/ExtensionServiceFeatureInfo.md b/documentation/models/ExtensionServiceFeatureInfo.md new file mode 100644 index 00000000..c503246f --- /dev/null +++ b/documentation/models/ExtensionServiceFeatureInfo.md @@ -0,0 +1,80 @@ +# ExtensionServiceFeatureInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| enabled | bool | ❌ | Feature status; shows feature availability for an extension | +| feature_name | ExtensionServiceFeatureInfoFeatureName | ❌ | Feature name | +| reason | str | ❌ | Reason for limitation of a particular service feature. Returned only if the enabled parameter value is `false`, see Service Feature Limitations and Reasons. When retrieving service features for an extension, the reasons for limitations, if any, are returned in response | + +# ExtensionServiceFeatureInfoFeatureName + +Feature name + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------- | :--- | :------- | :------------------------------- | +| ACCOUNTFEDERATION | str | ✅ | "AccountFederation" | +| ARCHIVER | str | ✅ | "Archiver" | +| AUTOMATICCALLRECORDINGMUTE | str | ✅ | "AutomaticCallRecordingMute" | +| AUTOMATICINBOUNDCALLRECORDING | str | ✅ | "AutomaticInboundCallRecording" | +| AUTOMATICOUTBOUNDCALLRECORDING | str | ✅ | "AutomaticOutboundCallRecording" | +| BLOCKEDMESSAGEFORWARDING | str | ✅ | "BlockedMessageForwarding" | +| CALENDAR | str | ✅ | "Calendar" | +| CALLERIDCONTROL | str | ✅ | "CallerIdControl" | +| CALLFORWARDING | str | ✅ | "CallForwarding" | +| CALLPARK | str | ✅ | "CallPark" | +| CALLPARKLOCATIONS | str | ✅ | "CallParkLocations" | +| CALLSUPERVISION | str | ✅ | "CallSupervision" | +| CALLSWITCH | str | ✅ | "CallSwitch" | +| CALLQUALITYSURVEY | str | ✅ | "CallQualitySurvey" | +| CONFERENCING | str | ✅ | "Conferencing" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| CONFIGUREDELEGATES | str | ✅ | "ConfigureDelegates" | +| DEVELOPERPORTAL | str | ✅ | "DeveloperPortal" | +| DND | str | ✅ | "DND" | +| DYNAMICCONFERENCE | str | ✅ | "DynamicConference" | +| EMERGENCYADDRESSAUTOUPDATE | str | ✅ | "EmergencyAddressAutoUpdate" | +| EMERGENCYCALLING | str | ✅ | "EmergencyCalling" | +| ENCRYPTIONATREST | str | ✅ | "EncryptionAtRest" | +| EXTERNALDIRECTORYINTEGRATION | str | ✅ | "ExternalDirectoryIntegration" | +| FAX | str | ✅ | "Fax" | +| FAXRECEIVING | str | ✅ | "FaxReceiving" | +| FREESOFTPHONELINES | str | ✅ | "FreeSoftPhoneLines" | +| HDVOICE | str | ✅ | "HDVoice" | +| HIPAACOMPLIANCE | str | ✅ | "HipaaCompliance" | +| INTERCOM | str | ✅ | "Intercom" | +| INTERNATIONALCALLING | str | ✅ | "InternationalCalling" | +| INTERNATIONALSMS | str | ✅ | "InternationalSMS" | +| LINKEDSOFTPHONELINES | str | ✅ | "LinkedSoftphoneLines" | +| MMS | str | ✅ | "MMS" | +| MOBILEVOIPEMERGENCYCALLING | str | ✅ | "MobileVoipEmergencyCalling" | +| ONDEMANDCALLRECORDING | str | ✅ | "OnDemandCallRecording" | +| PAGER | str | ✅ | "Pager" | +| PAGERRECEIVING | str | ✅ | "PagerReceiving" | +| PAGING | str | ✅ | "Paging" | +| PASSWORDAUTH | str | ✅ | "PasswordAuth" | +| PROMOMESSAGE | str | ✅ | "PromoMessage" | +| REPORTS | str | ✅ | "Reports" | +| PRESENCE | str | ✅ | "Presence" | +| RCTEAMS | str | ✅ | "RCTeams" | +| RINGOUT | str | ✅ | "RingOut" | +| SALESFORCE | str | ✅ | "SalesForce" | +| SHAREDLINES | str | ✅ | "SharedLines" | +| SINGLEEXTENSIONUI | str | ✅ | "SingleExtensionUI" | +| SITECODES | str | ✅ | "SiteCodes" | +| SMS | str | ✅ | "SMS" | +| SMSRECEIVING | str | ✅ | "SMSReceiving" | +| SOFTPHONEUPDATE | str | ✅ | "SoftPhoneUpdate" | +| TELEPHONYSESSIONS | str | ✅ | "TelephonySessions" | +| USERMANAGEMENT | str | ✅ | "UserManagement" | +| VIDEOCONFERENCING | str | ✅ | "VideoConferencing" | +| VOIPCALLING | str | ✅ | "VoipCalling" | +| VOIPCALLINGONMOBILE | str | ✅ | "VoipCallingOnMobile" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| VOICEMAILTOTEXT | str | ✅ | "VoicemailToText" | +| WEBPHONE | str | ✅ | "WebPhone" | + + diff --git a/documentation/models/ExtensionShortInfoResource.md b/documentation/models/ExtensionShortInfoResource.md new file mode 100644 index 00000000..02094215 --- /dev/null +++ b/documentation/models/ExtensionShortInfoResource.md @@ -0,0 +1,11 @@ +# ExtensionShortInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| name | str | ❌ | Extension name | +| extension_number | str | ❌ | Extension number | + + diff --git a/documentation/models/ExtensionStatus.md b/documentation/models/ExtensionStatus.md new file mode 100644 index 00000000..69b7bde2 --- /dev/null +++ b/documentation/models/ExtensionStatus.md @@ -0,0 +1,15 @@ +# ExtensionStatus + +Extension status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| FROZEN | str | ✅ | "Frozen" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + + diff --git a/documentation/models/ExtensionStatusInfo.md b/documentation/models/ExtensionStatusInfo.md new file mode 100644 index 00000000..8e17ae26 --- /dev/null +++ b/documentation/models/ExtensionStatusInfo.md @@ -0,0 +1,27 @@ +# ExtensionStatusInfo + +Status information (reason, comment). Returned for 'Disabled' +status only + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :------------------------------------------------------------------------------------------------ | +| comment | str | ❌ | A free-form user comment, describing the status change reason | +| reason | ExtensionStatusInfoReason | ❌ | Type of suspension | +| till | str | ❌ | Date until which an account will get deleted. The default value is 30 days since the current date | + +# ExtensionStatusInfoReason + +Type of suspension + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------- | +| SUSPENDEDVOLUNTARILY | str | ✅ | "SuspendedVoluntarily" | +| SUSPENDEDINVOLUNTARILY | str | ✅ | "SuspendedInvoluntarily" | +| CANCELLEDVOLUNTARILY | str | ✅ | "CancelledVoluntarily" | +| CANCELLEDINVOLUNTARILY | str | ✅ | "CancelledInvoluntarily" | + + diff --git a/documentation/models/ExtensionTimezoneInfoRequest.md b/documentation/models/ExtensionTimezoneInfoRequest.md new file mode 100644 index 00000000..b4105f34 --- /dev/null +++ b/documentation/models/ExtensionTimezoneInfoRequest.md @@ -0,0 +1,9 @@ +# ExtensionTimezoneInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------- | +| id\_ | str | ❌ | Internal identifier of a timezone | + + diff --git a/documentation/models/ExtensionType.md b/documentation/models/ExtensionType.md new file mode 100644 index 00000000..73456743 --- /dev/null +++ b/documentation/models/ExtensionType.md @@ -0,0 +1,24 @@ +# ExtensionType + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | +| BOT | str | ✅ | "Bot" | +| ROOM | str | ✅ | "Room" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | + + diff --git a/documentation/models/ExtensionUpdateRequest.md b/documentation/models/ExtensionUpdateRequest.md new file mode 100644 index 00000000..d3bed6ad --- /dev/null +++ b/documentation/models/ExtensionUpdateRequest.md @@ -0,0 +1,76 @@ +# ExtensionUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| status | ExtensionUpdateRequestStatus | ❌ | | +| status_info | ExtensionStatusInfo | ❌ | Status information (reason, comment). Returned for 'Disabled' status only | +| extension_number | str | ❌ | Extension number available | +| contact | ContactInfoUpdateRequest | ❌ | | +| regional_settings | ExtensionRegionalSettingRequest | ❌ | | +| setup_wizard_state | SetupWizardStateForUpdateEnum | ❌ | Initial configuration wizard state | +| partner_id | str | ❌ | Additional extension identifier, created by partner application and applied on client side | +| ivr_pin | str | ❌ | IVR PIN | +| password | str | ❌ | Password for extension | +| call_queue_info | CallQueueInfoRequest | ❌ | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| transition | UserTransitionInfo | ❌ | For NotActivated extensions only. Welcome email settings | +| custom_fields | List[CustomFieldInfo] | ❌ | | +| site | SiteReference | ❌ | | +| type\_ | ExtensionUpdateRequestType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| sub_type | ExtensionUpdateRequestSubType | ❌ | Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned | +| references | List[ReferenceInfo] | ❌ | List of non-RC internal identifiers assigned to an extension | + +# ExtensionUpdateRequestStatus + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| DISABLED | str | ✅ | "Disabled" | +| ENABLED | str | ✅ | "Enabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| FROZEN | str | ✅ | "Frozen" | + +# ExtensionUpdateRequestType + +Extension type. Please note that legacy 'Department' extension +type corresponds to 'Call Queue' extensions in modern RingCentral +product terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | + +# ExtensionUpdateRequestSubType + +Extension subtype, if applicable. For any unsupported subtypes +the 'Unknown' value will be returned + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| VIDEOPRO | str | ✅ | "VideoPro" | +| VIDEOPROPLUS | str | ✅ | "VideoProPlus" | +| DIGITALSIGNAGEONLYROOMS | str | ✅ | "DigitalSignageOnlyRooms" | +| UNKNOWN | str | ✅ | "Unknown" | +| EMERGENCY | str | ✅ | "Emergency" | + + diff --git a/documentation/models/ExtensionUpdateShortResult.md b/documentation/models/ExtensionUpdateShortResult.md new file mode 100644 index 00000000..a5d286c4 --- /dev/null +++ b/documentation/models/ExtensionUpdateShortResult.md @@ -0,0 +1,22 @@ +# ExtensionUpdateShortResult + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------- | :------- | :---------------------------------- | +| extension_id | str | ❌ | Internal identifier of an extension | +| status | ExtensionUpdateShortResultStatus | ❌ | Extension update status | +| errors | List[ErrorEntity] | ❌ | | + +# ExtensionUpdateShortResultStatus + +Extension update status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| FAIL | str | ✅ | "Fail" | +| SUCCESS | str | ✅ | "Success" | + + diff --git a/documentation/models/ExtensionWithRolesCollectionResource.md b/documentation/models/ExtensionWithRolesCollectionResource.md new file mode 100644 index 00000000..51c5d3f5 --- /dev/null +++ b/documentation/models/ExtensionWithRolesCollectionResource.md @@ -0,0 +1,12 @@ +# ExtensionWithRolesCollectionResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | | +| records | List[ExtensionWithRolesResource] | ❌ | | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/ExtensionWithRolesResource.md b/documentation/models/ExtensionWithRolesResource.md new file mode 100644 index 00000000..b051a431 --- /dev/null +++ b/documentation/models/ExtensionWithRolesResource.md @@ -0,0 +1,11 @@ +# ExtensionWithRolesResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| extension_id | str | ❌ | | +| roles | List[AssignedRoleResource] | ❌ | | + + diff --git a/documentation/models/ExternalIntegrationResource.md b/documentation/models/ExternalIntegrationResource.md new file mode 100644 index 00000000..35e326fb --- /dev/null +++ b/documentation/models/ExternalIntegrationResource.md @@ -0,0 +1,14 @@ +# ExternalIntegrationResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| type_id | str | ❌ | | +| type\_ | str | ❌ | | +| display_name | str | ❌ | | +| routing_type | str | ❌ | | +| outbound_edge_id | str | ❌ | | + + diff --git a/documentation/models/FavoriteCollection.md b/documentation/models/FavoriteCollection.md new file mode 100644 index 00000000..b7b2a6ec --- /dev/null +++ b/documentation/models/FavoriteCollection.md @@ -0,0 +1,9 @@ +# FavoriteCollection + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------- | :------- | :---------- | +| records | List[FavoriteContactResource] | ❌ | | + + diff --git a/documentation/models/FavoriteContactList.md b/documentation/models/FavoriteContactList.md new file mode 100644 index 00000000..03b23c42 --- /dev/null +++ b/documentation/models/FavoriteContactList.md @@ -0,0 +1,10 @@ +# FavoriteContactList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| records | List[FavoriteContactResource] | ❌ | | + + diff --git a/documentation/models/FavoriteContactResource.md b/documentation/models/FavoriteContactResource.md new file mode 100644 index 00000000..280bdbed --- /dev/null +++ b/documentation/models/FavoriteContactResource.md @@ -0,0 +1,12 @@ +# FavoriteContactResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| id\_ | int | ❌ | | +| extension_id | str | ❌ | | +| account_id | str | ❌ | | +| contact_id | str | ❌ | | + + diff --git a/documentation/models/FaxCoverPageInfo.md b/documentation/models/FaxCoverPageInfo.md new file mode 100644 index 00000000..8aec1192 --- /dev/null +++ b/documentation/models/FaxCoverPageInfo.md @@ -0,0 +1,10 @@ +# FaxCoverPageInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a fax cover page. The supported value range is 0-13 (for language setting en-US) and 0, 15-28 (for all other languages) | +| name | str | ❌ | Name of a fax cover page pattern | + + diff --git a/documentation/models/FaxErrorCodeEnum.md b/documentation/models/FaxErrorCodeEnum.md new file mode 100644 index 00000000..21602629 --- /dev/null +++ b/documentation/models/FaxErrorCodeEnum.md @@ -0,0 +1,42 @@ +# FaxErrorCodeEnum + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :--- | :------- | :----------------------------- | +| ALLLINESINUSE | str | ✅ | "AllLinesInUse" | +| UNDEFINED | str | ✅ | "Undefined" | +| NOFAXSENDPERMISSION | str | ✅ | "NoFaxSendPermission" | +| NOINTERNATIONALPERMISSION | str | ✅ | "NoInternationalPermission" | +| NOFAXMACHINE | str | ✅ | "NoFaxMachine" | +| NOANSWER | str | ✅ | "NoAnswer" | +| LINEBUSY | str | ✅ | "LineBusy" | +| CALLERHUNGUP | str | ✅ | "CallerHungUp" | +| NOTENOUGHCREDITS | str | ✅ | "NotEnoughCredits" | +| SENTPARTIALLY | str | ✅ | "SentPartially" | +| INTERNATIONALCALLINGDISABLED | str | ✅ | "InternationalCallingDisabled" | +| DESTINATIONCOUNTRYDISABLED | str | ✅ | "DestinationCountryDisabled" | +| UNKNOWNCOUNTRYCODE | str | ✅ | "UnknownCountryCode" | +| NOTACCEPTED | str | ✅ | "NotAccepted" | +| INVALIDNUMBER | str | ✅ | "InvalidNumber" | +| CALLDECLINED | str | ✅ | "CallDeclined" | +| TOOMANYCALLSPERLINE | str | ✅ | "TooManyCallsPerLine" | +| CALLFAILED | str | ✅ | "CallFailed" | +| RENDERINGFAILED | str | ✅ | "RenderingFailed" | +| TOOMANYPAGES | str | ✅ | "TooManyPages" | +| RETURNTODBQUEUE | str | ✅ | "ReturnToDBQueue" | +| NOCALLTIME | str | ✅ | "NoCallTime" | +| WRONGNUMBER | str | ✅ | "WrongNumber" | +| PROHIBITEDNUMBER | str | ✅ | "ProhibitedNumber" | +| INTERNALERROR | str | ✅ | "InternalError" | +| FAXSENDINGPROHIBITED | str | ✅ | "FaxSendingProhibited" | +| THEPHONEISBLACKLISTED | str | ✅ | "ThePhoneIsBlacklisted" | +| USERNOTFOUND | str | ✅ | "UserNotFound" | +| CONVERTERROR | str | ✅ | "ConvertError" | +| DBGENERALERROR | str | ✅ | "DBGeneralError" | +| SKYPEBILLINGFAILED | str | ✅ | "SkypeBillingFailed" | +| ACCOUNTSUSPENDED | str | ✅ | "AccountSuspended" | +| PROHIBITEDDESTINATION | str | ✅ | "ProhibitedDestination" | +| INTERNATIONALDISABLED | str | ✅ | "InternationalDisabled" | + + diff --git a/documentation/models/FaxRequestTo.md b/documentation/models/FaxRequestTo.md new file mode 100644 index 00000000..cdd4f814 --- /dev/null +++ b/documentation/models/FaxRequestTo.md @@ -0,0 +1,10 @@ +# FaxRequestTo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number in E.164 (with '+' sign) format | +| name | str | ❌ | Name of a fax recipient that will be listed on a fax cover page | + + diff --git a/documentation/models/FaxResolutionEnum.md b/documentation/models/FaxResolutionEnum.md new file mode 100644 index 00000000..bb2bfae3 --- /dev/null +++ b/documentation/models/FaxResolutionEnum.md @@ -0,0 +1,14 @@ +# FaxResolutionEnum + +Fax only. Resolution of a fax message. 'High' for black and +white image scanned at 200 dpi, 'Low' for black and white image scanned +at 100 dpi + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| HIGH | str | ✅ | "High" | +| LOW | str | ✅ | "Low" | + + diff --git a/documentation/models/FaxResponse.md b/documentation/models/FaxResponse.md new file mode 100644 index 00000000..dc998efe --- /dev/null +++ b/documentation/models/FaxResponse.md @@ -0,0 +1,35 @@ +# FaxResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a message | +| uri | str | ❌ | Canonical URI of a message | +| type\_ | FaxResponseType | ❌ | Message type - 'Fax' | +| from\_ | MessageStoreCallerInfoResponseFrom | ❌ | Sender information | +| to | List[FaxResponseTo] | ❌ | Recipient information | +| creation_time | str | ❌ | Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| read_status | MessageReadStatusEnum | ❌ | Message read status | +| priority | MessagePriorityEnum | ❌ | Message priority | +| attachments | List[MessageAttachmentInfoIntId] | ❌ | List of message attachments | +| direction | MessageDirectionEnum | ❌ | Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound | +| availability | MessageAvailabilityEnum | ❌ | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| fax_resolution | FaxResolutionEnum | ❌ | Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi | +| fax_page_count | int | ❌ | Page count in a fax message | +| last_modified_time | str | ❌ | Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| cover_index | int | ❌ | Cover page identifier. If `coverIndex` is set to '0' (zero), a cover page is not attached. For a list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') | +| cover_page_text | str | ❌ | Cover page text, entered by a fax sender and printed on a cover page. Maximum length is limited to 1024 symbols | + +# FaxResponseType + +Message type - 'Fax' + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | + + diff --git a/documentation/models/FaxResponseTo.md b/documentation/models/FaxResponseTo.md new file mode 100644 index 00000000..93d5f666 --- /dev/null +++ b/documentation/models/FaxResponseTo.md @@ -0,0 +1,13 @@ +# FaxResponseTo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| recipient_id | str | ❌ | Internal identifier of a fax recipient | +| phone_number | str | ❌ | Phone number in E.164 (with '+' sign) format | +| name | str | ❌ | Name of a fax recipient listed on a fax cover page | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| location | str | ❌ | Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) | + + diff --git a/documentation/models/FeatureInfo.md b/documentation/models/FeatureInfo.md new file mode 100644 index 00000000..ce371cd4 --- /dev/null +++ b/documentation/models/FeatureInfo.md @@ -0,0 +1,12 @@ +# FeatureInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a feature | +| available | bool | ❌ | Specifies if the feature is available for the current user according to services enabled for the account, type, entitlements and permissions of the extension. If the authorized user gets features of the other extension, only features that can be delegated are returned (such as configuration by administrators). | +| params | List[ParamsInfo] | ❌ | | +| reason | ReasonInfo | ❌ | Reason for the feature unavailability. Returned only if `available` is set to `false` | + + diff --git a/documentation/models/FeatureList.md b/documentation/models/FeatureList.md new file mode 100644 index 00000000..cbfa7bf9 --- /dev/null +++ b/documentation/models/FeatureList.md @@ -0,0 +1,9 @@ +# FeatureList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------- | :------- | :---------- | +| records | List[FeatureInfo] | ❌ | | + + diff --git a/documentation/models/FederatedAccountResource.md b/documentation/models/FederatedAccountResource.md new file mode 100644 index 00000000..c4f3b875 --- /dev/null +++ b/documentation/models/FederatedAccountResource.md @@ -0,0 +1,14 @@ +# FederatedAccountResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------ | :------- | :---------- | +| id\_ | str | ✅ | | +| company_name | str | ❌ | | +| conflict_count | int | ❌ | | +| federated_name | str | ❌ | | +| link_creation_time | str | ❌ | | +| main_number | PhoneNumberResource | ❌ | | + + diff --git a/documentation/models/FederationResource.md b/documentation/models/FederationResource.md new file mode 100644 index 00000000..981111c7 --- /dev/null +++ b/documentation/models/FederationResource.md @@ -0,0 +1,14 @@ +# FederationResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------------- | :------- | :-------------- | +| accounts | List[FederatedAccountResource] | ❌ | | +| creation_time | str | ❌ | | +| display_name | str | ❌ | | +| id\_ | str | ❌ | | +| last_modified_time | str | ❌ | | +| type\_ | FederationType | ❌ | Federation type | + + diff --git a/documentation/models/FederationType.md b/documentation/models/FederationType.md new file mode 100644 index 00000000..42c6eb26 --- /dev/null +++ b/documentation/models/FederationType.md @@ -0,0 +1,12 @@ +# FederationType + +Federation type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| REGULAR | str | ✅ | "Regular" | +| ADMINONLY | str | ✅ | "AdminOnly" | + + diff --git a/documentation/models/FederationTypes.md b/documentation/models/FederationTypes.md new file mode 100644 index 00000000..4b46a73e --- /dev/null +++ b/documentation/models/FederationTypes.md @@ -0,0 +1,13 @@ +# FederationTypes + +Federation types for search + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| ALL | str | ✅ | "All" | +| REGULAR | str | ✅ | "Regular" | +| ADMINONLY | str | ✅ | "AdminOnly" | + + diff --git a/documentation/models/FixedAnswerModel.md b/documentation/models/FixedAnswerModel.md new file mode 100644 index 00000000..cd71ecc4 --- /dev/null +++ b/documentation/models/FixedAnswerModel.md @@ -0,0 +1,10 @@ +# FixedAnswerModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------- | :------- | :------------------------ | +| question_id | str | ✅ | ID of the custom question | +| answer_ids | List[str] | ✅ | The list of answer IDs | + + diff --git a/documentation/models/FixedOrderAgents.md b/documentation/models/FixedOrderAgents.md new file mode 100644 index 00000000..4e2f155b --- /dev/null +++ b/documentation/models/FixedOrderAgents.md @@ -0,0 +1,10 @@ +# FixedOrderAgents + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :---------------------------- | :------- | :-------------------------------------- | +| extension | FixedOrderAgentsExtensionInfo | ❌ | | +| index | int | ❌ | Ordinal of an agent (call queue member) | + + diff --git a/documentation/models/FixedOrderAgentsExtensionInfo.md b/documentation/models/FixedOrderAgentsExtensionInfo.md new file mode 100644 index 00000000..7db68c1c --- /dev/null +++ b/documentation/models/FixedOrderAgentsExtensionInfo.md @@ -0,0 +1,12 @@ +# FixedOrderAgentsExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Number of extension | +| name | str | ❌ | Name of agent extension | + + diff --git a/documentation/models/FormattingLocaleInfo.md b/documentation/models/FormattingLocaleInfo.md new file mode 100644 index 00000000..d77b1677 --- /dev/null +++ b/documentation/models/FormattingLocaleInfo.md @@ -0,0 +1,13 @@ +# FormattingLocaleInfo + +Formatting language preferences for numbers, dates and currencies + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a formatting language | +| locale_code | str | ❌ | Localization code of a formatting language | +| name | str | ❌ | Official name of a formatting language | + + diff --git a/documentation/models/ForwardAllCallsReason.md b/documentation/models/ForwardAllCallsReason.md new file mode 100644 index 00000000..6e6a01d4 --- /dev/null +++ b/documentation/models/ForwardAllCallsReason.md @@ -0,0 +1,22 @@ +# ForwardAllCallsReason + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| code | ForwardAllCallsReasonCode | ❌ | Specifies the type of limitation. `ExtensionLimitation` means that the feature is turned off for this particular extension. `FeatureLimitation` means that the user may enable this feature and setup the rule via the Service Web UI | +| message | str | ❌ | Error message depending on the type of limitation | + +# ForwardAllCallsReasonCode + +Specifies the type of limitation. `ExtensionLimitation` means that the feature is turned off for this particular extension. +`FeatureLimitation` means that the user may enable this feature and setup the rule via the Service Web UI + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| EXTENSIONLIMITATION | str | ✅ | "ExtensionLimitation" | +| FEATURELIMITATION | str | ✅ | "FeatureLimitation" | + + diff --git a/documentation/models/ForwardAllCompanyCallsInfo.md b/documentation/models/ForwardAllCompanyCallsInfo.md new file mode 100644 index 00000000..0917894c --- /dev/null +++ b/documentation/models/ForwardAllCompanyCallsInfo.md @@ -0,0 +1,13 @@ +# ForwardAllCompanyCallsInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| enabled | bool | ❌ | Indicates whether the _Forward All Company Calls_ feature is enabled or disabled for an account | +| ranges | List[RangesInfo] | ❌ | Specific data ranges. If specified, weeklyRanges cannot be specified | +| call_handling_action | IvrCallHandlingActionEnum | ❌ | Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] | +| extension | ExtensionShortInfoResource | ❌ | | +| reason | ForwardAllCallsReason | ❌ | | + + diff --git a/documentation/models/ForwardAllCompanyCallsRequest.md b/documentation/models/ForwardAllCompanyCallsRequest.md new file mode 100644 index 00000000..86224e73 --- /dev/null +++ b/documentation/models/ForwardAllCompanyCallsRequest.md @@ -0,0 +1,9 @@ +# ForwardAllCompanyCallsRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------------------------------------------------- | +| enabled | bool | ✅ | Indicates whether the _Forward All Company Calls_ feature is enabled or disabled for an account | + + diff --git a/documentation/models/ForwardCallPartyResponse.md b/documentation/models/ForwardCallPartyResponse.md new file mode 100644 index 00000000..38671147 --- /dev/null +++ b/documentation/models/ForwardCallPartyResponse.md @@ -0,0 +1,67 @@ +# ForwardCallPartyResponse + +Information on a party of a call session + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a party | +| status | CallStatusInfo | ❌ | Status data of a call session | +| muted | bool | ❌ | Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces | +| stand_alone | bool | ❌ | If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session | +| park | ParkInfo | ❌ | Call park information | +| from\_ | PartyInfo | ❌ | | +| to | PartyInfo | ❌ | | +| owner | OwnerInfo | ❌ | Deprecated. Information on a call owner | +| direction | ForwardCallPartyResponseDirection | ❌ | Direction of a call | +| conference_role | ForwardCallPartyResponseConferenceRole | ❌ | A party's role in the conference scenarios. For calls of 'Conference' type only | +| ring_out_role | ForwardCallPartyResponseRingOutRole | ❌ | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only | +| ring_me_role | ForwardCallPartyResponseRingMeRole | ❌ | A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only | +| recordings | List[RecordingInfo] | ❌ | Active recordings list | + +# ForwardCallPartyResponseDirection + +Direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + +# ForwardCallPartyResponseConferenceRole + +A party's role in the conference scenarios. For calls of 'Conference' type only + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| HOST | str | ✅ | "Host" | +| PARTICIPANT | str | ✅ | "Participant" | + +# ForwardCallPartyResponseRingOutRole + +A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INITIATOR | str | ✅ | "Initiator" | +| TARGET | str | ✅ | "Target" | + +# ForwardCallPartyResponseRingMeRole + +A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| INITIATOR | str | ✅ | "Initiator" | +| TARGET | str | ✅ | "Target" | + + diff --git a/documentation/models/ForwardTarget.md b/documentation/models/ForwardTarget.md new file mode 100644 index 00000000..bcbe5b30 --- /dev/null +++ b/documentation/models/ForwardTarget.md @@ -0,0 +1,14 @@ +# ForwardTarget + +Identifier of a call party the call will be forwarded to. Only **one of** these parameters: +`phoneNumber`, `voicemail` or `extensionNumber` must be specified, otherwise an error is returned. + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------- | +| phone_number | str | ❌ | Phone number | +| voicemail | str | ❌ | Voicemail owner extension identifier | +| extension_number | str | ❌ | Extension short number | + + diff --git a/documentation/models/ForwardingInfo.md b/documentation/models/ForwardingInfo.md new file mode 100644 index 00000000..af59c815 --- /dev/null +++ b/documentation/models/ForwardingInfo.md @@ -0,0 +1,29 @@ +# ForwardingInfo + +Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| notify_my_soft_phones | bool | ❌ | Specifies if the user's softphone(s) are notified before forwarding the incoming call to desk phones and forwarding numbers | +| notify_admin_soft_phones | bool | ❌ | Deprecated parameter. Specifies if the administrator's softphone is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is `false` | +| soft_phones_ring_count | int | ❌ | Number of rings before forwarding starts | +| soft_phones_always_ring | bool | ❌ | Specifies that desktop and mobile applications of the user will ring till the end of their forwarding list. If set to `true` then `softPhonesRingCount` is ignored | +| ringing_mode | ForwardingInfoRingingMode | ❌ | Specifies the order in which the forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ring all at the same time | +| rules | List[ForwardingRuleInfo] | ❌ | Information on a call forwarding rule | +| soft_phones_position_top | bool | ❌ | Specifies if desktop and mobile applications of the user are notified before (true) or after (false) forwarding the incoming call to desk phones and forwarding numbers. Applicable only if `notifyMySoftPhones` parameter is set to `true` | +| mobile_timeout | bool | ❌ | Deprecated parameter. Specifies if mobile timeout is activated for the rule | + +# ForwardingInfoRingingMode + +Specifies the order in which the forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ring all at the same time + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| SEQUENTIALLY | str | ✅ | "Sequentially" | +| SIMULTANEOUSLY | str | ✅ | "Simultaneously" | + + diff --git a/documentation/models/ForwardingInfoCreateRuleRequest.md b/documentation/models/ForwardingInfoCreateRuleRequest.md new file mode 100644 index 00000000..851ad593 --- /dev/null +++ b/documentation/models/ForwardingInfoCreateRuleRequest.md @@ -0,0 +1,28 @@ +# ForwardingInfoCreateRuleRequest + +Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :----------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_my_soft_phones | bool | ❌ | Specifies if the first ring on desktop/mobile apps is enabled. The default value is `true` | +| notify_admin_soft_phones | bool | ❌ | Deprecated parameter. Specifies if the administrator's softphone (desktop application) is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is `true`. | +| soft_phones_ring_count | int | ❌ | Specifies delay between ring on apps and starting of a call forwarding. To activate this parameter use the value > 0, and turn off the `softPhonesAlwaysRing` setting. If the value is 1 or 0, the `softPhonesAlwaysRing` setting cannot be turned off | +| soft_phones_always_ring | bool | ❌ | Specifies that desktop and mobile applications of the user will ring till the end of their forwarding list. If set to `true` then `softPhonesRingCount` is ignored | +| ringing_mode | ForwardingInfoCreateRuleRequestRingingMode | ❌ | Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ringing all at the same time. The default value is 'Sequentially' | +| rules | List[ForwardingRuleCreateRequest] | ❌ | Information on a call forwarding rule | +| mobile_timeout | bool | ❌ | Deprecated parameter. Specifies if mobile timeout is activated for the rule | + +# ForwardingInfoCreateRuleRequestRingingMode + +Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ringing all at the same time. The default value is 'Sequentially' + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| SEQUENTIALLY | str | ✅ | "Sequentially" | +| SIMULTANEOUSLY | str | ✅ | "Simultaneously" | + + diff --git a/documentation/models/ForwardingNumberId.md b/documentation/models/ForwardingNumberId.md new file mode 100644 index 00000000..3d772e8e --- /dev/null +++ b/documentation/models/ForwardingNumberId.md @@ -0,0 +1,9 @@ +# ForwardingNumberId + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :------------------- | +| forwarding_number_id | str | ❌ | Forwarding number id | + + diff --git a/documentation/models/ForwardingNumberInfo.md b/documentation/models/ForwardingNumberInfo.md new file mode 100644 index 00000000..caf7f228 --- /dev/null +++ b/documentation/models/ForwardingNumberInfo.md @@ -0,0 +1,56 @@ +# ForwardingNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a forwarding/call flip phone number | +| uri | str | ❌ | Canonical URI of a forwarding/call flip phone number | +| phone_number | str | ❌ | Forwarding/Call flip phone number | +| label | str | ❌ | Forwarding/Call flip number title | +| features | List[ForwardingNumberInfoFeatures] | ❌ | Type of option this phone number is used for. Multiple values are accepted | +| flip_number | str | ❌ | Number assigned to the call flip phone number, corresponds to the shortcut dial number | +| device | CreateForwardingNumberDeviceInfo | ❌ | Forwarding device information. Applicable for 'PhoneLine' type only. Cannot be specified together with 'phoneNumber' parameter | +| type\_ | ForwardingNumberInfoType | ❌ | Forwarding phone number type | +| extension | ForwardingNumberInfoExtension | ❌ | Extension information. Returned only if extension type is 'ExtensionApps' | + +# ForwardingNumberInfoFeatures + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| CALLFLIP | str | ✅ | "CallFlip" | +| CALLFORWARDING | str | ✅ | "CallForwarding" | + +# ForwardingNumberInfoType + +Forwarding phone number type + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| PHONELINE | str | ✅ | "PhoneLine" | +| OUTAGE | str | ✅ | "Outage" | +| OTHER | str | ✅ | "Other" | +| BUSINESSMOBILEPHONE | str | ✅ | "BusinessMobilePhone" | +| EXTERNALCARRIER | str | ✅ | "ExternalCarrier" | +| EXTENSIONAPPS | str | ✅ | "ExtensionApps" | + +# ForwardingNumberInfoExtension + +Extension information. Returned only if extension type is 'ExtensionApps' + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| extension_number | str | ❌ | Number of an extension | +| name | str | ❌ | Extension name | + + diff --git a/documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md b/documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md new file mode 100644 index 00000000..8a1e4a2d --- /dev/null +++ b/documentation/models/ForwardingNumberInfoRulesCreateRuleRequest.md @@ -0,0 +1,30 @@ +# ForwardingNumberInfoRulesCreateRuleRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--------------------------------------------- | :------- | :----------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a forwarding number | +| type\_ | ForwardingNumberInfoRulesCreateRuleRequestType | ❌ | Forwarding phone number type | +| phone_number | str | ❌ | Forwarding/Call flip phone number | +| label | str | ❌ | Forwarding/Call flip number title | + +# ForwardingNumberInfoRulesCreateRuleRequestType + +Forwarding phone number type + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| PHONELINE | str | ✅ | "PhoneLine" | +| OUTAGE | str | ✅ | "Outage" | +| OTHER | str | ✅ | "Other" | +| BUSINESSMOBILEPHONE | str | ✅ | "BusinessMobilePhone" | +| EXTERNALCARRIER | str | ✅ | "ExternalCarrier" | +| EXTENSIONAPPS | str | ✅ | "ExtensionApps" | + + diff --git a/documentation/models/ForwardingNumberResource.md b/documentation/models/ForwardingNumberResource.md new file mode 100644 index 00000000..dfd9a156 --- /dev/null +++ b/documentation/models/ForwardingNumberResource.md @@ -0,0 +1,39 @@ +# ForwardingNumberResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------- | :------- | :--------------------------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| phone_number | str | ❌ | | +| label | str | ❌ | | +| features | List[ForwardingNumberResourceFeatures] | ❌ | | +| flip_number | str | ❌ | | +| type\_ | ForwardingNumberResourceType | ❌ | Forwarding phone number type | + +# ForwardingNumberResourceFeatures + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| CALLFLIP | str | ✅ | "CallFlip" | +| CALLFORWARDING | str | ✅ | "CallForwarding" | + +# ForwardingNumberResourceType + +Forwarding phone number type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| PHONELINE | str | ✅ | "PhoneLine" | +| OUTAGE | str | ✅ | "Outage" | +| OTHER | str | ✅ | "Other" | + + diff --git a/documentation/models/ForwardingRuleCreateRequest.md b/documentation/models/ForwardingRuleCreateRequest.md new file mode 100644 index 00000000..89ae3f70 --- /dev/null +++ b/documentation/models/ForwardingRuleCreateRequest.md @@ -0,0 +1,12 @@ +# ForwardingRuleCreateRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------- | +| index | int | ❌ | Forwarding number (or group) ordinal. Not returned for inactive numbers | +| ring_count | int | ❌ | Number of rings for a forwarding number (or group). For inactive numbers the default value ('4') is returned | +| enabled | bool | ❌ | Phone number status | +| forwarding_numbers | List[ForwardingNumberInfoRulesCreateRuleRequest] | ❌ | Forwarding number (or group) data | + + diff --git a/documentation/models/ForwardingRuleInfo.md b/documentation/models/ForwardingRuleInfo.md new file mode 100644 index 00000000..6be33ca8 --- /dev/null +++ b/documentation/models/ForwardingRuleInfo.md @@ -0,0 +1,12 @@ +# ForwardingRuleInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------------- | :------- | :-------------------------------------------------------------------------------- | +| index | int | ❌ | Forwarding number (or group) ordinal | +| ring_count | int | ❌ | Number of rings for a forwarding number (or group) | +| enabled | bool | ❌ | Forwarding number status. Returned only if `showInactiveNumbers` is set to `true` | +| forwarding_numbers | List[CreateAnsweringRuleForwardingNumberInfo] | ❌ | Forwarding number (or group) data | + + diff --git a/documentation/models/GetAccountInfoResponse.md b/documentation/models/GetAccountInfoResponse.md new file mode 100644 index 00000000..bc1bd2f3 --- /dev/null +++ b/documentation/models/GetAccountInfoResponse.md @@ -0,0 +1,37 @@ +# GetAccountInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an account | +| uri | str | ❌ | Canonical URI of an account | +| bsid | str | ❌ | Internal identifier of an account in the billing system | +| main_number | str | ❌ | Main phone number of the current account | +| operator | AccountOperatorInfo | ❌ | Operator extension information. This extension will receive all calls and messages addressed to an operator. | +| partner_id | str | ❌ | Additional account identifier, created by partner application and applied on client side | +| service_info | ServiceInfo | ❌ | Account service information, including brand, sub-brand, service plan and billing plan | +| setup_wizard_state | SetupWizardStateEnum | ❌ | Initial configuration wizard state | +| signup_info | SignupInfoResource | ❌ | Account sign up data | +| status | GetAccountInfoResponseStatus | ❌ | Status of the current account | +| status_info | AccountStatusInfo | ❌ | Optional information to be used when account is moved to "Disabled" status | +| regional_settings | AccountRegionalSettings | ❌ | Account level region data (web service Auto-Receptionist settings) | +| federated | bool | ❌ | Specifies whether an account is included into any federation of accounts or not | +| outbound_call_prefix | int | ❌ | If outbound call prefix is not specified, or set to null (0), then the parameter is not returned; the supported value range is 2-9 | +| cfid | str | ❌ | Customer facing identifier. Returned for accounts with the turned off PBX features. Equals to main company number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (without "+" sign)format | +| limits | AccountLimits | ❌ | Limits which are effective for the account | + +# GetAccountInfoResponseStatus + +Status of the current account + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| INITIAL | str | ✅ | "Initial" | +| CONFIRMED | str | ✅ | "Confirmed" | +| UNCONFIRMED | str | ✅ | "Unconfirmed" | +| DISABLED | str | ✅ | "Disabled" | + + diff --git a/documentation/models/GetCallRecordingResponse.md b/documentation/models/GetCallRecordingResponse.md new file mode 100644 index 00000000..06ebe8ad --- /dev/null +++ b/documentation/models/GetCallRecordingResponse.md @@ -0,0 +1,12 @@ +# GetCallRecordingResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a call recording | +| content_uri | str | ✅ | Link to a call recording binary content. Has to be retrieved with proper authorization (access token must be passed via `Authorization` header or query parameter) | +| content_type | str | ✅ | Call recording file MIME format. Supported format is `audio/wav` and `audio/mpeg` | +| duration | int | ✅ | Recorded call duration | + + diff --git a/documentation/models/GetConferencingInfoResponse.md b/documentation/models/GetConferencingInfoResponse.md new file mode 100644 index 00000000..1a97e822 --- /dev/null +++ b/documentation/models/GetConferencingInfoResponse.md @@ -0,0 +1,17 @@ +# GetConferencingInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :-------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI of a conferencing | +| allow_join_before_host | bool | ❌ | Determines if host user allows conference participants to join before the host | +| host_code | str | ❌ | Access code for a host user | +| mode | str | ❌ | Internal parameter specifying a conferencing engine | +| participant_code | str | ❌ | Access code for any participant | +| phone_number | str | ❌ | Primary conference phone number for user's home country returned in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| support_uri | str | ❌ | Link to a branded support page | +| tap_to_join_uri | str | ❌ | Short URL leading to the service web page Tap to Join for audio conference bridge | +| phone_numbers | List[PhoneNumberInfoConferencing] | ❌ | List of multiple dial-in phone numbers to connect to audio conference service, relevant for the user's brand. Each number is given with the country and location information, in order to let the user choose less expensive way to connect to a conference. The first number in the list is a primary conference number, that is default and domestic | + + diff --git a/documentation/models/GetCountryInfoNumberParser.md b/documentation/models/GetCountryInfoNumberParser.md new file mode 100644 index 00000000..2648ec7e --- /dev/null +++ b/documentation/models/GetCountryInfoNumberParser.md @@ -0,0 +1,13 @@ +# GetCountryInfoNumberParser + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | +| calling_code | str | ❌ | Country calling code defined by ITU-T recommendations `E.123` and `E.164`, see Calling Codes | +| iso_code | str | ❌ | Country code in `ISO 3166` alpha-2 format | +| name | str | ❌ | The official name of the country. | + + diff --git a/documentation/models/GetExtensionAccountInfo.md b/documentation/models/GetExtensionAccountInfo.md new file mode 100644 index 00000000..2d96a5d5 --- /dev/null +++ b/documentation/models/GetExtensionAccountInfo.md @@ -0,0 +1,12 @@ +# GetExtensionAccountInfo + +Account information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------- | +| id\_ | str | ❌ | Internal identifier of an account | +| uri | str | ❌ | Canonical URI of an account resource | + + diff --git a/documentation/models/GetExtensionDevicesResponse.md b/documentation/models/GetExtensionDevicesResponse.md new file mode 100644 index 00000000..a25debe5 --- /dev/null +++ b/documentation/models/GetExtensionDevicesResponse.md @@ -0,0 +1,12 @@ +# GetExtensionDevicesResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| records | List[DeviceResource] | ✅ | List of extension devices | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to a list of extension devices | + + diff --git a/documentation/models/GetExtensionEmergencyLocationsOrderBy.md b/documentation/models/GetExtensionEmergencyLocationsOrderBy.md new file mode 100644 index 00000000..2c686119 --- /dev/null +++ b/documentation/models/GetExtensionEmergencyLocationsOrderBy.md @@ -0,0 +1,20 @@ +# GetExtensionEmergencyLocationsOrderBy + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------- | +| \_NAME | str | ✅ | "+name" | +| \_SITENAME | str | ✅ | "+siteName" | +| \_ADDRESS | str | ✅ | "+address" | +| \_ADDRESSSTATUS | str | ✅ | "+addressStatus" | +| \_USAGESTATUS | str | ✅ | "+usageStatus" | +| \_VISIBILITY | str | ✅ | "+visibility" | +| \_NAME | str | ✅ | "-name" | +| \_SITENAME | str | ✅ | "-siteName" | +| \_ADDRESS | str | ✅ | "-address" | +| \_ADDRESSSTATUS | str | ✅ | "-addressStatus" | +| \_USAGESTATUS | str | ✅ | "-usageStatus" | +| \_VISIBILITY | str | ✅ | "-visibility" | + + diff --git a/documentation/models/GetExtensionForwardingNumberListResponse.md b/documentation/models/GetExtensionForwardingNumberListResponse.md new file mode 100644 index 00000000..8d1f72aa --- /dev/null +++ b/documentation/models/GetExtensionForwardingNumberListResponse.md @@ -0,0 +1,12 @@ +# GetExtensionForwardingNumberListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to the forwarding number list resource | +| records | List[ForwardingNumberInfo] | ❌ | List of forwarding phone numbers | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/GetExtensionGrantListResponse.md b/documentation/models/GetExtensionGrantListResponse.md new file mode 100644 index 00000000..e7b487f0 --- /dev/null +++ b/documentation/models/GetExtensionGrantListResponse.md @@ -0,0 +1,12 @@ +# GetExtensionGrantListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| records | List[GrantInfo] | ✅ | List of extension grants with details | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the list of extension grants | + + diff --git a/documentation/models/GetExtensionInfoResponse.md b/documentation/models/GetExtensionInfoResponse.md new file mode 100644 index 00000000..d4b16be5 --- /dev/null +++ b/documentation/models/GetExtensionInfoResponse.md @@ -0,0 +1,97 @@ +# GetExtensionInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| account | GetExtensionAccountInfo | ❌ | Account information | +| contact | ContactInfo | ❌ | Detailed contact information | +| cost_center | CostCenterInfo | ❌ | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | +| custom_fields | List[CustomFieldInfo] | ❌ | | +| departments | List[DepartmentInfo] | ❌ | Information on department extension(s), to which the requested extension belongs. Returned only for user extensions, members of department, requested by single extensionId. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| extension_number | str | ❌ | Extension short number | +| extension_numbers | List[str] | ❌ | | +| name | str | ❌ | Extension name. For user extension types the value is a combination of the specified first name and last name | +| partner_id | str | ❌ | For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | +| permissions | ExtensionPermissions | ❌ | Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' | +| profile_image | ProfileImageInfo | ❌ | Information on profile image | +| references | List[ReferenceInfo] | ❌ | List of non-RC internal identifiers assigned to an extension | +| roles | List[Roles] | ❌ | | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| service_features | List[ExtensionServiceFeatureInfo] | ❌ | Extension service features is returned in response only when the logged-in user requests their own extension info, see also Extension Service Features | +| setup_wizard_state | SetupWizardStateForUpdateEnum | ❌ | Initial configuration wizard state | +| status | GetExtensionInfoResponseStatus | ❌ | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| status_info | ExtensionStatusInfo | ❌ | Status information (reason, comment). Returned for 'Disabled' status only | +| type\_ | GetExtensionInfoResponseType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| sub_type | GetExtensionInfoResponseSubType | ❌ | Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned | +| call_queue_info | CallQueueExtensionInfo | ❌ | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| hidden | bool | ❌ | Hides extension from showing in company directory. Supported for extensions of User type only | +| site | ProvisioningSiteInfo | ❌ | Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` | +| assigned_country | AssignedCountryInfo | ❌ | Information on a country assigned to an extension user. Returned for the User extension type only | + +# GetExtensionInfoResponseStatus + +Extension current state. If 'Unassigned' is specified, then +extensions without `extensionNumber` are returned. If not specified, +then all extensions are returned + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| FROZEN | str | ✅ | "Frozen" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + +# GetExtensionInfoResponseType + +Extension type. Please note that legacy 'Department' extension type +corresponds to 'Call Queue' extensions in modern RingCentral product +terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| BOT | str | ✅ | "Bot" | +| ROOM | str | ✅ | "Room" | +| ROOMCONNECTOR | str | ✅ | "RoomConnector" | +| LIMITED | str | ✅ | "Limited" | +| SITE | str | ✅ | "Site" | +| PROXYADMIN | str | ✅ | "ProxyAdmin" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | + +# GetExtensionInfoResponseSubType + +Extension subtype, if applicable. For any unsupported subtypes the +`Unknown` value will be returned + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| VIDEOPRO | str | ✅ | "VideoPro" | +| VIDEOPROPLUS | str | ✅ | "VideoProPlus" | +| DIGITALSIGNAGE | str | ✅ | "DigitalSignage" | +| UNKNOWN | str | ✅ | "Unknown" | +| EMERGENCY | str | ✅ | "Emergency" | + + diff --git a/documentation/models/GetExtensionListInfoResponse.md b/documentation/models/GetExtensionListInfoResponse.md new file mode 100644 index 00000000..58bb15ce --- /dev/null +++ b/documentation/models/GetExtensionListInfoResponse.md @@ -0,0 +1,85 @@ +# GetExtensionListInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| contact | ContactInfo | ❌ | Detailed contact information | +| extension_number | str | ❌ | Extension short number | +| name | str | ❌ | Extension name. For user extension types the value is a combination of the specified first name and last name | +| permissions | ExtensionPermissions | ❌ | Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' | +| profile_image | ProfileImageInfo | ❌ | Information on profile image | +| status | GetExtensionListInfoResponseStatus | ❌ | Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned | +| type\_ | GetExtensionListInfoResponseType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| sub_type | GetExtensionListInfoResponseSubType | ❌ | Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned | +| call_queue_info | CallQueueExtensionInfo | ❌ | For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| hidden | bool | ❌ | Hides extension from showing in company directory. Supported for extensions of User type only | +| site | ProvisioningSiteInfo | ❌ | Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` | +| assigned_country | AssignedCountryInfo | ❌ | Information on a country assigned to an extension user. Returned for the User extension type only | +| cost_center | CostCenterInfo | ❌ | Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value | + +# GetExtensionListInfoResponseStatus + +Extension current state. If 'Unassigned' is specified, then +extensions without `extensionNumber` are returned. If not specified, +then all extensions are returned + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| FROZEN | str | ✅ | "Frozen" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + +# GetExtensionListInfoResponseType + +Extension type. Please note that legacy 'Department' extension type +corresponds to 'Call Queue' extensions in modern RingCentral product +terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| BOT | str | ✅ | "Bot" | +| ROOM | str | ✅ | "Room" | +| LIMITED | str | ✅ | "Limited" | +| SITE | str | ✅ | "Site" | +| PROXYADMIN | str | ✅ | "ProxyAdmin" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | + +# GetExtensionListInfoResponseSubType + +Extension subtype, if applicable. For any unsupported subtypes the +`Unknown` value will be returned + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| VIDEOPRO | str | ✅ | "VideoPro" | +| VIDEOPROPLUS | str | ✅ | "VideoProPlus" | +| DIGITALSIGNAGE | str | ✅ | "DigitalSignage" | +| UNKNOWN | str | ✅ | "Unknown" | +| EMERGENCY | str | ✅ | "Emergency" | + + diff --git a/documentation/models/GetExtensionListResponse.md b/documentation/models/GetExtensionListResponse.md new file mode 100644 index 00000000..f5dc111f --- /dev/null +++ b/documentation/models/GetExtensionListResponse.md @@ -0,0 +1,12 @@ +# GetExtensionListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------------- | :------- | :--------------------------------------------- | +| records | List[GetExtensionListInfoResponse] | ✅ | List of extensions with extension information | +| uri | str | ❌ | Link to an extension list resource | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/GetExtensionPhoneNumbersResponse.md b/documentation/models/GetExtensionPhoneNumbersResponse.md new file mode 100644 index 00000000..a300d564 --- /dev/null +++ b/documentation/models/GetExtensionPhoneNumbersResponse.md @@ -0,0 +1,12 @@ +# GetExtensionPhoneNumbersResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :--------------------------------------------- | +| records | List[UserPhoneNumberInfo] | ✅ | List of phone numbers | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the user phone number list resource | + + diff --git a/documentation/models/GetInternalTextMessageInfoResponse.md b/documentation/models/GetInternalTextMessageInfoResponse.md new file mode 100644 index 00000000..024c7b7c --- /dev/null +++ b/documentation/models/GetInternalTextMessageInfoResponse.md @@ -0,0 +1,39 @@ +# GetInternalTextMessageInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a message | +| uri | str | ❌ | Canonical URI of a message | +| attachments | List[MessageAttachmentInfo] | ❌ | The list of message attachments | +| availability | MessageAvailabilityEnum | ❌ | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | +| conversation_id | int | ❌ | SMS and Pager only. Identifier of a conversation that the message belongs to | +| conversation | ConversationInfo | ❌ | SMS and Pager only. Information about a conversation the message belongs to | +| creation_time | str | ❌ | Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| direction | MessageDirectionEnum | ❌ | Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound | +| from\_ | MessageStoreCallerInfoResponseFrom | ❌ | Sender information | +| last_modified_time | str | ❌ | Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| pg_to_department | bool | ❌ | Pager only. `true` if at least one of a message recipients is 'Department' extension | +| priority | MessagePriorityEnum | ❌ | Message priority | +| read_status | MessageReadStatusEnum | ❌ | Message read status | +| subject | str | ❌ | Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment | +| to | List[MessageStoreCallerInfoResponseTo] | ❌ | Recipient information | +| type\_ | GetInternalTextMessageInfoResponseType | ❌ | Message type | + +# GetInternalTextMessageInfoResponseType + +Message type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | +| TEXT | str | ✅ | "Text" | + + diff --git a/documentation/models/GetLocationDeletionMultiResponse.md b/documentation/models/GetLocationDeletionMultiResponse.md new file mode 100644 index 00000000..4b968313 --- /dev/null +++ b/documentation/models/GetLocationDeletionMultiResponse.md @@ -0,0 +1,30 @@ +# GetLocationDeletionMultiResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--------------------------------------- | :------- | :---------- | +| deletion | GetLocationDeletionMultiResponseDeletion | ❌ | | +| reassignment | Reassignment | ❌ | | +| emergency_locations | List[LocationDeletionInfo] | ❌ | | + +# GetLocationDeletionMultiResponseDeletion + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| FORBIDDEN | str | ✅ | "Forbidden" | +| RESTRICTED | str | ✅ | "Restricted" | +| ALLOWED | str | ✅ | "Allowed" | + +# Reassignment + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FORBIDDEN | str | ✅ | "Forbidden" | +| ALLOWED | str | ✅ | "Allowed" | + + diff --git a/documentation/models/GetLocationListResponse.md b/documentation/models/GetLocationListResponse.md new file mode 100644 index 00000000..8d52f0f8 --- /dev/null +++ b/documentation/models/GetLocationListResponse.md @@ -0,0 +1,12 @@ +# GetLocationListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the location list resource | +| records | List[LocationInfo] | ❌ | List of locations | + + diff --git a/documentation/models/GetMessageInfoMultiResponse.md b/documentation/models/GetMessageInfoMultiResponse.md new file mode 100644 index 00000000..a50540b4 --- /dev/null +++ b/documentation/models/GetMessageInfoMultiResponse.md @@ -0,0 +1,11 @@ +# GetMessageInfoMultiResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--------------------- | :------- | :------------------------------------------------- | +| resource_id | str | ✅ | Internal identifier of a resource | +| status | int | ✅ | HTTP status code of an operation on given resource | +| body | GetMessageInfoResponse | ✅ | | + + diff --git a/documentation/models/GetMessageInfoResponse.md b/documentation/models/GetMessageInfoResponse.md new file mode 100644 index 00000000..cd996c99 --- /dev/null +++ b/documentation/models/GetMessageInfoResponse.md @@ -0,0 +1,66 @@ +# GetMessageInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a message | +| uri | str | ❌ | Canonical URI of a message | +| extension_id | str | ❌ | Internal identifier of an extension | +| attachments | List[MessageAttachmentInfo] | ❌ | List of message attachments | +| availability | MessageAvailabilityEnum | ❌ | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | +| conversation_id | int | ❌ | SMS and Pager only. Identifier of a conversation the message belongs to | +| conversation | ConversationInfo | ❌ | SMS and Pager only. Information about a conversation the message belongs to | +| creation_time | str | ❌ | Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| delivery_error_code | str | ❌ | SMS only. Delivery error code returned by gateway | +| direction | MessageDirectionEnum | ❌ | Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound | +| fax_page_count | int | ❌ | Fax only. Page count in a fax message | +| fax_resolution | FaxResolutionEnum | ❌ | Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi | +| from\_ | MessageStoreCallerInfoResponseFrom | ❌ | Sender information | +| last_modified_time | str | ❌ | The date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| pg_to_department | bool | ❌ | Pager only. `true` if at least one of the message recipients is 'Department' extension | +| priority | MessagePriorityEnum | ❌ | Message priority | +| read_status | MessageReadStatusEnum | ❌ | Message read status | +| sms_delivery_time | str | ❌ | SMS only. Date/time when outbound SMS was delivered to recipient's handset in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. It is filled only if a carrier sends a delivery receipt to RingCentral | +| sms_sending_attempts_count | int | ❌ | SMS only. Number of attempts made to send an outbound SMS to the Gateway (if Gateway is temporary unavailable) | +| subject | str | ❌ | Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment | +| to | List[MessageStoreCallerInfoResponseTo] | ❌ | Recipient information | +| type\_ | GetMessageInfoResponseType | ❌ | Message type | +| vm_transcription_status | VmTranscriptionStatus | ❌ | Voicemail only. Status of a voicemail to text transcription. If 'VoicemailToText' feature is not activated for account, the 'NotAvailable' value is returned | +| cover_index | int | ❌ | Cover page identifier. If coverIndex is set to '0' (zero) cover page is not attached. For the list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') | +| cover_page_text | str | ❌ | Cover page text, entered by the fax sender and printed on the cover page. Maximum length is limited to 1024 symbols | + +# GetMessageInfoResponseType + +Message type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | +| TEXT | str | ✅ | "Text" | + +# VmTranscriptionStatus + +Voicemail only. Status of a voicemail to text transcription. +If 'VoicemailToText' feature is not activated for account, +the 'NotAvailable' value is returned + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| NOTAVAILABLE | str | ✅ | "NotAvailable" | +| INPROGRESS | str | ✅ | "InProgress" | +| TIMEDOUT | str | ✅ | "TimedOut" | +| COMPLETED | str | ✅ | "Completed" | +| COMPLETEDPARTIALLY | str | ✅ | "CompletedPartially" | +| FAILED | str | ✅ | "Failed" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/GetMessageList.md b/documentation/models/GetMessageList.md new file mode 100644 index 00000000..a1243859 --- /dev/null +++ b/documentation/models/GetMessageList.md @@ -0,0 +1,12 @@ +# GetMessageList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :--------------------------------------- | +| records | List[GetMessageInfoResponse] | ✅ | List of records with message information | +| navigation | MessagingNavigationInfo | ✅ | Information on navigation | +| paging | MessagingPagingInfo | ✅ | Information on paging | +| uri | str | ❌ | Link to a list of user messages | + + diff --git a/documentation/models/GetMessageSyncResponse.md b/documentation/models/GetMessageSyncResponse.md new file mode 100644 index 00000000..6048bde6 --- /dev/null +++ b/documentation/models/GetMessageSyncResponse.md @@ -0,0 +1,11 @@ +# GetMessageSyncResponse + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--------------------------- | :------- | :------------------------------------------------------- | +| records | List[GetMessageInfoResponse] | ✅ | List of message records with synchronization information | +| sync_info | SyncInfoMessages | ✅ | Sync type, token and time | +| uri | str | ❌ | Link to the message sync resource | + + diff --git a/documentation/models/GetPresenceExtensionInfo.md b/documentation/models/GetPresenceExtensionInfo.md new file mode 100644 index 00000000..981f4d9e --- /dev/null +++ b/documentation/models/GetPresenceExtensionInfo.md @@ -0,0 +1,13 @@ +# GetPresenceExtensionInfo + +Information on extension, for which this presence data is returned + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :--------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Extension number (usually 3 or 4 digits) | + + diff --git a/documentation/models/GetPresenceInfo.md b/documentation/models/GetPresenceInfo.md new file mode 100644 index 00000000..fb662a2a --- /dev/null +++ b/documentation/models/GetPresenceInfo.md @@ -0,0 +1,104 @@ +# GetPresenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :-------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI of a presence info resource | +| allow_see_my_presence | bool | ❌ | If set to `true` - enables other extensions to see the extension presence status | +| caller_id_visibility | GetPresenceInfoCallerIdVisibility | ❌ | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | +| dnd_status | GetPresenceInfoDndStatus | ❌ | Extended DnD (Do not Disturb) status. Cannot be set for Department/Announcement/Voicemail (Take Messages Only)/Fax User/Shared Lines Group/Paging Only Group/IVR Menu/Application Extension/Park Location extensions. The 'DoNotAcceptDepartmentCalls' and 'TakeDepartmentCallsOnly' values are applicable only for extensions - members of a Department; if these values are set for department outsiders, the 400 Bad Request error code is returned. The 'TakeDepartmentCallsOnly' status can be set through the old RingCentral user interface and is available for some migrated accounts only. | +| extension | GetPresenceExtensionInfo | ❌ | Information on extension, for which this presence data is returned | +| message | str | ❌ | Custom status message (as previously published by user) | +| pick_up_calls_on_hold | bool | ❌ | If `true` enables the extension user to pick up a monitored line on hold | +| presence_status | GetPresenceInfoPresenceStatus | ❌ | Aggregated presence status, calculated from a number of sources | +| ring_on_monitored_call | bool | ❌ | If `true` enables to ring extension phone, if any user monitored by this extension is ringing | +| telephony_status | GetPresenceInfoTelephonyStatus | ❌ | Telephony presence status | +| user_status | GetPresenceInfoUserStatus | ❌ | User-defined presence status (as previously published by the user) | +| meeting_status | GetPresenceInfoMeetingStatus | ❌ | RingCentral Meetings presence | +| active_calls | List[ActiveCallInfo] | ❌ | Information on active calls | + +# GetPresenceInfoCallerIdVisibility + +Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, +the following visibility options are supported via this parameter - All, None, PermittedUsers + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| ALL | str | ✅ | "All" | +| NONE | str | ✅ | "None" | +| PERMITTEDUSERS | str | ✅ | "PermittedUsers" | + +# GetPresenceInfoDndStatus + +Extended DnD (Do not Disturb) status. Cannot be set for Department/Announcement/Voicemail +(Take Messages Only)/Fax User/Shared Lines Group/Paging Only Group/IVR +Menu/Application Extension/Park Location extensions. The 'DoNotAcceptDepartmentCalls' +and 'TakeDepartmentCallsOnly' values are applicable only for extensions + +- members of a Department; if these values are set for department outsiders, + the 400 Bad Request error code is returned. The 'TakeDepartmentCallsOnly' + status can be set through the old RingCentral user interface and is available + for some migrated accounts only. + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--- | :------- | :--------------------------- | +| TAKEALLCALLS | str | ✅ | "TakeAllCalls" | +| DONOTACCEPTANYCALLS | str | ✅ | "DoNotAcceptAnyCalls" | +| DONOTACCEPTDEPARTMENTCALLS | str | ✅ | "DoNotAcceptDepartmentCalls" | +| TAKEDEPARTMENTCALLSONLY | str | ✅ | "TakeDepartmentCallsOnly" | + +# GetPresenceInfoPresenceStatus + +Aggregated presence status, calculated from a number of sources + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| BUSY | str | ✅ | "Busy" | +| AVAILABLE | str | ✅ | "Available" | + +# GetPresenceInfoTelephonyStatus + +Telephony presence status + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NOCALL | str | ✅ | "NoCall" | +| CALLCONNECTED | str | ✅ | "CallConnected" | +| RINGING | str | ✅ | "Ringing" | +| ONHOLD | str | ✅ | "OnHold" | +| PARKEDCALL | str | ✅ | "ParkedCall" | + +# GetPresenceInfoUserStatus + +User-defined presence status (as previously published by the user) + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| BUSY | str | ✅ | "Busy" | +| AVAILABLE | str | ✅ | "Available" | + +# GetPresenceInfoMeetingStatus + +RingCentral Meetings presence + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| CONNECTED | str | ✅ | "Connected" | +| DISCONNECTED | str | ✅ | "Disconnected" | + + diff --git a/documentation/models/GetRingOutStatusResponse.md b/documentation/models/GetRingOutStatusResponse.md new file mode 100644 index 00000000..2af6e87e --- /dev/null +++ b/documentation/models/GetRingOutStatusResponse.md @@ -0,0 +1,11 @@ +# GetRingOutStatusResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :---------------- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a RingOut call | +| uri | str | ❌ | Link to a RingOut call resource | +| status | RingOutStatusInfo | ❌ | RingOut status information | + + diff --git a/documentation/models/GetSmsMessageInfoResponse.md b/documentation/models/GetSmsMessageInfoResponse.md new file mode 100644 index 00000000..2cfb6f39 --- /dev/null +++ b/documentation/models/GetSmsMessageInfoResponse.md @@ -0,0 +1,41 @@ +# GetSmsMessageInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | int | ❌ | Internal identifier of a message | +| uri | str | ❌ | Canonical URI of a message | +| attachments | List[MessageAttachmentInfo] | ❌ | List of message attachments | +| availability | MessageAvailabilityEnum | ❌ | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | +| conversation_id | int | ❌ | SMS and Pager only. Identifier of a conversation that the message belongs to | +| conversation | ConversationInfo | ❌ | SMS and Pager only. Information about a conversation the message belongs to | +| creation_time | str | ❌ | Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| delivery_error_code | str | ❌ | SMS only. Delivery error code returned by gateway | +| direction | MessageDirectionEnum | ❌ | Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound | +| from\_ | MessageStoreCallerInfoResponseFrom | ❌ | Sender information | +| last_modified_time | str | ❌ | Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| priority | MessagePriorityEnum | ❌ | Message priority | +| read_status | MessageReadStatusEnum | ❌ | Message read status | +| sms_delivery_time | str | ❌ | SMS only. The date/time when outbound SMS was delivered to recipient's handset in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. It is filled only if the carrier sends a delivery receipt to RingCentral | +| sms_sending_attempts_count | int | ❌ | SMS only. Number of attempts made to send an outbound SMS to the Gateway (if Gateway is temporary unavailable) | +| subject | str | ❌ | Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment | +| to | List[MessageStoreCallerInfoResponseTo] | ❌ | Recipient information | +| type\_ | GetSmsMessageInfoResponseType | ❌ | Message type | + +# GetSmsMessageInfoResponseType + +Message type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | +| TEXT | str | ✅ | "Text" | + + diff --git a/documentation/models/GetStateInfoResponse.md b/documentation/models/GetStateInfoResponse.md new file mode 100644 index 00000000..38b2a4d8 --- /dev/null +++ b/documentation/models/GetStateInfoResponse.md @@ -0,0 +1,13 @@ +# GetStateInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------- | :------- | :---------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a state | +| uri | str | ❌ | Canonical URI of a state | +| country | CountryInfoMinimalModel | ❌ | | +| iso_code | str | ❌ | Short code for a state (2-letter usually) | +| name | str | ❌ | Official name of a state | + + diff --git a/documentation/models/GetStateListResponse.md b/documentation/models/GetStateListResponse.md new file mode 100644 index 00000000..9d159761 --- /dev/null +++ b/documentation/models/GetStateListResponse.md @@ -0,0 +1,12 @@ +# GetStateListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to a states list resource | +| records | List[GetStateInfoResponse] | ❌ | List of states | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/GetTimezoneInfoResponse.md b/documentation/models/GetTimezoneInfoResponse.md new file mode 100644 index 00000000..309cf370 --- /dev/null +++ b/documentation/models/GetTimezoneInfoResponse.md @@ -0,0 +1,13 @@ +# GetTimezoneInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| id\_ | str | ❌ | Internal identifier of a timezone | +| uri | str | ❌ | Canonical URI of a timezone | +| name | str | ❌ | Short name of a timezone | +| description | str | ❌ | Description of a timezone | +| bias | str | ❌ | | + + diff --git a/documentation/models/GetTimezoneListResponse.md b/documentation/models/GetTimezoneListResponse.md new file mode 100644 index 00000000..4c0928fd --- /dev/null +++ b/documentation/models/GetTimezoneListResponse.md @@ -0,0 +1,12 @@ +# GetTimezoneListResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------------- | :------- | :--------------------------------------------- | +| records | List[GetTimezoneInfoResponse] | ✅ | List of timezones | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to the timezone list resource | + + diff --git a/documentation/models/GetTokenRequest.md b/documentation/models/GetTokenRequest.md new file mode 100644 index 00000000..98af46dd --- /dev/null +++ b/documentation/models/GetTokenRequest.md @@ -0,0 +1,503 @@ +# GetTokenRequest + +# GetTokenRequest_1 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest1GrantType | ✅ | Grant type | +| code | str | ❌ | For `authorization_code` grant type only. User's authorization code | +| redirect_uri | str | ❌ | For `authorization_code` grant type only. This is a callback URI which determines where the response is sent. The value of this parameter must exactly match one of the URIs you have provided for your app upon registration | +| code_verifier | str | ❌ | For `authorization_code` grant type only. The code verifier as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| client_assertion_type | GetTokenRequest1ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_1GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_1ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_2 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest2GrantType | ✅ | Grant type | +| username | str | ❌ | For `password` grant type only. User login name: email or phone number in E.164 format | +| password | str | ❌ | For `password` grant type only. User's password | +| extension | str | ❌ | For `password` grant type only. Optional. Extension short number. If a company number is specified as a username, and extension is not specified, the server will attempt to authenticate client as main company administrator DEPRECATED: use extension number embedded into username string like `+16501234567*101` | +| pin | str | ❌ | IVR pin for pin-based authentication. DEPRECATED: use a dedicated `ivr_pin` grant type instead | +| client_assertion_type | GetTokenRequest2ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_2GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_2ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_3 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest3GrantType | ✅ | Grant type | +| assertion | str | ❌ | For `urn:ietf:params:oauth:grant-type:jwt-bearer` or `partner_jwt` grant types only. Authorization grant assertion (JWT) as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.1). | +| client_assertion_type | GetTokenRequest3ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_3GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_3ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_4 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest4GrantType | ✅ | Grant type | +| refresh_token | str | ❌ | For `refresh_token` grant type only. Previously issued refresh token. | +| client_assertion_type | GetTokenRequest4ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_4GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_4ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_5 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest5GrantType | ✅ | Grant type | +| ivr_pin | str | ❌ | For `ivr_pin` grant type only. User's IVR pin. | +| client_assertion_type | GetTokenRequest5ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_5GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_5ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_6 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest6GrantType | ✅ | Grant type | +| device_code | str | ❌ | For `urn:ietf:params:oauth:grant-type:device_code` grant type only. The device verification code as defined by [RFC-8628](https://datatracker.ietf.org/doc/html/rfc8628#section-3.4) | +| client_assertion_type | GetTokenRequest6ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_6GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_6ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_7 + +# GetTokenRequest_7_1 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | RingCentral internal account ID | +| grant_type | GetTokenRequest7_1GrantType | ✅ | Grant type | +| client_assertion_type | GetTokenRequest7_1ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_7_1GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_7_1ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_7_2 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| brand_id | str | ✅ | RingCentral Brand identifier. | +| grant_type | GetTokenRequest7_2GrantType | ✅ | Grant type | +| partner_account_id | str | ❌ | The ID of the account on RingCentral partner's side | +| client_assertion_type | GetTokenRequest7_2ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_7_2GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_7_2ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_8 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest8GrantType | ✅ | Grant type | +| code | str | ❌ | For `otp` grant type only. One-time password code | +| client_assertion_type | GetTokenRequest8ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_8GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_8ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + +# GetTokenRequest_9 + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :---------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grant_type | GetTokenRequest9GrantType | ✅ | Grant type | +| brand_id | str | ❌ | RingCentral Brand identifier. | +| resource_type | str | ❌ | Resource type for the guest access. | +| resource | str | ❌ | Resource URL for the guest access. | +| client_assertion_type | GetTokenRequest9ClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| scope | str | ❌ | The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration | +| client_id | str | ❌ | The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request | +| endpoint_id | str | ❌ | The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used | +| access_token_ttl | int | ❌ | Access token lifetime in seconds | +| refresh_token_ttl | int | ❌ | Refresh token lifetime in seconds | + +# GetTokenRequest_9GrantType + +Grant type + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :--------------------------------------------- | +| AUTHORIZATION_CODE | str | ✅ | "authorization_code" | +| PASSWORD | str | ✅ | "password" | +| REFRESH_TOKEN | str | ✅ | "refresh_token" | +| CLIENT_CREDENTIALS | str | ✅ | "client_credentials" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:grant-type:jwt-bearer" | +| URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE | str | ✅ | "urn:ietf:params:oauth:grant-type:device_code" | +| DEVICE_CERTIFICATE | str | ✅ | "device_certificate" | +| PARTNER_JWT | str | ✅ | "partner_jwt" | +| GUEST | str | ✅ | "guest" | +| PERSONAL_JWT | str | ✅ | "personal_jwt" | +| OTP | str | ✅ | "otp" | +| IVR_PIN | str | ✅ | "ivr_pin" | + +# GetTokenRequest_9ClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + + diff --git a/documentation/models/GetUserBusinessHoursResponse.md b/documentation/models/GetUserBusinessHoursResponse.md new file mode 100644 index 00000000..bcbcdbbf --- /dev/null +++ b/documentation/models/GetUserBusinessHoursResponse.md @@ -0,0 +1,10 @@ +# GetUserBusinessHoursResponse + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | Canonical URI of a business-hours resource | +| schedule | ScheduleInfoUserBusinessHours | ❌ | Schedule when an answering rule is applied | + + diff --git a/documentation/models/GlipDataExportNavigationInfo.md b/documentation/models/GlipDataExportNavigationInfo.md new file mode 100644 index 00000000..a0fa54ae --- /dev/null +++ b/documentation/models/GlipDataExportNavigationInfo.md @@ -0,0 +1,12 @@ +# GlipDataExportNavigationInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------------ | :------- | :---------- | +| first_page | GlipDataExportNavigationInfoUri | ❌ | | +| next_page | GlipDataExportNavigationInfoUri | ❌ | | +| previous_page | GlipDataExportNavigationInfoUri | ❌ | | +| last_page | GlipDataExportNavigationInfoUri | ❌ | | + + diff --git a/documentation/models/GlipDataExportNavigationInfoUri.md b/documentation/models/GlipDataExportNavigationInfoUri.md new file mode 100644 index 00000000..5191c790 --- /dev/null +++ b/documentation/models/GlipDataExportNavigationInfoUri.md @@ -0,0 +1,9 @@ +# GlipDataExportNavigationInfoUri + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------------------- | +| uri | str | ❌ | Canonical URI for the corresponding page of the list | + + diff --git a/documentation/models/GlipDataExportPagingInfo.md b/documentation/models/GlipDataExportPagingInfo.md new file mode 100644 index 00000000..79a2fe7d --- /dev/null +++ b/documentation/models/GlipDataExportPagingInfo.md @@ -0,0 +1,14 @@ +# GlipDataExportPagingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied | +| page_start | int | ❌ | The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty | +| page_end | int | ❌ | The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty | +| total_pages | int | ❌ | The total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | The total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/GlobalDialInCountryResponse.md b/documentation/models/GlobalDialInCountryResponse.md new file mode 100644 index 00000000..efcf6a47 --- /dev/null +++ b/documentation/models/GlobalDialInCountryResponse.md @@ -0,0 +1,12 @@ +# GlobalDialInCountryResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| country_code | str | ❌ | | +| country_name | str | ❌ | | +| checked | bool | ❌ | | +| order | int | ❌ | | + + diff --git a/documentation/models/GrantInfo.md b/documentation/models/GrantInfo.md new file mode 100644 index 00000000..0b152e16 --- /dev/null +++ b/documentation/models/GrantInfo.md @@ -0,0 +1,20 @@ +# GrantInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI of a grant | +| extension | ExtensionInfoGrants | ❌ | Extension information | +| call_pickup | bool | ❌ | Specifies if picking up of other extensions' calls is allowed for the extension. If 'Presence' feature is disabled for the given extension, the flag is not returned | +| call_monitoring | bool | ❌ | Specifies if monitoring of other extensions' calls is allowed for the extension. If 'CallMonitoring' feature is disabled for the given extension, the flag is not returned | +| call_on_behalf_of | bool | ❌ | Specifies whether the current extension is able to make or receive calls on behalf of the user referenced in extension object | +| call_delegation | bool | ❌ | Specifies whether the current extension can delegate a call to the user referenced in extension object | +| group_paging | bool | ❌ | Specifies whether the current extension is allowed to call Paging Only group referenced to in extension object | +| call_queue_setup | bool | ❌ | Specifies whether the current extension is assigned as a Full-Access manager in the call queue referenced in extension object | +| call_queue_members_setup | bool | ❌ | Specifies whether the current extension is assigned as a Members-Only manager in the call queue referenced in extension object | +| call_queue_messages | bool | ❌ | Specifies whether the current extension is assigned as a Messages Manager in the queue referenced in extension object | +| call_queue_fac_setup | bool | ❌ | Specifies whether the current extension is granted _Forward All Calls (FAC)_ permission | +| shared_voicemails | bool | ❌ | Specifies whether the user referenced in extension object is sharing voicemails with the current extension | + + diff --git a/documentation/models/GreetingInfo.md b/documentation/models/GreetingInfo.md new file mode 100644 index 00000000..5a7c3375 --- /dev/null +++ b/documentation/models/GreetingInfo.md @@ -0,0 +1,11 @@ +# GreetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------ | :------- | :----------------------------------------------------------------- | +| type\_ | GreetingTypeEnum | ❌ | Type of greeting, specifying the case when the greeting is played. | +| preset | PresetInfo | ❌ | | +| custom | CustomGreetingInfoRequest | ❌ | | + + diff --git a/documentation/models/GreetingLanguageInfo.md b/documentation/models/GreetingLanguageInfo.md new file mode 100644 index 00000000..ae15dd7d --- /dev/null +++ b/documentation/models/GreetingLanguageInfo.md @@ -0,0 +1,13 @@ +# GreetingLanguageInfo + +Information on language used for telephony greetings + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a greeting language | +| locale_code | str | ❌ | Localization code of a greeting language | +| name | str | ❌ | Official name of a greeting language | + + diff --git a/documentation/models/GreetingResource.md b/documentation/models/GreetingResource.md new file mode 100644 index 00000000..40718b1a --- /dev/null +++ b/documentation/models/GreetingResource.md @@ -0,0 +1,33 @@ +# GreetingResource + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | GreetingResourceType | ❌ | | +| mode | GreetingResourceMode | ❌ | Here `Default` indicates that all greetings of that type (in all languages) are default. If at least one greeting (in any language) of the specified type is custom, then `Custom` is returned. | + +# GreetingResourceType + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | + +# GreetingResourceMode + +Here `Default` indicates that all greetings of that type +(in all languages) are default. If at least one greeting (in any language) +of the specified type is custom, then `Custom` is returned. + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| DEFAULT | str | ✅ | "Default" | +| CUSTOM | str | ✅ | "Custom" | + + diff --git a/documentation/models/GreetingTypeEnum.md b/documentation/models/GreetingTypeEnum.md new file mode 100644 index 00000000..49cd3172 --- /dev/null +++ b/documentation/models/GreetingTypeEnum.md @@ -0,0 +1,26 @@ +# GreetingTypeEnum + +Type of greeting, specifying the case when the greeting is played. + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------- | +| INTRODUCTORY | str | ✅ | "Introductory" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | +| BLOCKEDCALLERSALL | str | ✅ | "BlockedCallersAll" | +| BLOCKEDCALLERSSPECIFIC | str | ✅ | "BlockedCallersSpecific" | +| BLOCKEDNOCALLERID | str | ✅ | "BlockedNoCallerId" | +| BLOCKEDPAYPHONES | str | ✅ | "BlockedPayPhones" | +| CONNECTINGMESSAGE | str | ✅ | "ConnectingMessage" | +| CONNECTINGAUDIO | str | ✅ | "ConnectingAudio" | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNAVAILABLE | str | ✅ | "Unavailable" | +| INTERRUPTPROMPT | str | ✅ | "InterruptPrompt" | +| HOLDMUSIC | str | ✅ | "HoldMusic" | +| COMPANY | str | ✅ | "Company" | + + diff --git a/documentation/models/GreetingsCreateCompanyGreetingRequest1.md b/documentation/models/GreetingsCreateCompanyGreetingRequest1.md new file mode 100644 index 00000000..819d058b --- /dev/null +++ b/documentation/models/GreetingsCreateCompanyGreetingRequest1.md @@ -0,0 +1,27 @@ +# GreetingsCreateCompanyGreetingRequest_1 + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------- | :------- | :----------------------------------------------------------------- | +| type\_ | CreateCompanyGreetingRequestType1 | ✅ | Type of greeting, specifying the case when the greeting is played. | +| binary | any | ✅ | Media file to upload | +| answering_rule | AnsweringRuleQueryRequest | ❌ | | +| language_id | str | ❌ | Internal identifier of a language. See Get Language List | + +# CreateCompanyGreetingRequestType_1 + +Type of greeting, specifying the case when the greeting +is played. + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| COMPANY | str | ✅ | "Company" | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + + diff --git a/documentation/models/GreetingsCreateCompanyGreetingRequest2.md b/documentation/models/GreetingsCreateCompanyGreetingRequest2.md new file mode 100644 index 00000000..c594b7f7 --- /dev/null +++ b/documentation/models/GreetingsCreateCompanyGreetingRequest2.md @@ -0,0 +1,27 @@ +# GreetingsCreateCompanyGreetingRequest_2 + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------------------------------- | :------- | :----------------------------------------------------------------- | +| type\_ | CreateCompanyGreetingRequestType2 | ✅ | Type of greeting, specifying the case when the greeting is played. | +| binary | any | ✅ | Media file to upload | +| answering_rule_id | str | ❌ | Internal identifier of an answering rule | +| language_id | str | ❌ | Internal identifier of a language. See Get Language List | + +# CreateCompanyGreetingRequestType_2 + +Type of greeting, specifying the case when the greeting +is played. + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| COMPANY | str | ✅ | "Company" | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + + diff --git a/documentation/models/GreetingsCreateCustomUserGreetingRequest1.md b/documentation/models/GreetingsCreateCustomUserGreetingRequest1.md new file mode 100644 index 00000000..3075f56e --- /dev/null +++ b/documentation/models/GreetingsCreateCustomUserGreetingRequest1.md @@ -0,0 +1,28 @@ +# GreetingsCreateCustomUserGreetingRequest_1 + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :----------------------------------- | :------- | :----------------------------------------------------------------- | +| type\_ | CreateCustomUserGreetingRequestType1 | ✅ | Type of greeting, specifying the case when the greeting is played. | +| answering_rule | AnsweringRuleQueryRequest | ✅ | | +| binary | any | ✅ | Media file to upload | + +# CreateCustomUserGreetingRequestType_1 + +Type of greeting, specifying the case when the greeting is played. + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| INTRODUCTORY | str | ✅ | "Introductory" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| CONNECTINGMESSAGE | str | ✅ | "ConnectingMessage" | +| CONNECTINGAUDIO | str | ✅ | "ConnectingAudio" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNAVAILABLE | str | ✅ | "Unavailable" | +| HOLDMUSIC | str | ✅ | "HoldMusic" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + + diff --git a/documentation/models/GreetingsCreateCustomUserGreetingRequest2.md b/documentation/models/GreetingsCreateCustomUserGreetingRequest2.md new file mode 100644 index 00000000..004676d4 --- /dev/null +++ b/documentation/models/GreetingsCreateCustomUserGreetingRequest2.md @@ -0,0 +1,28 @@ +# GreetingsCreateCustomUserGreetingRequest_2 + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :----------------------------------- | :------- | :----------------------------------------------------------------- | +| type\_ | CreateCustomUserGreetingRequestType2 | ✅ | Type of greeting, specifying the case when the greeting is played. | +| answering_rule_id | str | ✅ | Internal identifier of an answering rule | +| binary | any | ✅ | Media file to upload | + +# CreateCustomUserGreetingRequestType_2 + +Type of greeting, specifying the case when the greeting is played. + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| INTRODUCTORY | str | ✅ | "Introductory" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| CONNECTINGMESSAGE | str | ✅ | "ConnectingMessage" | +| CONNECTINGAUDIO | str | ✅ | "ConnectingAudio" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNAVAILABLE | str | ✅ | "Unavailable" | +| HOLDMUSIC | str | ✅ | "HoldMusic" | +| TEMPLATEGREETING | str | ✅ | "TemplateGreeting" | + + diff --git a/documentation/models/GroupResource.md b/documentation/models/GroupResource.md new file mode 100644 index 00000000..4e82330b --- /dev/null +++ b/documentation/models/GroupResource.md @@ -0,0 +1,10 @@ +# GroupResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/GroupingByMembers.md b/documentation/models/GroupingByMembers.md new file mode 100644 index 00000000..d40a99ca --- /dev/null +++ b/documentation/models/GroupingByMembers.md @@ -0,0 +1,12 @@ +# GroupingByMembers + +This grouping allows to specify the `groupByMembers` option. The response data will be grouped by users and will only include users that belong to the scope selected in `groupByMembers` field + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| group_by_members | MembersGroupingOptions | ✅ | The selected data scope | +| keys | List[str] | ❌ | This field can be used to further limit the users selection by specifying unique identifiers of corresponding entities. For example, providing unique queue ids along with `Queue` in `groupByMembers` field will limit the response to users that are queue agents in at least one of these queues | + + diff --git a/documentation/models/GroupingOptions.md b/documentation/models/GroupingOptions.md new file mode 100644 index 00000000..74649986 --- /dev/null +++ b/documentation/models/GroupingOptions.md @@ -0,0 +1,19 @@ +# GroupingOptions + +The selected grouping option + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| COMPANY | str | ✅ | "Company" | +| COMPANYNUMBERS | str | ✅ | "CompanyNumbers" | +| USERS | str | ✅ | "Users" | +| QUEUES | str | ✅ | "Queues" | +| IVRS | str | ✅ | "IVRs" | +| SHAREDLINES | str | ✅ | "SharedLines" | +| USERGROUPS | str | ✅ | "UserGroups" | +| SITES | str | ✅ | "Sites" | +| DEPARTMENTS | str | ✅ | "Departments" | + + diff --git a/documentation/models/HoldCallPartyRequest.md b/documentation/models/HoldCallPartyRequest.md new file mode 100644 index 00000000..30eaa9b4 --- /dev/null +++ b/documentation/models/HoldCallPartyRequest.md @@ -0,0 +1,22 @@ +# HoldCallPartyRequest + +**Properties** + +| Name | Type | Required | Description | +| :---- | :---- | :------- | :-------------------------------- | +| proto | Proto | ❌ | Protocol for hold mode initiation | + +# Proto + +Protocol for hold mode initiation + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| AUTO | str | ✅ | "Auto" | +| RC | str | ✅ | "RC" | +| BROADWORKS | str | ✅ | "BroadWorks" | +| DISCONNECTHOLDER | str | ✅ | "DisconnectHolder" | + + diff --git a/documentation/models/HorizontalAlignment.md b/documentation/models/HorizontalAlignment.md new file mode 100644 index 00000000..c4346456 --- /dev/null +++ b/documentation/models/HorizontalAlignment.md @@ -0,0 +1,15 @@ +# HorizontalAlignment + +Describes how the image should be aligned if it must be cropped or if using repeat fill mode + +# HorizontalAlignment_1 + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| LEFT | str | ✅ | "left" | +| CENTER | str | ✅ | "center" | +| RIGHT | str | ✅ | "right" | + + diff --git a/documentation/models/Host.md b/documentation/models/Host.md new file mode 100644 index 00000000..4dddab51 --- /dev/null +++ b/documentation/models/Host.md @@ -0,0 +1,13 @@ +# Host + +Meeting host + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------- | +| account_id | str | ❌ | Account id | +| extension_id | str | ❌ | Extension id | +| display_name | str | ❌ | Display name | + + diff --git a/documentation/models/HostInfoRequest.md b/documentation/models/HostInfoRequest.md new file mode 100644 index 00000000..4ccd75ee --- /dev/null +++ b/documentation/models/HostInfoRequest.md @@ -0,0 +1,12 @@ +# HostInfoRequest + +Meeting host information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to the meeting host resource | +| id\_ | str | ❌ | Internal identifier of an extension which is assigned to be a meeting host. The default value is currently logged-in extension identifier | + + diff --git a/documentation/models/HostModel.md b/documentation/models/HostModel.md new file mode 100644 index 00000000..5039144f --- /dev/null +++ b/documentation/models/HostModel.md @@ -0,0 +1,11 @@ +# HostModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :----------------- | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| linked_user | RcwDomainUserModel | ❌ | | + + diff --git a/documentation/models/HoursInterval.md b/documentation/models/HoursInterval.md new file mode 100644 index 00000000..13962de5 --- /dev/null +++ b/documentation/models/HoursInterval.md @@ -0,0 +1,10 @@ +# HoursInterval + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :------------------- | +| from\_ | str | ✅ | Time in format hh:mm | +| to | str | ✅ | Time in format hh:mm | + + diff --git a/documentation/models/IdentifyInput.md b/documentation/models/IdentifyInput.md new file mode 100644 index 00000000..72f46af5 --- /dev/null +++ b/documentation/models/IdentifyInput.md @@ -0,0 +1,47 @@ +# IdentifyInput + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :--------------------- | :------- | :-------------------------------------------------------------------- | +| content_uri | str | ❌ | Publicly facing uri | +| encoding | IdentifyInputEncoding | ❌ | The encoding of the original audio | +| language_code | str | ❌ | Language spoken in the audio file. | +| source | str | ❌ | Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc | +| audio_type | IdentifyInputAudioType | ❌ | Type of the audio | +| speaker_ids | List[str] | ❌ | Set of enrolled speakers to be identified from the media. | +| enable_voice_activity_detection | bool | ❌ | Apply voice activity detection. | + +# IdentifyInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + +# IdentifyInputAudioType + +Type of the audio + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| CALLCENTER | str | ✅ | "CallCenter" | +| MEETING | str | ✅ | "Meeting" | +| EARNINGSCALLS | str | ✅ | "EarningsCalls" | +| INTERVIEW | str | ✅ | "Interview" | +| PRESSCONFERENCE | str | ✅ | "PressConference" | +| VOICEMAIL | str | ✅ | "Voicemail" | + + diff --git a/documentation/models/IdentitiesList.md b/documentation/models/IdentitiesList.md new file mode 100644 index 00000000..22a17ae2 --- /dev/null +++ b/documentation/models/IdentitiesList.md @@ -0,0 +1,10 @@ +# IdentitiesList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------- | +| records | List[IdentityModel] | ✅ | | +| paging | NonEnumeratedPagingModel | ✅ | | + + diff --git a/documentation/models/IdentityModel.md b/documentation/models/IdentityModel.md new file mode 100644 index 00000000..95c7bc68 --- /dev/null +++ b/documentation/models/IdentityModel.md @@ -0,0 +1,44 @@ +# IdentityModel + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Identity identifier. | +| creation_time | str | ✅ | Creation time of the resource. | +| type\_ | IdentityType | ✅ | Type of the identity. | +| last_modified_time | str | ✅ | The time when the last modification was completed. | +| avatar_uri | str | ❌ | Identity's avatar Uri. | +| company | str | ❌ | Company. | +| display_name | str | ❌ | Display name of the identity. | +| email_address | str | ❌ | Email address. | +| extra_values | dict | ❌ | Additional data to store along the identity. | +| first_name | str | ❌ | FirstName. | +| gender | SocMsgGender | ❌ | Gender. | +| home_phone | str | ❌ | Phone number. | +| identity_group_id | str | ❌ | The identity group id references the identity group that contains all information (phone, notes, etc.). Many identities may belong to this group. If the identity group id is null, it means that identity does not have a group and any extra information. | +| last_name | str | ❌ | LastName. | +| mobile_phone | str | ❌ | Phone number. | +| screen_name | str | ❌ | Screen name of the identity. | +| user_ids | List[str] | ❌ | List of the associated user identifiers who can use the identity. | +| uuid | str | ❌ | UUID of the identity. | +| mobile_device_info | str | ❌ | Device info of the identity. Applicable to RingCX Digital Messaging channels only. | +| fb_bio | str | ❌ | Facebook biography of the identity. Applicable to Facebook and Messenger channels only. | +| fb_category | str | ❌ | Facebook category of the identity. Applicable to Facebook and Messenger channels only. | +| fb_locale | str | ❌ | Facebook locale of the identity. Applicable to Facebook and Messenger channels only. | +| ig_followers_count | int | ❌ | Instagram followers count of the identity. Applicable to Instagram and InstagramMessaging channels only. | +| tw_description | str | ❌ | Twitter description of the identity. Applicable to Twitter channels only. | +| tw_followers_count | int | ❌ | Twitter followers count of the identity. Applicable to Twitter channels only. | +| tw_following_count | int | ❌ | Count of Twitter accounts followed by the identity. Applicable to Twitter channels only. | +| tw_statuses_count | int | ❌ | Count of tweets of the identity. Applicable to Twitter channels only. | +| tw_location | str | ❌ | Twitter location of the identity. Applicable to Twitter channels only. | +| api_version | str | ❌ | Viber API version of the identity. Applicable to Viber channels only. | +| country | str | ❌ | Viber country of the identity. Applicable to Viber channels only. | +| device_type | str | ❌ | Viber device type of the identity. Applicable to Viber channels only. | +| language | str | ❌ | Viber language of the identity. Applicable to Viber channels only. | +| mcc | str | ❌ | Viber mobile country code of the identity. Applicable to Viber channels only. | +| mnc | str | ❌ | Viber mobile network code of the identity. Applicable to Viber channels only. | +| primary_device_os | str | ❌ | Viber primary device OS of the identity. Applicable to Viber channels only. | +| viber_version | str | ❌ | Viber application version of the identity. Applicable to Viber channels only. | + + diff --git a/documentation/models/IdentityType.md b/documentation/models/IdentityType.md new file mode 100644 index 00000000..8cdfac15 --- /dev/null +++ b/documentation/models/IdentityType.md @@ -0,0 +1,22 @@ +# IdentityType + +Type of the identity. + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :------------------------- | +| APPLEMESSAGESFORBUSINESS | str | ✅ | "AppleMessagesForBusiness" | +| EMAIL | str | ✅ | "Email" | +| ENGAGEMESSAGING | str | ✅ | "EngageMessaging" | +| FACEBOOK | str | ✅ | "Facebook" | +| GOOGLEBUSINESSMESSAGES | str | ✅ | "GoogleBusinessMessages" | +| GOOGLEMYBUSINESS | str | ✅ | "GoogleMyBusiness" | +| INSTAGRAM | str | ✅ | "Instagram" | +| LINKEDIN | str | ✅ | "Linkedin" | +| TWITTER | str | ✅ | "Twitter" | +| VIBER | str | ✅ | "Viber" | +| WHATSAPP | str | ✅ | "WhatsApp" | +| YOUTUBE | str | ✅ | "Youtube" | + + diff --git a/documentation/models/IgnoreRequestBody.md b/documentation/models/IgnoreRequestBody.md new file mode 100644 index 00000000..6b79994a --- /dev/null +++ b/documentation/models/IgnoreRequestBody.md @@ -0,0 +1,9 @@ +# IgnoreRequestBody + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :------------------------- | +| device_id | str | ✅ | Internal device identifier | + + diff --git a/documentation/models/ImageFillMode.md b/documentation/models/ImageFillMode.md new file mode 100644 index 00000000..32cb1488 --- /dev/null +++ b/documentation/models/ImageFillMode.md @@ -0,0 +1,16 @@ +# ImageFillMode + +Describes how the image should fill the area + +# ImageFillMode_1 + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| COVER | str | ✅ | "cover" | +| REPEATHORIZONTALLY | str | ✅ | "repeatHorizontally" | +| REPEATVERTICALLY | str | ✅ | "repeatVertically" | +| REPEAT | str | ✅ | "repeat" | + + diff --git a/documentation/models/InboundFaxesInfo.md b/documentation/models/InboundFaxesInfo.md new file mode 100644 index 00000000..caec1299 --- /dev/null +++ b/documentation/models/InboundFaxesInfo.md @@ -0,0 +1,14 @@ +# InboundFaxesInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_by_email | bool | ❌ | Email notification flag | +| notify_by_sms | bool | ❌ | SMS notification flag | +| advanced_email_addresses | List[str] | ❌ | List of recipient email addresses for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| advanced_sms_email_addresses | List[str] | ❌ | List of recipient phone numbers for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| include_attachment | bool | ❌ | Indicates whether fax should be attached to email | +| mark_as_read | bool | ❌ | Indicates whether email should be automatically marked as read | + + diff --git a/documentation/models/InboundTextsInfo.md b/documentation/models/InboundTextsInfo.md new file mode 100644 index 00000000..bd3ce4d1 --- /dev/null +++ b/documentation/models/InboundTextsInfo.md @@ -0,0 +1,12 @@ +# InboundTextsInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :-------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_by_email | bool | ❌ | Email notification flag | +| notify_by_sms | bool | ❌ | SMS notification flag | +| advanced_email_addresses | List[str] | ❌ | List of recipient email addresses for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| advanced_sms_email_addresses | List[str] | ❌ | List of recipient phone numbers for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | + + diff --git a/documentation/models/InsightsEnum.md b/documentation/models/InsightsEnum.md new file mode 100644 index 00000000..fe2df4e2 --- /dev/null +++ b/documentation/models/InsightsEnum.md @@ -0,0 +1,19 @@ +# InsightsEnum + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| ALL | str | ✅ | "All" | +| KEYPHRASES | str | ✅ | "KeyPhrases" | +| EMOTION | str | ✅ | "Emotion" | +| ABSTRACTIVESUMMARYLONG | str | ✅ | "AbstractiveSummaryLong" | +| ABSTRACTIVESUMMARYSHORT | str | ✅ | "AbstractiveSummaryShort" | +| EXTRACTIVESUMMARY | str | ✅ | "ExtractiveSummary" | +| TOPICS | str | ✅ | "Topics" | +| TALKTOLISTENRATIO | str | ✅ | "TalkToListenRatio" | +| ENERGY | str | ✅ | "Energy" | +| PACE | str | ✅ | "Pace" | +| QUESTIONSASKED | str | ✅ | "QuestionsAsked" | + + diff --git a/documentation/models/InteractionInput.md b/documentation/models/InteractionInput.md new file mode 100644 index 00000000..3558f37e --- /dev/null +++ b/documentation/models/InteractionInput.md @@ -0,0 +1,51 @@ +# InteractionInput + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| content_uri | str | ❌ | Publicly facing uri | +| encoding | InteractionInputEncoding | ❌ | The encoding of the original audio | +| language_code | str | ❌ | Language spoken in the audio file. | +| source | str | ❌ | Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc | +| audio_type | InteractionInputAudioType | ❌ | Type of the audio | +| separate_speaker_per_channel | bool | ❌ | Set to True if the input audio is multi-channel and each channel has a separate speaker. | +| speaker_count | int | ❌ | Number of speakers in the file, omit parameter if unknown | +| speaker_ids | List[str] | ❌ | Optional set of speakers to be identified from the call. | +| enable_voice_activity_detection | bool | ❌ | Apply voice activity detection. | +| insights | List[InsightsEnum] | ❌ | | +| speech_contexts | List[SpeechContextPhrasesInput] | ❌ | Indicates the words/phrases that will be used for boosting the transcript. This can help to boost accuracy for cases like Person Names, Company names etc. | + +# InteractionInputEncoding + +The encoding of the original audio + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| MPEG | str | ✅ | "Mpeg" | +| MP4 | str | ✅ | "Mp4" | +| WAV | str | ✅ | "Wav" | +| WEBM | str | ✅ | "Webm" | +| WEBP | str | ✅ | "Webp" | +| AAC | str | ✅ | "Aac" | +| AVI | str | ✅ | "Avi" | +| OGG | str | ✅ | "Ogg" | + +# InteractionInputAudioType + +Type of the audio + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| CALLCENTER | str | ✅ | "CallCenter" | +| MEETING | str | ✅ | "Meeting" | +| EARNINGSCALLS | str | ✅ | "EarningsCalls" | +| INTERVIEW | str | ✅ | "Interview" | +| PRESSCONFERENCE | str | ✅ | "PressConference" | +| VOICEMAIL | str | ✅ | "Voicemail" | + + diff --git a/documentation/models/InteractionObject.md b/documentation/models/InteractionObject.md new file mode 100644 index 00000000..3568ac25 --- /dev/null +++ b/documentation/models/InteractionObject.md @@ -0,0 +1,11 @@ +# InteractionObject + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------------- | :------- | :---------- | +| utterance_insights | List[UtteranceInsightsObject] | ❌ | | +| speaker_insights | SpeakerInsightsObject | ❌ | | +| conversational_insights | List[ConversationalInsightsUnit] | ❌ | | + + diff --git a/documentation/models/Interval.md b/documentation/models/Interval.md new file mode 100644 index 00000000..82ab8f34 --- /dev/null +++ b/documentation/models/Interval.md @@ -0,0 +1,12 @@ +# Interval + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| HOUR | str | ✅ | "Hour" | +| DAY | str | ✅ | "Day" | +| WEEK | str | ✅ | "Week" | +| MONTH | str | ✅ | "Month" | + + diff --git a/documentation/models/InviteeListResource.md b/documentation/models/InviteeListResource.md new file mode 100644 index 00000000..cc7a91c9 --- /dev/null +++ b/documentation/models/InviteeListResource.md @@ -0,0 +1,10 @@ +# InviteeListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------- | :------- | :---------- | +| records | List[InviteeModel] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/InviteeModel.md b/documentation/models/InviteeModel.md new file mode 100644 index 00000000..ce5a17f2 --- /dev/null +++ b/documentation/models/InviteeModel.md @@ -0,0 +1,31 @@ +# InviteeModel + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| original_role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| type\_ | InviteeModelType | ✅ | The type of the participant specified in invite or determined at join time | +| send_invite | bool | ✅ | Indicates if invite/cancellation emails was sent to this invitee. | +| joined | bool | ✅ | Indicates that this invitee joined the session | +| id\_ | str | ❌ | Internal object ID | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| linked_user | RcwDomainUserModel | ❌ | | +| avatar_token | str | ❌ | A token to access avatar image from CDN. Available only for authenticated panelists | +| email | str | ❌ | User's contact email | +| qna_blocked | bool | ❌ | Boolean to indicate if the participant was blocked from Q&A | + +# InviteeModelType + +The type of the participant specified in invite or determined at join time + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| ROOM | str | ✅ | "Room" | + + diff --git a/documentation/models/InviteeResource.md b/documentation/models/InviteeResource.md new file mode 100644 index 00000000..1b6748d7 --- /dev/null +++ b/documentation/models/InviteeResource.md @@ -0,0 +1,21 @@ +# InviteeResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| id\_ | str | ❌ | Internal object ID | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| email | str | ❌ | User's contact email | +| job_title | str | ❌ | Job title | +| linked_user | RcwDomainUserModel | ❌ | | +| type\_ | RcwInviteeTypeEnum | ❌ | The type of the webinar invitee | +| send_invite | bool | ❌ | Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. | +| join_uri | str | ❌ | Personalized join link for the Invitee | +| phone_participant_code | str | ❌ | Phone (PSTN) participant code | + + diff --git a/documentation/models/IvrCallHandlingActionEnum.md b/documentation/models/IvrCallHandlingActionEnum.md new file mode 100644 index 00000000..d2d0f711 --- /dev/null +++ b/documentation/models/IvrCallHandlingActionEnum.md @@ -0,0 +1,18 @@ +# IvrCallHandlingActionEnum + +Specifies how incoming calls are forwarded. The default value +is 'Operator' 'Operator' - play company greeting and forward to operator +extension 'Disconnect' - play company greeting and disconnect 'Bypass' + +- bypass greeting to go to selected extension = ['Operator', 'Disconnect', + 'Bypass'] + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| OPERATOR | str | ✅ | "Operator" | +| DISCONNECT | str | ✅ | "Disconnect" | +| BYPASS | str | ✅ | "Bypass" | + + diff --git a/documentation/models/IvrMenuActionsInfo.md b/documentation/models/IvrMenuActionsInfo.md new file mode 100644 index 00000000..7a594d00 --- /dev/null +++ b/documentation/models/IvrMenuActionsInfo.md @@ -0,0 +1,32 @@ +# IvrMenuActionsInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------- | :------- | :----------------------------------------------------------------------------- | +| input | str | ❌ | Key. The following values are supported: numeric: '1' to '9' Star Hash NoInput | +| action | IvrMenuActionsInfoAction | ❌ | Internal identifier of an answering rule | +| extension | IvrMenuExtensionInfo | ❌ | For 'Connect' or 'Voicemail' actions only. Extension reference | +| phone_number | str | ❌ | For 'Transfer' action only. PSTN number in E.164 format | + +# IvrMenuActionsInfoAction + +Internal identifier of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| CONNECT | str | ✅ | "Connect" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| DIALBYNAME | str | ✅ | "DialByName" | +| TRANSFER | str | ✅ | "Transfer" | +| REPEAT | str | ✅ | "Repeat" | +| RETURNTOROOT | str | ✅ | "ReturnToRoot" | +| RETURNTOPREVIOUS | str | ✅ | "ReturnToPrevious" | +| DISCONNECT | str | ✅ | "Disconnect" | +| RETURNTOTOPLEVELMENU | str | ✅ | "ReturnToTopLevelMenu" | +| DONOTHING | str | ✅ | "DoNothing" | +| CONNECTTOOPERATOR | str | ✅ | "ConnectToOperator" | + + diff --git a/documentation/models/IvrMenuExtensionInfo.md b/documentation/models/IvrMenuExtensionInfo.md new file mode 100644 index 00000000..b20948ff --- /dev/null +++ b/documentation/models/IvrMenuExtensionInfo.md @@ -0,0 +1,13 @@ +# IvrMenuExtensionInfo + +For 'Connect' or 'Voicemail' actions only. Extension reference + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| uri | str | ❌ | Link to an extension resource | +| id\_ | str | ❌ | Internal identifier of an extension | +| name | str | ❌ | Name of an extension | + + diff --git a/documentation/models/IvrMenuInfo.md b/documentation/models/IvrMenuInfo.md new file mode 100644 index 00000000..0ab1b043 --- /dev/null +++ b/documentation/models/IvrMenuInfo.md @@ -0,0 +1,15 @@ +# IvrMenuInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an IVR Menu extension | +| uri | str | ❌ | Link to an IVR Menu extension resource | +| name | str | ❌ | First name of an IVR Menu user | +| extension_number | str | ❌ | Number of an IVR Menu extension | +| site | IvrMenuSiteInfo | ❌ | Site data | +| prompt | IvrMenuPromptInfo | ❌ | Prompt metadata | +| actions | List[IvrMenuActionsInfo] | ❌ | Keys handling settings | + + diff --git a/documentation/models/IvrMenuList.md b/documentation/models/IvrMenuList.md new file mode 100644 index 00000000..c1d832d4 --- /dev/null +++ b/documentation/models/IvrMenuList.md @@ -0,0 +1,10 @@ +# IvrMenuList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------- | :------- | :----------------------- | +| uri | str | ❌ | Link to an IVR Menu list | +| records | List[IvrMenuListInfo] | ❌ | List of ivr menus | + + diff --git a/documentation/models/IvrMenuListInfo.md b/documentation/models/IvrMenuListInfo.md new file mode 100644 index 00000000..163f012a --- /dev/null +++ b/documentation/models/IvrMenuListInfo.md @@ -0,0 +1,12 @@ +# IvrMenuListInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an IVR Menu extension | +| uri | str | ❌ | Link to an IVR Menu extension resource | +| name | str | ❌ | First name of an IVR Menu user | +| extension_number | str | ❌ | Number of an IVR Menu extension | + + diff --git a/documentation/models/IvrMenuPromptInfo.md b/documentation/models/IvrMenuPromptInfo.md new file mode 100644 index 00000000..be572a08 --- /dev/null +++ b/documentation/models/IvrMenuPromptInfo.md @@ -0,0 +1,25 @@ +# IvrMenuPromptInfo + +Prompt metadata + +**Properties** + +| Name | Type | Required | Description | +| :------- | :-------------------- | :------- | :----------------------------------------------------- | +| mode | IvrMenuPromptInfoMode | ❌ | Prompt mode: custom media or text | +| audio | AudioPromptInfo | ❌ | For 'Audio' mode only. Prompt media reference | +| text | str | ❌ | For 'TextToSpeech' mode only. Prompt text | +| language | PromptLanguageInfo | ❌ | For 'TextToSpeech' mode only. Prompt language metadata | + +# IvrMenuPromptInfoMode + +Prompt mode: custom media or text + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| AUDIO | str | ✅ | "Audio" | +| TEXTTOSPEECH | str | ✅ | "TextToSpeech" | + + diff --git a/documentation/models/IvrMenuSiteInfo.md b/documentation/models/IvrMenuSiteInfo.md new file mode 100644 index 00000000..a70d0683 --- /dev/null +++ b/documentation/models/IvrMenuSiteInfo.md @@ -0,0 +1,12 @@ +# IvrMenuSiteInfo + +Site data + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a site. If the value is not specified in request, then the `main-site` default value is used | +| name | str | ❌ | Site name | + + diff --git a/documentation/models/IvrPrompts.md b/documentation/models/IvrPrompts.md new file mode 100644 index 00000000..6d26825b --- /dev/null +++ b/documentation/models/IvrPrompts.md @@ -0,0 +1,12 @@ +# IvrPrompts + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to prompts library resource | +| records | List[PromptInfo] | ❌ | List of Prompts | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/KeyInfo.md b/documentation/models/KeyInfo.md new file mode 100644 index 00000000..6eb9e7b8 --- /dev/null +++ b/documentation/models/KeyInfo.md @@ -0,0 +1,12 @@ +# KeyInfo + +Additional info about the key + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| extension_number | str | ❌ | Extension's number | +| name | str | ❌ | Extension's name | + + diff --git a/documentation/models/LanguageInfo.md b/documentation/models/LanguageInfo.md new file mode 100644 index 00000000..d53a0583 --- /dev/null +++ b/documentation/models/LanguageInfo.md @@ -0,0 +1,20 @@ +# LanguageInfo + +User interface language data + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a language | +| uri | str | ❌ | Canonical URI of a language | +| greeting | bool | ❌ | Indicates whether a language is available as greeting language | +| formatting_locale | bool | ❌ | Indicates whether a language is available as formatting locale | +| locale_code | str | ❌ | Localization code of a language | +| iso_code | str | ❌ | Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) | +| name | str | ❌ | Official name of a language | +| ui | bool | ❌ | Indicates whether a language is available as UI language | +| time_format | str | ❌ | Time format | +| date_format | str | ❌ | Date format | + + diff --git a/documentation/models/LanguageList.md b/documentation/models/LanguageList.md new file mode 100644 index 00000000..70d076f9 --- /dev/null +++ b/documentation/models/LanguageList.md @@ -0,0 +1,12 @@ +# LanguageList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Canonical URI of the language list resource | +| records | List[LanguageInfo] | ❌ | Language data | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/LastModifiedByInfo.md b/documentation/models/LastModifiedByInfo.md new file mode 100644 index 00000000..582878c6 --- /dev/null +++ b/documentation/models/LastModifiedByInfo.md @@ -0,0 +1,11 @@ +# LastModifiedByInfo + +Note last modification information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of the user who last updated the note | + + diff --git a/documentation/models/LinePooling.md b/documentation/models/LinePooling.md new file mode 100644 index 00000000..d8677450 --- /dev/null +++ b/documentation/models/LinePooling.md @@ -0,0 +1,11 @@ +# LinePooling + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| HOST | str | ✅ | "Host" | +| GUEST | str | ✅ | "Guest" | +| NONE | str | ✅ | "None" | + + diff --git a/documentation/models/LinePoolingEnum.md b/documentation/models/LinePoolingEnum.md new file mode 100644 index 00000000..f3c233fd --- /dev/null +++ b/documentation/models/LinePoolingEnum.md @@ -0,0 +1,17 @@ +# LinePoolingEnum + +Pooling type of device: + +- `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; +- `Guest` - device with a linked phone line; +- `None` - device without a phone line or with a specific line (free, BLA, etc.) + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| HOST | str | ✅ | "Host" | +| GUEST | str | ✅ | "Guest" | +| NONE | str | ✅ | "None" | + + diff --git a/documentation/models/ListA2PBatchesStatus.md b/documentation/models/ListA2PBatchesStatus.md new file mode 100644 index 00000000..06188f26 --- /dev/null +++ b/documentation/models/ListA2PBatchesStatus.md @@ -0,0 +1,12 @@ +# ListA2PBatchesStatus + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| QUEUED | str | ✅ | "Queued" | +| PROCESSING | str | ✅ | "Processing" | +| SENT | str | ✅ | "Sent" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/ListA2PsmsView.md b/documentation/models/ListA2PsmsView.md new file mode 100644 index 00000000..df7e8227 --- /dev/null +++ b/documentation/models/ListA2PsmsView.md @@ -0,0 +1,10 @@ +# ListA2PsmsView + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SIMPLE | str | ✅ | "Simple" | +| DETAILED | str | ✅ | "Detailed" | + + diff --git a/documentation/models/ListAccountPhoneNumbersStatus.md b/documentation/models/ListAccountPhoneNumbersStatus.md new file mode 100644 index 00000000..cb87c05c --- /dev/null +++ b/documentation/models/ListAccountPhoneNumbersStatus.md @@ -0,0 +1,12 @@ +# ListAccountPhoneNumbersStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| PENDING | str | ✅ | "Pending" | +| PORTEDIN | str | ✅ | "PortedIn" | +| TEMPORARY | str | ✅ | "Temporary" | + + diff --git a/documentation/models/ListAccountPhoneNumbersUsageType.md b/documentation/models/ListAccountPhoneNumbersUsageType.md new file mode 100644 index 00000000..5491d0ad --- /dev/null +++ b/documentation/models/ListAccountPhoneNumbersUsageType.md @@ -0,0 +1,21 @@ +# ListAccountPhoneNumbersUsageType + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :---------------------------- | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| MEETINGSNUMBER | str | ✅ | "MeetingsNumber" | +| BUSINESSMOBILENUMBER | str | ✅ | "BusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | +| INTEGRATIONNUMBER | str | ✅ | "IntegrationNumber" | + + diff --git a/documentation/models/ListAnsweringRulesType.md b/documentation/models/ListAnsweringRulesType.md new file mode 100644 index 00000000..c568d1dc --- /dev/null +++ b/documentation/models/ListAnsweringRulesType.md @@ -0,0 +1,9 @@ +# ListAnsweringRulesType + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| CUSTOM | str | ✅ | "Custom" | + + diff --git a/documentation/models/ListAnsweringRulesView.md b/documentation/models/ListAnsweringRulesView.md new file mode 100644 index 00000000..f15ed894 --- /dev/null +++ b/documentation/models/ListAnsweringRulesView.md @@ -0,0 +1,10 @@ +# ListAnsweringRulesView + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| DETAILED | str | ✅ | "Detailed" | +| SIMPLE | str | ✅ | "Simple" | + + diff --git a/documentation/models/ListAutomaticLocationUpdatesUsersType.md b/documentation/models/ListAutomaticLocationUpdatesUsersType.md new file mode 100644 index 00000000..5b5e07e6 --- /dev/null +++ b/documentation/models/ListAutomaticLocationUpdatesUsersType.md @@ -0,0 +1,10 @@ +# ListAutomaticLocationUpdatesUsersType + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| LIMITED | str | ✅ | "Limited" | + + diff --git a/documentation/models/ListCallRecordingCustomGreetingsType.md b/documentation/models/ListCallRecordingCustomGreetingsType.md new file mode 100644 index 00000000..3c8cb86d --- /dev/null +++ b/documentation/models/ListCallRecordingCustomGreetingsType.md @@ -0,0 +1,11 @@ +# ListCallRecordingCustomGreetingsType + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| STARTRECORDING | str | ✅ | "StartRecording" | +| STOPRECORDING | str | ✅ | "StopRecording" | +| AUTOMATICRECORDING | str | ✅ | "AutomaticRecording" | + + diff --git a/documentation/models/ListChatNotesNewStatus.md b/documentation/models/ListChatNotesNewStatus.md new file mode 100644 index 00000000..125a3233 --- /dev/null +++ b/documentation/models/ListChatNotesNewStatus.md @@ -0,0 +1,10 @@ +# ListChatNotesNewStatus + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| DRAFT | str | ✅ | "Draft" | + + diff --git a/documentation/models/ListChatTasksNewStatus.md b/documentation/models/ListChatTasksNewStatus.md new file mode 100644 index 00000000..8e8777af --- /dev/null +++ b/documentation/models/ListChatTasksNewStatus.md @@ -0,0 +1,11 @@ +# ListChatTasksNewStatus + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| PENDING | str | ✅ | "Pending" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/ListCompanyAnsweringRuleInfo.md b/documentation/models/ListCompanyAnsweringRuleInfo.md new file mode 100644 index 00000000..9df2213a --- /dev/null +++ b/documentation/models/ListCompanyAnsweringRuleInfo.md @@ -0,0 +1,27 @@ +# ListCompanyAnsweringRuleInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an answering rule | +| uri | str | ❌ | Canonical URI of an answering rule | +| enabled | bool | ❌ | Specifies if the rule is active or inactive. The default value is `true` | +| type\_ | ListCompanyAnsweringRuleInfoType | ❌ | Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] | +| name | str | ❌ | Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number | +| called_numbers | List[CalledNumberInfo] | ❌ | Answering rules are applied when calling to selected number(s) | +| extension | CompanyAnsweringRuleExtensionInfo | ❌ | | + +# ListCompanyAnsweringRuleInfoType + +Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'] + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + + diff --git a/documentation/models/ListDataExportTasksNewStatus.md b/documentation/models/ListDataExportTasksNewStatus.md new file mode 100644 index 00000000..844d0d6e --- /dev/null +++ b/documentation/models/ListDataExportTasksNewStatus.md @@ -0,0 +1,13 @@ +# ListDataExportTasksNewStatus + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| ACCEPTED | str | ✅ | "Accepted" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | +| FAILED | str | ✅ | "Failed" | +| EXPIRED | str | ✅ | "Expired" | + + diff --git a/documentation/models/ListDevicesAutomaticLocationUpdates.md b/documentation/models/ListDevicesAutomaticLocationUpdates.md new file mode 100644 index 00000000..c1815822 --- /dev/null +++ b/documentation/models/ListDevicesAutomaticLocationUpdates.md @@ -0,0 +1,12 @@ +# ListDevicesAutomaticLocationUpdates + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------------------- | :------- | :------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to a devices resource | +| records | List[AutomaticLocationUpdatesDeviceInfo] | ❌ | List of the user(s) devices with the current status of Emergency Address Auto Update Feature | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/ListDirectoryEntriesType.md b/documentation/models/ListDirectoryEntriesType.md new file mode 100644 index 00000000..40498516 --- /dev/null +++ b/documentation/models/ListDirectoryEntriesType.md @@ -0,0 +1,18 @@ +# ListDirectoryEntriesType + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| USER | str | ✅ | "User" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | +| EXTERNAL | str | ✅ | "External" | + + diff --git a/documentation/models/ListEmergencyLocationsOrderBy.md b/documentation/models/ListEmergencyLocationsOrderBy.md new file mode 100644 index 00000000..4dfb82a3 --- /dev/null +++ b/documentation/models/ListEmergencyLocationsOrderBy.md @@ -0,0 +1,18 @@ +# ListEmergencyLocationsOrderBy + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------- | +| \_NAME | str | ✅ | "+name" | +| \_SITENAME | str | ✅ | "+siteName" | +| \_ADDRESS | str | ✅ | "+address" | +| \_ADDRESSSTATUS | str | ✅ | "+addressStatus" | +| \_USAGESTATUS | str | ✅ | "+usageStatus" | +| \_NAME | str | ✅ | "-name" | +| \_SITENAME | str | ✅ | "-siteName" | +| \_ADDRESS | str | ✅ | "-address" | +| \_ADDRESSSTATUS | str | ✅ | "-addressStatus" | +| \_USAGESTATUS | str | ✅ | "-usageStatus" | + + diff --git a/documentation/models/ListEnrolledSpeakers.md b/documentation/models/ListEnrolledSpeakers.md new file mode 100644 index 00000000..0d706c5a --- /dev/null +++ b/documentation/models/ListEnrolledSpeakers.md @@ -0,0 +1,10 @@ +# ListEnrolledSpeakers + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :---------- | +| paging | PagingSchema | ✅ | | +| records | List[EnrollmentStatus] | ✅ | | + + diff --git a/documentation/models/ListExtensionDevicesType.md b/documentation/models/ListExtensionDevicesType.md new file mode 100644 index 00000000..0fa1404f --- /dev/null +++ b/documentation/models/ListExtensionDevicesType.md @@ -0,0 +1,17 @@ +# ListExtensionDevicesType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| HARDPHONE | str | ✅ | "HardPhone" | +| SOFTPHONE | str | ✅ | "SoftPhone" | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| MOBILEDEVICE | str | ✅ | "MobileDevice" | +| BLA | str | ✅ | "BLA" | +| PAGING | str | ✅ | "Paging" | +| WEBPHONE | str | ✅ | "WebPhone" | +| WEBRTC | str | ✅ | "WebRTC" | +| ROOM | str | ✅ | "Room" | + + diff --git a/documentation/models/ListExtensionPhoneNumbersStatus.md b/documentation/models/ListExtensionPhoneNumbersStatus.md new file mode 100644 index 00000000..f2bd6d3b --- /dev/null +++ b/documentation/models/ListExtensionPhoneNumbersStatus.md @@ -0,0 +1,12 @@ +# ListExtensionPhoneNumbersStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| PENDING | str | ✅ | "Pending" | +| PORTEDIN | str | ✅ | "PortedIn" | +| TEMPORARY | str | ✅ | "Temporary" | + + diff --git a/documentation/models/ListExtensionPhoneNumbersUsageType.md b/documentation/models/ListExtensionPhoneNumbersUsageType.md new file mode 100644 index 00000000..9d821c9f --- /dev/null +++ b/documentation/models/ListExtensionPhoneNumbersUsageType.md @@ -0,0 +1,18 @@ +# ListExtensionPhoneNumbersUsageType + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :---------------------------- | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| BUSINESSMOBILENUMBER | str | ✅ | "BusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | +| INTEGRATIONNUMBER | str | ✅ | "IntegrationNumber" | + + diff --git a/documentation/models/ListExtensionsStatus.md b/documentation/models/ListExtensionsStatus.md new file mode 100644 index 00000000..1fd6df9a --- /dev/null +++ b/documentation/models/ListExtensionsStatus.md @@ -0,0 +1,12 @@ +# ListExtensionsStatus + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | +| UNASSIGNED | str | ✅ | "Unassigned" | + + diff --git a/documentation/models/ListExtensionsType.md b/documentation/models/ListExtensionsType.md new file mode 100644 index 00000000..d466b6a9 --- /dev/null +++ b/documentation/models/ListExtensionsType.md @@ -0,0 +1,26 @@ +# ListExtensionsType + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | +| BOT | str | ✅ | "Bot" | +| PROXYADMIN | str | ✅ | "ProxyAdmin" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| SITE | str | ✅ | "Site" | + + diff --git a/documentation/models/ListFaxCoverPagesResponse.md b/documentation/models/ListFaxCoverPagesResponse.md new file mode 100644 index 00000000..5c153f55 --- /dev/null +++ b/documentation/models/ListFaxCoverPagesResponse.md @@ -0,0 +1,12 @@ +# ListFaxCoverPagesResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | | +| records | List[FaxCoverPageInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/ListGlipChatsNewType.md b/documentation/models/ListGlipChatsNewType.md new file mode 100644 index 00000000..012d0a61 --- /dev/null +++ b/documentation/models/ListGlipChatsNewType.md @@ -0,0 +1,13 @@ +# ListGlipChatsNewType + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| PERSONAL | str | ✅ | "Personal" | +| DIRECT | str | ✅ | "Direct" | +| GROUP | str | ✅ | "Group" | +| TEAM | str | ✅ | "Team" | +| EVERYONE | str | ✅ | "Everyone" | + + diff --git a/documentation/models/ListLocationsOrderBy.md b/documentation/models/ListLocationsOrderBy.md new file mode 100644 index 00000000..277fc581 --- /dev/null +++ b/documentation/models/ListLocationsOrderBy.md @@ -0,0 +1,10 @@ +# ListLocationsOrderBy + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| NPA | str | ✅ | "Npa" | +| CITY | str | ✅ | "City" | + + diff --git a/documentation/models/ListMeetingRecordingsResponse.md b/documentation/models/ListMeetingRecordingsResponse.md new file mode 100644 index 00000000..d99a7d70 --- /dev/null +++ b/documentation/models/ListMeetingRecordingsResponse.md @@ -0,0 +1,11 @@ +# ListMeetingRecordingsResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------ | :------- | :---------- | +| records | List[MeetingRecordings] | ❌ | | +| paging | MeetingRecordingsPagingInfo | ❌ | | +| navigation | MeetingRecordingsNavigationInfo | ❌ | | + + diff --git a/documentation/models/ListRecentChatsNewType.md b/documentation/models/ListRecentChatsNewType.md new file mode 100644 index 00000000..8f77ea91 --- /dev/null +++ b/documentation/models/ListRecentChatsNewType.md @@ -0,0 +1,13 @@ +# ListRecentChatsNewType + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| EVERYONE | str | ✅ | "Everyone" | +| GROUP | str | ✅ | "Group" | +| PERSONAL | str | ✅ | "Personal" | +| DIRECT | str | ✅ | "Direct" | +| TEAM | str | ✅ | "Team" | + + diff --git a/documentation/models/ListStandardGreetingsType.md b/documentation/models/ListStandardGreetingsType.md new file mode 100644 index 00000000..b4b4ad6e --- /dev/null +++ b/documentation/models/ListStandardGreetingsType.md @@ -0,0 +1,16 @@ +# ListStandardGreetingsType + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| INTRODUCTORY | str | ✅ | "Introductory" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| CONNECTINGMESSAGE | str | ✅ | "ConnectingMessage" | +| CONNECTINGAUDIO | str | ✅ | "ConnectingAudio" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| UNAVAILABLE | str | ✅ | "Unavailable" | +| HOLDMUSIC | str | ✅ | "HoldMusic" | +| COMPANY | str | ✅ | "Company" | + + diff --git a/documentation/models/ListStandardGreetingsUsageType.md b/documentation/models/ListStandardGreetingsUsageType.md new file mode 100644 index 00000000..a25706d8 --- /dev/null +++ b/documentation/models/ListStandardGreetingsUsageType.md @@ -0,0 +1,16 @@ +# ListStandardGreetingsUsageType + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------- | :--- | :------- | :----------------------------------- | +| USEREXTENSIONANSWERINGRULE | str | ✅ | "UserExtensionAnsweringRule" | +| EXTENSIONANSWERINGRULE | str | ✅ | "ExtensionAnsweringRule" | +| DEPARTMENTEXTENSIONANSWERINGRULE | str | ✅ | "DepartmentExtensionAnsweringRule" | +| COMPANYANSWERINGRULE | str | ✅ | "CompanyAnsweringRule" | +| COMPANYAFTERHOURSANSWERINGRULE | str | ✅ | "CompanyAfterHoursAnsweringRule" | +| VOICEMAILEXTENSIONANSWERINGRULE | str | ✅ | "VoicemailExtensionAnsweringRule" | +| ANNOUNCEMENTEXTENSIONANSWERINGRULE | str | ✅ | "AnnouncementExtensionAnsweringRule" | +| SHAREDLINESGROUPANSWERINGRULE | str | ✅ | "SharedLinesGroupAnsweringRule" | + + diff --git a/documentation/models/ListUserTemplatesType.md b/documentation/models/ListUserTemplatesType.md new file mode 100644 index 00000000..1127c880 --- /dev/null +++ b/documentation/models/ListUserTemplatesType.md @@ -0,0 +1,10 @@ +# ListUserTemplatesType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| USERSETTINGS | str | ✅ | "UserSettings" | +| CALLHANDLING | str | ✅ | "CallHandling" | + + diff --git a/documentation/models/ListVideoMeetingsType.md b/documentation/models/ListVideoMeetingsType.md new file mode 100644 index 00000000..b2910a20 --- /dev/null +++ b/documentation/models/ListVideoMeetingsType.md @@ -0,0 +1,12 @@ +# ListVideoMeetingsType + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ALL | str | ✅ | "All" | +| MY | str | ✅ | "My" | +| DELETED | str | ✅ | "Deleted" | +| SHARED | str | ✅ | "Shared" | + + diff --git a/documentation/models/LocationDeletionErrorInfo.md b/documentation/models/LocationDeletionErrorInfo.md new file mode 100644 index 00000000..d682aabe --- /dev/null +++ b/documentation/models/LocationDeletionErrorInfo.md @@ -0,0 +1,11 @@ +# LocationDeletionErrorInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------------------------------------------------------- | +| error_code | str | ❌ | Error code | +| message | str | ❌ | Error message | +| additional_info | str | ❌ | Additional attribute for this error, for example `parameterName` | + + diff --git a/documentation/models/LocationDeletionInfo.md b/documentation/models/LocationDeletionInfo.md new file mode 100644 index 00000000..fbda4e5e --- /dev/null +++ b/documentation/models/LocationDeletionInfo.md @@ -0,0 +1,27 @@ +# LocationDeletionInfo + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--------------------------- | :------- | :------------------------------------------------------------------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| deletion | LocationDeletionInfoDeletion | ❌ | Identifies the possibility and status of emergency location deletion | +| errors | LocationDeletionErrorInfo | ❌ | | + +# LocationDeletionInfoDeletion + +Identifies the possibility and status of emergency location +deletion + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| FAILED | str | ✅ | "Failed" | +| COMPLETED | str | ✅ | "Completed" | +| FORBIDDEN | str | ✅ | "Forbidden" | +| RESTRICTED | str | ✅ | "Restricted" | +| ALLOWED | str | ✅ | "Allowed" | + + diff --git a/documentation/models/LocationInfo.md b/documentation/models/LocationInfo.md new file mode 100644 index 00000000..30223c9d --- /dev/null +++ b/documentation/models/LocationInfo.md @@ -0,0 +1,14 @@ +# LocationInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :---------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| uri | str | ❌ | Canonical URI of a location | +| area_code | str | ❌ | Area code of the location | +| city | str | ❌ | Official name of the city, belonging to the certain state | +| npa | str | ❌ | Area code of the location (3-digit usually), according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan | +| nxx | str | ❌ | Central office code of the location, according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan | +| state | LocationStateInfo | ❌ | Information on a state this location belongs to | + + diff --git a/documentation/models/LocationOwnerInfo.md b/documentation/models/LocationOwnerInfo.md new file mode 100644 index 00000000..c735cfc7 --- /dev/null +++ b/documentation/models/LocationOwnerInfo.md @@ -0,0 +1,11 @@ +# LocationOwnerInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a user - private location owner | +| extension_number | str | ❌ | Extension number of a location number | +| name | str | ❌ | Name of a location owner | + + diff --git a/documentation/models/LocationStateInfo.md b/documentation/models/LocationStateInfo.md new file mode 100644 index 00000000..f3b29334 --- /dev/null +++ b/documentation/models/LocationStateInfo.md @@ -0,0 +1,12 @@ +# LocationStateInfo + +Information on a state this location belongs to + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------- | +| id\_ | str | ❌ | Internal identifier of a state | +| uri | str | ❌ | Link to a state resource | + + diff --git a/documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md b/documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md new file mode 100644 index 00000000..843f7790 --- /dev/null +++ b/documentation/models/LocationUpdatesEmergencyAddressInfoRequest.md @@ -0,0 +1,24 @@ +# LocationUpdatesEmergencyAddressInfoRequest + +Emergency address assigned to the switch. Only one of a pair `emergencyAddress` +or `emergencyLocationId` should be specified, otherwise the error is returned + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------ | +| country | str | ❌ | Country name | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country_name | str | ❌ | Full name of a country | +| customer_name | str | ❌ | Customer name | +| state | str | ❌ | State/Province name. Mandatory for the USA, the UK and Canada | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| city | str | ❌ | City name | +| street | str | ❌ | First line address | +| street2 | str | ❌ | Second line address (apartment, suite, unit, building, floor, etc.) | +| zip | str | ❌ | Postal (Zip) code | + + diff --git a/documentation/models/LockedByInfo.md b/documentation/models/LockedByInfo.md new file mode 100644 index 00000000..a34071e2 --- /dev/null +++ b/documentation/models/LockedByInfo.md @@ -0,0 +1,11 @@ +# LockedByInfo + +Returned for the note being edited (locked) at the current moment. Information on the user editing the note + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of the user editing the note | + + diff --git a/documentation/models/MakeCallOutCallerInfoRequestFrom.md b/documentation/models/MakeCallOutCallerInfoRequestFrom.md new file mode 100644 index 00000000..2a13496e --- /dev/null +++ b/documentation/models/MakeCallOutCallerInfoRequestFrom.md @@ -0,0 +1,11 @@ +# MakeCallOutCallerInfoRequestFrom + +Instance id of the caller. It corresponds to the 1st leg of the CallOut call. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :------------------------------ | +| device_id | str | ❌ | Internal identifier of a device | + + diff --git a/documentation/models/MakeCallOutCallerInfoRequestTo.md b/documentation/models/MakeCallOutCallerInfoRequestTo.md new file mode 100644 index 00000000..13d01a67 --- /dev/null +++ b/documentation/models/MakeCallOutCallerInfoRequestTo.md @@ -0,0 +1,12 @@ +# MakeCallOutCallerInfoRequestTo + +Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number in E.164 format, short codes (*67, *86), emergency (911, 112) or special (988) numbers | +| extension_number | str | ❌ | Extension number | + + diff --git a/documentation/models/MakeCallOutRequest.md b/documentation/models/MakeCallOutRequest.md new file mode 100644 index 00000000..51ac66a0 --- /dev/null +++ b/documentation/models/MakeCallOutRequest.md @@ -0,0 +1,11 @@ +# MakeCallOutRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------- | +| from\_ | MakeCallOutCallerInfoRequestFrom | ✅ | Instance id of the caller. It corresponds to the 1st leg of the CallOut call. | +| to | MakeCallOutCallerInfoRequestTo | ✅ | Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call | +| country_id | int | ❌ | Optional. Dialing plan country data. If not specified, then extension home country is applied by default. | + + diff --git a/documentation/models/MakeRingOutCallerIdInfo.md b/documentation/models/MakeRingOutCallerIdInfo.md new file mode 100644 index 00000000..49ab3795 --- /dev/null +++ b/documentation/models/MakeRingOutCallerIdInfo.md @@ -0,0 +1,11 @@ +# MakeRingOutCallerIdInfo + +Phone number which will be displayed to the called party + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------- | +| phone_number | str | ❌ | Phone number in E.164 format | + + diff --git a/documentation/models/MakeRingOutCallerInfoRequestFrom.md b/documentation/models/MakeRingOutCallerInfoRequestFrom.md new file mode 100644 index 00000000..c6add5de --- /dev/null +++ b/documentation/models/MakeRingOutCallerInfoRequestFrom.md @@ -0,0 +1,14 @@ +# MakeRingOutCallerInfoRequestFrom + +Phone number of a caller. This number corresponds to the 1st +leg of a RingOut call. This number can be one of the user's configured forwarding +numbers or an arbitrary number + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number in E.164 format | +| forwarding_number_id | str | ❌ | Internal identifier of a forwarding number; returned in response as an 'id' field value. Can be specified instead of a `phoneNumber` attribute | + + diff --git a/documentation/models/MakeRingOutCallerInfoRequestTo.md b/documentation/models/MakeRingOutCallerInfoRequestTo.md new file mode 100644 index 00000000..cf1a79bd --- /dev/null +++ b/documentation/models/MakeRingOutCallerInfoRequestTo.md @@ -0,0 +1,12 @@ +# MakeRingOutCallerInfoRequestTo + +Phone number of a called party. This number corresponds to the +2nd leg of a RingOut call + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------- | +| phone_number | str | ❌ | Phone number in E.164 format | + + diff --git a/documentation/models/MakeRingOutCountryInfo.md b/documentation/models/MakeRingOutCountryInfo.md new file mode 100644 index 00000000..50057aa3 --- /dev/null +++ b/documentation/models/MakeRingOutCountryInfo.md @@ -0,0 +1,12 @@ +# MakeRingOutCountryInfo + +Optional. Dialing plan country data. If not specified, then an extension +home country is applied by default + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Dialing plan country identifier | + + diff --git a/documentation/models/MakeRingOutRequest.md b/documentation/models/MakeRingOutRequest.md new file mode 100644 index 00000000..6d5f0823 --- /dev/null +++ b/documentation/models/MakeRingOutRequest.md @@ -0,0 +1,13 @@ +# MakeRingOutRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from\_ | MakeRingOutCallerInfoRequestFrom | ✅ | Phone number of a caller. This number corresponds to the 1st leg of a RingOut call. This number can be one of the user's configured forwarding numbers or an arbitrary number | +| to | MakeRingOutCallerInfoRequestTo | ✅ | Phone number of a called party. This number corresponds to the 2nd leg of a RingOut call | +| caller_id | MakeRingOutCallerIdInfo | ❌ | Phone number which will be displayed to the called party | +| play_prompt | bool | ❌ | Audio prompt that a calling party hears when a call is connected | +| country | MakeRingOutCountryInfo | ❌ | Optional. Dialing plan country data. If not specified, then an extension home country is applied by default | + + diff --git a/documentation/models/Meeting.md b/documentation/models/Meeting.md new file mode 100644 index 00000000..bf69f848 --- /dev/null +++ b/documentation/models/Meeting.md @@ -0,0 +1,58 @@ +# Meeting + +Meeting information + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---------------- | :------- | :------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Call id | +| bridge_id | str | ✅ | Bridge id | +| short_id | str | ✅ | Short bridge id | +| start_time | str | ✅ | Start time ISO 8601 | +| display_name | str | ✅ | Meetings name | +| type\_ | MeetingType | ✅ | Meeting type | +| status | MeetingStatus | ✅ | Meeting status | +| host_info | Host | ✅ | Meeting host | +| rights | List[Rights] | ✅ | Describe access rights which has participants to meeting | +| participants | List[Participant] | ✅ | List of the participants in the meeting | +| recordings | List[Recording] | ✅ | Recording information | +| duration | int | ❌ | Duration second | +| long_summary | str | ❌ | During meeting AI team analyze code and after meeting finished generates text summary about this meeting | +| short_summary | str | ❌ | During meeting AI team analyze code and after meeting finished generates text summary about this meeting | +| keywords | List[str] | ❌ | During meeting AI team analyze code and after meeting finished generates key words used in meeting | +| chat_url | str | ❌ | Chat location | + +# MeetingType + +Meeting type + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| MEETING | str | ✅ | "Meeting" | +| CALL | str | ✅ | "Call" | + +# MeetingStatus + +Meeting status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| INPROGRESS | str | ✅ | "InProgress" | +| DONE | str | ✅ | "Done" | + +# Rights + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| DELETE | str | ✅ | "delete" | +| DOWNLOAD | str | ✅ | "download" | +| SHARE | str | ✅ | "share" | + + diff --git a/documentation/models/MeetingExternalUserInfoResource.md b/documentation/models/MeetingExternalUserInfoResource.md new file mode 100644 index 00000000..c4a565ee --- /dev/null +++ b/documentation/models/MeetingExternalUserInfoResource.md @@ -0,0 +1,18 @@ +# MeetingExternalUserInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | | +| user_id | str | ❌ | | +| account_id | str | ❌ | | +| user_type | int | ❌ | | +| user_token | str | ❌ | | +| host_key | str | ❌ | | +| personal_meeting_id | str | ❌ | | +| personal_link | str | ❌ | Link to the user's personal meeting room, used as an alias for personal meeting URL (with personal meeting ID) | +| personal_link_name | str | ❌ | | +| use_pmi_for_instant_meetings | bool | ❌ | Enables using personal meeting ID for instant meetings | + + diff --git a/documentation/models/MeetingFrequency.md b/documentation/models/MeetingFrequency.md new file mode 100644 index 00000000..3754df35 --- /dev/null +++ b/documentation/models/MeetingFrequency.md @@ -0,0 +1,13 @@ +# MeetingFrequency + +Recurrence time frame + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| DAILY | str | ✅ | "Daily" | +| WEEKLY | str | ✅ | "Weekly" | +| MONTHLY | str | ✅ | "Monthly" | + + diff --git a/documentation/models/MeetingInfo.md b/documentation/models/MeetingInfo.md new file mode 100644 index 00000000..99efe379 --- /dev/null +++ b/documentation/models/MeetingInfo.md @@ -0,0 +1,12 @@ +# MeetingInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :-------------------------------------- | +| uuid | str | ❌ | Unique identifier of a meeting instance | +| id\_ | str | ❌ | | +| topic | str | ❌ | | +| start_time | str | ❌ | | + + diff --git a/documentation/models/MeetingLinks.md b/documentation/models/MeetingLinks.md new file mode 100644 index 00000000..a9d023e6 --- /dev/null +++ b/documentation/models/MeetingLinks.md @@ -0,0 +1,12 @@ +# MeetingLinks + +Meeting links + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| start_uri | str | ❌ | | +| join_uri | str | ❌ | | + + diff --git a/documentation/models/MeetingOccurrenceInfo.md b/documentation/models/MeetingOccurrenceInfo.md new file mode 100644 index 00000000..7cc39306 --- /dev/null +++ b/documentation/models/MeetingOccurrenceInfo.md @@ -0,0 +1,12 @@ +# MeetingOccurrenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Identifier of a meeting occurrence | +| start_time | str | ❌ | Starting time of a meeting occurrence | +| duration_in_minutes | int | ❌ | Duration of a meeting occurrence | +| status | str | ❌ | Status of a meeting occurrence | + + diff --git a/documentation/models/MeetingPage.md b/documentation/models/MeetingPage.md new file mode 100644 index 00000000..91ddeaeb --- /dev/null +++ b/documentation/models/MeetingPage.md @@ -0,0 +1,12 @@ +# MeetingPage + +Meetings page + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------ | :------- | :----------------- | +| meetings | List[Meeting] | ✅ | Meetings array | +| paging | Paging | ✅ | Paging information | + + diff --git a/documentation/models/MeetingRecordingInfo.md b/documentation/models/MeetingRecordingInfo.md new file mode 100644 index 00000000..2f681ad9 --- /dev/null +++ b/documentation/models/MeetingRecordingInfo.md @@ -0,0 +1,35 @@ +# MeetingRecordingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------ | :------- | :------------------------------------------------------------------------------- | +| uuid | str | ❌ | Unique identifier of a meeting instance | +| id\_ | str | ❌ | | +| content_download_uri | str | ❌ | Link for downloading the recorded file (mp4, mp3 audio and text/plain chat file) | +| content_type | MeetingRecordingInfoContentType | ❌ | | +| size | int | ❌ | | +| start_time | str | ❌ | Starting time of a recording | +| end_time | str | ❌ | Ending time of a recording | +| status | MeetingRecordingInfoStatus | ❌ | | + +# MeetingRecordingInfoContentType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VIDEO_MP4 | str | ✅ | "video/mp4" | +| AUDIO_M4A | str | ✅ | "audio/m4a" | +| TEXT_VTT | str | ✅ | "text/vtt" | + +# MeetingRecordingInfoStatus + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| COMPLETED | str | ✅ | "Completed" | +| PROCESSING | str | ✅ | "Processing" | + + diff --git a/documentation/models/MeetingRecordings.md b/documentation/models/MeetingRecordings.md new file mode 100644 index 00000000..5d51fb66 --- /dev/null +++ b/documentation/models/MeetingRecordings.md @@ -0,0 +1,10 @@ +# MeetingRecordings + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------- | :------- | :---------- | +| meeting | MeetingInfo | ❌ | | +| recordings | List[MeetingRecordingInfo] | ❌ | | + + diff --git a/documentation/models/MeetingRecordingsNavigationInfo.md b/documentation/models/MeetingRecordingsNavigationInfo.md new file mode 100644 index 00000000..c786aff1 --- /dev/null +++ b/documentation/models/MeetingRecordingsNavigationInfo.md @@ -0,0 +1,12 @@ +# MeetingRecordingsNavigationInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--------------------------------- | :------- | :--------------------------------------------------- | +| first_page | MeetingRecordingsNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| next_page | MeetingRecordingsNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| previous_page | MeetingRecordingsNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| last_page | MeetingRecordingsNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | + + diff --git a/documentation/models/MeetingRecordingsNavigationInfoUri.md b/documentation/models/MeetingRecordingsNavigationInfoUri.md new file mode 100644 index 00000000..d356d51e --- /dev/null +++ b/documentation/models/MeetingRecordingsNavigationInfoUri.md @@ -0,0 +1,11 @@ +# MeetingRecordingsNavigationInfoUri + +Canonical URI for the corresponding page of the list + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/MeetingRecordingsPagingInfo.md b/documentation/models/MeetingRecordingsPagingInfo.md new file mode 100644 index 00000000..c1671f02 --- /dev/null +++ b/documentation/models/MeetingRecordingsPagingInfo.md @@ -0,0 +1,14 @@ +# MeetingRecordingsPagingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied | +| page_start | int | ❌ | The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty | +| page_end | int | ❌ | The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty | +| total_pages | int | ❌ | The total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | The total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/MeetingRequestResource.md b/documentation/models/MeetingRequestResource.md new file mode 100644 index 00000000..5c126c69 --- /dev/null +++ b/documentation/models/MeetingRequestResource.md @@ -0,0 +1,57 @@ +# MeetingRequestResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--------------------------------------- | :------- | :------------------------------------------------------------------------------- | +| topic | str | ❌ | Custom topic of a meeting | +| meeting_type | MeetingRequestResourceMeetingType | ❌ | | +| schedule | MeetingScheduleResource | ❌ | Timing of a meeting | +| password | str | ❌ | Meeting password | +| host | HostInfoRequest | ❌ | Meeting host information | +| allow_join_before_host | bool | ❌ | | +| start_host_video | bool | ❌ | | +| start_participants_video | bool | ❌ | Starting meetings with participant video on/off (true/false) | +| use_personal_meeting_id | bool | ❌ | If true, then personal user's meeting ID is applied for creation of this meeting | +| audio_options | List[MeetingRequestResourceAudioOptions] | ❌ | | +| recurrence | RecurrenceInfo | ❌ | | +| auto_record_type | MeetingRequestResourceAutoRecordType | ❌ | Automatic record type | +| enforce_login | bool | ❌ | If true, then only signed-in users can join this meeting | +| mute_participants_on_entry | bool | ❌ | If true, then participants are muted on entry | +| enable_waiting_room | bool | ❌ | If true, then the waiting room for participants is enabled | +| global_dial_in_countries | List[str] | ❌ | List of global dial-in countries (eg. US, UK, AU, etc.) | +| alternative_hosts | str | ❌ | | + +# MeetingRequestResourceMeetingType + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| INSTANT | str | ✅ | "Instant" | +| SCHEDULED | str | ✅ | "Scheduled" | +| SCHEDULEDRECURRING | str | ✅ | "ScheduledRecurring" | +| RECURRING | str | ✅ | "Recurring" | + +# MeetingRequestResourceAudioOptions + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| PHONE | str | ✅ | "Phone" | +| COMPUTERAUDIO | str | ✅ | "ComputerAudio" | + +# MeetingRequestResourceAutoRecordType + +Automatic record type + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| LOCAL | str | ✅ | "local" | +| CLOUD | str | ✅ | "cloud" | +| NONE | str | ✅ | "none" | + + diff --git a/documentation/models/MeetingResponseResource.md b/documentation/models/MeetingResponseResource.md new file mode 100644 index 00000000..3f7da4ec --- /dev/null +++ b/documentation/models/MeetingResponseResource.md @@ -0,0 +1,63 @@ +# MeetingResponseResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :---------------------------------------- | :------- | :------------------------------------------------------------------ | +| uri | str | ❌ | Link to a meeting resource | +| uuid | str | ❌ | Universally unique identifier of a meeting" | +| id\_ | str | ❌ | Internal identifier of a meeting | +| topic | str | ❌ | Custom topic of a meeting | +| meeting_type | MeetingResponseResourceMeetingType | ❌ | | +| password | str | ❌ | Meeting password | +| h323_password | str | ❌ | | +| status | str | ❌ | Status of a meeting | +| links | MeetingLinks | ❌ | Meeting links | +| schedule | MeetingScheduleResource | ❌ | Timing of a meeting | +| host | HostInfoRequest | ❌ | Meeting host information | +| allow_join_before_host | bool | ❌ | If true, then participants can join the meeting before host arrives | +| start_host_video | bool | ❌ | Starting meetings with host video on/off (true/false) | +| start_participants_video | bool | ❌ | Starting meetings with participant video on/off (true/false) | +| audio_options | List[MeetingResponseResourceAudioOptions] | ❌ | | +| recurrence | RecurrenceInfo | ❌ | | +| auto_record_type | MeetingResponseResourceAutoRecordType | ❌ | Automatic record type | +| enforce_login | bool | ❌ | If true, then only signed-in users can join this meeting | +| mute_participants_on_entry | bool | ❌ | If true, then participants are muted on entry | +| occurrences | List[MeetingOccurrenceInfo] | ❌ | | +| enable_waiting_room | bool | ❌ | If true, then the waiting room for participants is enabled | +| global_dial_in_countries | List[str] | ❌ | List of global dial-in countries (eg. US, UK, AU, etc.) | +| alternative_hosts | str | ❌ | | + +# MeetingResponseResourceMeetingType + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| INSTANT | str | ✅ | "Instant" | +| SCHEDULED | str | ✅ | "Scheduled" | +| SCHEDULEDRECURRING | str | ✅ | "ScheduledRecurring" | +| RECURRING | str | ✅ | "Recurring" | + +# MeetingResponseResourceAudioOptions + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| PHONE | str | ✅ | "Phone" | +| COMPUTERAUDIO | str | ✅ | "ComputerAudio" | + +# MeetingResponseResourceAutoRecordType + +Automatic record type + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| LOCAL | str | ✅ | "local" | +| CLOUD | str | ✅ | "cloud" | +| NONE | str | ✅ | "none" | + + diff --git a/documentation/models/MeetingScheduleResource.md b/documentation/models/MeetingScheduleResource.md new file mode 100644 index 00000000..33f0d615 --- /dev/null +++ b/documentation/models/MeetingScheduleResource.md @@ -0,0 +1,13 @@ +# MeetingScheduleResource + +Timing of a meeting + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------------------- | :------- | :---------- | +| start_time | str | ❌ | | +| duration_in_minutes | int | ❌ | | +| time_zone | MeetingsTimezoneResource | ❌ | | + + diff --git a/documentation/models/MeetingServiceInfoRequest.md b/documentation/models/MeetingServiceInfoRequest.md new file mode 100644 index 00000000..35d47d18 --- /dev/null +++ b/documentation/models/MeetingServiceInfoRequest.md @@ -0,0 +1,9 @@ +# MeetingServiceInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------ | :------- | :---------- | +| external_user_info | MeetingExternalUserInfoResource | ❌ | | + + diff --git a/documentation/models/MeetingServiceInfoResource.md b/documentation/models/MeetingServiceInfoResource.md new file mode 100644 index 00000000..4a42f7bd --- /dev/null +++ b/documentation/models/MeetingServiceInfoResource.md @@ -0,0 +1,13 @@ +# MeetingServiceInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------------ | :------- | :---------- | +| uri | str | ❌ | | +| support_uri | str | ❌ | | +| intl_dial_in_numbers_uri | str | ❌ | | +| external_user_info | MeetingExternalUserInfoResource | ❌ | | +| dial_in_numbers | List[DialInNumberResource] | ❌ | | + + diff --git a/documentation/models/MeetingUserSettingsResponse.md b/documentation/models/MeetingUserSettingsResponse.md new file mode 100644 index 00000000..47ee7039 --- /dev/null +++ b/documentation/models/MeetingUserSettingsResponse.md @@ -0,0 +1,12 @@ +# MeetingUserSettingsResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------------------------- | :------- | :------------------------------------------------------------------------------------------------------- | +| recording | UserMeetingRecordingSetting | ❌ | Meeting recording settings locked on account level | +| schedule_meeting | ScheduleUserMeetingInfo | ❌ | Scheduling meeting settings locked on account level \|\| Settings defining how to schedule user meetings | +| telephony | TelephonyUserMeetingSettings | ❌ | | +| in_meetings | UserInMeetingResponse | ❌ | | + + diff --git a/documentation/models/MeetingsCountryResource.md b/documentation/models/MeetingsCountryResource.md new file mode 100644 index 00000000..ce302768 --- /dev/null +++ b/documentation/models/MeetingsCountryResource.md @@ -0,0 +1,16 @@ +# MeetingsCountryResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| iso_code | str | ❌ | | +| calling_code | str | ❌ | | +| emergency_calling | bool | ❌ | | +| number_selling | bool | ❌ | | +| login_allowed | bool | ❌ | | + + diff --git a/documentation/models/MeetingsNavigationInfo.md b/documentation/models/MeetingsNavigationInfo.md new file mode 100644 index 00000000..dc887828 --- /dev/null +++ b/documentation/models/MeetingsNavigationInfo.md @@ -0,0 +1,12 @@ +# MeetingsNavigationInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------ | :------- | :---------- | +| next_page | MeetingsNavigationInfoUri | ❌ | | +| previous_page | MeetingsNavigationInfoUri | ❌ | | +| first_page | MeetingsNavigationInfoUri | ❌ | | +| last_page | MeetingsNavigationInfoUri | ❌ | | + + diff --git a/documentation/models/MeetingsNavigationInfoUri.md b/documentation/models/MeetingsNavigationInfoUri.md new file mode 100644 index 00000000..7e95d4b5 --- /dev/null +++ b/documentation/models/MeetingsNavigationInfoUri.md @@ -0,0 +1,9 @@ +# MeetingsNavigationInfoUri + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/MeetingsPagingInfo.md b/documentation/models/MeetingsPagingInfo.md new file mode 100644 index 00000000..ccfb865b --- /dev/null +++ b/documentation/models/MeetingsPagingInfo.md @@ -0,0 +1,14 @@ +# MeetingsPagingInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :---------- | +| page | int | ❌ | | +| total_pages | int | ❌ | | +| per_page | int | ❌ | | +| total_elements | int | ❌ | | +| page_start | int | ❌ | | +| page_end | int | ❌ | | + + diff --git a/documentation/models/MeetingsResource.md b/documentation/models/MeetingsResource.md new file mode 100644 index 00000000..75102025 --- /dev/null +++ b/documentation/models/MeetingsResource.md @@ -0,0 +1,12 @@ +# MeetingsResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------------- | :------- | :---------- | +| uri | str | ❌ | | +| records | List[MeetingResponseResource] | ❌ | | +| paging | MeetingsPagingInfo | ❌ | | +| navigation | MeetingsNavigationInfo | ❌ | | + + diff --git a/documentation/models/MeetingsTimezoneResource.md b/documentation/models/MeetingsTimezoneResource.md new file mode 100644 index 00000000..9f204210 --- /dev/null +++ b/documentation/models/MeetingsTimezoneResource.md @@ -0,0 +1,12 @@ +# MeetingsTimezoneResource + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| description | str | ❌ | | + + diff --git a/documentation/models/MembersGroupingOptions.md b/documentation/models/MembersGroupingOptions.md new file mode 100644 index 00000000..76fd7d0e --- /dev/null +++ b/documentation/models/MembersGroupingOptions.md @@ -0,0 +1,14 @@ +# MembersGroupingOptions + +The selected data scope + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| DEPARTMENT | str | ✅ | "Department" | +| USERGROUP | str | ✅ | "UserGroup" | +| QUEUE | str | ✅ | "Queue" | +| SITE | str | ✅ | "Site" | + + diff --git a/documentation/models/MessageAttachmentInfo.md b/documentation/models/MessageAttachmentInfo.md new file mode 100644 index 00000000..51376d25 --- /dev/null +++ b/documentation/models/MessageAttachmentInfo.md @@ -0,0 +1,17 @@ +# MessageAttachmentInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :----------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of a message attachment | +| uri | str | ❌ | Canonical URI of a message attachment | +| type\_ | MessageAttachmentTypeEnum | ❌ | Type of message attachment | +| content_type | str | ❌ | MIME type for a given attachment, for instance 'audio/wav' | +| vm_duration | int | ❌ | Supported for `Voicemail` only. Duration of a voicemail in seconds | +| file_name | str | ❌ | Name of a file attached | +| size | int | ❌ | Size of attachment in bytes | +| height | int | ❌ | Attachment height in pixels if available | +| width | int | ❌ | Attachment width in pixels if available | + + diff --git a/documentation/models/MessageAttachmentInfoIntId.md b/documentation/models/MessageAttachmentInfoIntId.md new file mode 100644 index 00000000..2b61e4bd --- /dev/null +++ b/documentation/models/MessageAttachmentInfoIntId.md @@ -0,0 +1,29 @@ +# MessageAttachmentInfoIntId + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------------- | :------- | :--------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of a message attachment | +| uri | str | ❌ | Canonical URI of a message attachment | +| type\_ | MessageAttachmentInfoIntIdType | ❌ | Type of message attachment | +| content_type | str | ❌ | MIME type for a given attachment, for instance 'audio/wav' | +| filename | str | ❌ | Name of a file attached | +| size | int | ❌ | Size of an attachment in bytes | + +# MessageAttachmentInfoIntIdType + +Type of message attachment + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| AUDIORECORDING | str | ✅ | "AudioRecording" | +| AUDIOTRANSCRIPTION | str | ✅ | "AudioTranscription" | +| TEXT | str | ✅ | "Text" | +| SOURCEDOCUMENT | str | ✅ | "SourceDocument" | +| RENDEREDDOCUMENT | str | ✅ | "RenderedDocument" | +| MMSATTACHMENT | str | ✅ | "MmsAttachment" | + + diff --git a/documentation/models/MessageAttachmentTypeEnum.md b/documentation/models/MessageAttachmentTypeEnum.md new file mode 100644 index 00000000..fbb1cc89 --- /dev/null +++ b/documentation/models/MessageAttachmentTypeEnum.md @@ -0,0 +1,16 @@ +# MessageAttachmentTypeEnum + +Type of message attachment + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| AUDIORECORDING | str | ✅ | "AudioRecording" | +| AUDIOTRANSCRIPTION | str | ✅ | "AudioTranscription" | +| TEXT | str | ✅ | "Text" | +| SOURCEDOCUMENT | str | ✅ | "SourceDocument" | +| RENDEREDDOCUMENT | str | ✅ | "RenderedDocument" | +| MMSATTACHMENT | str | ✅ | "MmsAttachment" | + + diff --git a/documentation/models/MessageAvailabilityEnum.md b/documentation/models/MessageAvailabilityEnum.md new file mode 100644 index 00000000..555eb592 --- /dev/null +++ b/documentation/models/MessageAvailabilityEnum.md @@ -0,0 +1,16 @@ +# MessageAvailabilityEnum + +Message availability status. Message in 'Deleted' state is still +preserved with all its attachments and can be restored. 'Purged' means +that all attachments are already deleted and the message itself is about +to be physically deleted shortly + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ALIVE | str | ✅ | "Alive" | +| DELETED | str | ✅ | "Deleted" | +| PURGED | str | ✅ | "Purged" | + + diff --git a/documentation/models/MessageBatchCreateRequest.md b/documentation/models/MessageBatchCreateRequest.md new file mode 100644 index 00000000..4608f8e3 --- /dev/null +++ b/documentation/models/MessageBatchCreateRequest.md @@ -0,0 +1,17 @@ +# MessageBatchCreateRequest + +Batch of A2P SMS messages. This object provides specification to +send message(s) to many recipients. It contains top-level attributes, such +as `text` which apply to all `messages`. In addition to that, it is possible +to override this attribute for each message. This way a single API call may +be used to send individual messages to many recipients. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------- | :------- | :------------------------------------------------------------------------------------- | +| from\_ | str | ✅ | Sender's phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format. | +| messages | List[MessageCreateRequest] | ✅ | Individual messages | +| text | str | ❌ | Text to send to `messages.to` phone numbers. Can be overridden on a per-message basis | + + diff --git a/documentation/models/MessageBatchResponse.md b/documentation/models/MessageBatchResponse.md new file mode 100644 index 00000000..926b20b5 --- /dev/null +++ b/documentation/models/MessageBatchResponse.md @@ -0,0 +1,33 @@ +# MessageBatchResponse + +Batch of A2P SMS messages. This object provides a specification +to send message(s) to many recipients. It contains top-level attributes which apply to all messages. In addition +to that, it is possible to override this attribute for each message. This +way a single API call may be used to send individual messages to many recipients + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Unique identifier of the message batch | +| from\_ | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the messages are going to be sent | +| batch_size | int | ❌ | Total number of messages in the accepted batch | +| processed_count | int | ❌ | Total number of messages currently processed in the batch | +| last_modified_time | str | ❌ | The last time the batch was processed. | +| status | MessageBatchResponseStatus | ❌ | Current status of a message batch | +| creation_time | str | ❌ | The time at which the batch was created | +| rejected | List[RejectedRecipientResponseResource] | ❌ | The list of rejected/invalid recipients | +| cost | float | ❌ | The estimated batch cost for completed batch. Calculated after batch processing is completed. | + +# MessageBatchResponseStatus + +Current status of a message batch + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| PROCESSING | str | ✅ | "Processing" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/MessageCreateRequest.md b/documentation/models/MessageCreateRequest.md new file mode 100644 index 00000000..b4416f3d --- /dev/null +++ b/documentation/models/MessageCreateRequest.md @@ -0,0 +1,12 @@ +# MessageCreateRequest + +Single individual SMS resource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| to | List[str] | ✅ | List of phone numbers in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, recipients of this message. Currently only one number is supported | +| text | str | ❌ | Text to send, maximum number of characters is 1000 | + + diff --git a/documentation/models/MessageDetailsResponse.md b/documentation/models/MessageDetailsResponse.md new file mode 100644 index 00000000..9bb5d9b9 --- /dev/null +++ b/documentation/models/MessageDetailsResponse.md @@ -0,0 +1,22 @@ +# MessageDetailsResponse + +Complete details of the message + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a message | +| from\_ | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the message was sent | +| to | List[str] | ❌ | List of phone numbers in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format to which the message was sent | +| text | str | ❌ | Text of a message, maximum number of characters is 1000 | +| creation_time | str | ❌ | The time when this is message was created. | +| last_modified_time | str | ❌ | The time when this message was last updated. | +| message_status | SmsStatusEnum | ❌ | Current status of a message | +| segment_count | int | ❌ | Number of segments of a message | +| cost | float | ❌ | Cost of a message | +| batch_id | str | ❌ | The batch in which the message was submitted | +| direction | SmsDirectionEnum | ❌ | Direction of the SMS message | +| error_code | str | ❌ | The RC error code of the message sending failure reason | + + diff --git a/documentation/models/MessageDirectionEnum.md b/documentation/models/MessageDirectionEnum.md new file mode 100644 index 00000000..a66a9a9d --- /dev/null +++ b/documentation/models/MessageDirectionEnum.md @@ -0,0 +1,14 @@ +# MessageDirectionEnum + +Text message direction. Note that for some message types not all +directions are allowed. For example voicemail messages can +be only inbound + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + + diff --git a/documentation/models/MessageListMessageResponse.md b/documentation/models/MessageListMessageResponse.md new file mode 100644 index 00000000..f064323e --- /dev/null +++ b/documentation/models/MessageListMessageResponse.md @@ -0,0 +1,22 @@ +# MessageListMessageResponse + +The short detail of the message in the get batch response + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------- | :------- | :---------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | The Id of the message | +| batch_id | str | ❌ | Internal identifier of a batch the message was submitted in | +| from\_ | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the message is sent | +| to | List[str] | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format to which a message is sent | +| creation_time | str | ❌ | The time at which the message was created | +| last_modified_time | str | ❌ | The time at which the messages was last updated | +| message_status | SmsStatusEnum | ❌ | Current status of a message | +| segment_count | int | ❌ | Number of segments of a message | +| text | str | ❌ | Text of a message. Returned if the `view` parameter is set to 'Detailed' | +| cost | float | ❌ | Cost of a message | +| direction | SmsDirectionEnum | ❌ | Direction of the SMS message | +| error_code | str | ❌ | The RC error code of the message sending failure reason | + + diff --git a/documentation/models/MessageListResponse.md b/documentation/models/MessageListResponse.md new file mode 100644 index 00000000..a9779fcf --- /dev/null +++ b/documentation/models/MessageListResponse.md @@ -0,0 +1,12 @@ +# MessageListResponse + +List of messages retrieved for an account and other filter criteria such as `batchId` and `fromPhoneNumber` specified in the request + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------- | :------- | :-------------------------------------- | +| records | List[MessageListMessageResponse] | ❌ | An array containing individual messages | +| paging | PagingResource | ❌ | Pagination details | + + diff --git a/documentation/models/MessagePriorityEnum.md b/documentation/models/MessagePriorityEnum.md new file mode 100644 index 00000000..72e96b85 --- /dev/null +++ b/documentation/models/MessagePriorityEnum.md @@ -0,0 +1,12 @@ +# MessagePriorityEnum + +Message priority + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| HIGH | str | ✅ | "High" | + + diff --git a/documentation/models/MessageReadStatusEnum.md b/documentation/models/MessageReadStatusEnum.md new file mode 100644 index 00000000..d2af5a8e --- /dev/null +++ b/documentation/models/MessageReadStatusEnum.md @@ -0,0 +1,12 @@ +# MessageReadStatusEnum + +Message read status + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| READ | str | ✅ | "Read" | +| UNREAD | str | ✅ | "Unread" | + + diff --git a/documentation/models/MessageStatusCounts.md b/documentation/models/MessageStatusCounts.md new file mode 100644 index 00000000..af58b1df --- /dev/null +++ b/documentation/models/MessageStatusCounts.md @@ -0,0 +1,13 @@ +# MessageStatusCounts + +Message status parameters + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :---- | :------- | :------------------------------------------------------------------------------------------ | +| cost | float | ❌ | Total cost of all messages with this status code | +| count | int | ❌ | Count of messages with this status code | +| error_code_counts | dict | ❌ | Message sending/delivery errors. Returned in `deliveryFailed` and `sendingFailed` resources | + + diff --git a/documentation/models/MessageStatusEnum.md b/documentation/models/MessageStatusEnum.md new file mode 100644 index 00000000..20cdba28 --- /dev/null +++ b/documentation/models/MessageStatusEnum.md @@ -0,0 +1,21 @@ +# MessageStatusEnum + +Message status. Different message types may have different +allowed status values. For outbound faxes the aggregated message status +is returned. If, for outbound message, a status for at least one recipient is 'Queued', then +the 'Queued' value is returned. If a status for at least one recipient is +'SendingFailed', then the 'SendingFailed' value is returned. In other cases +the 'Sent' status is returned + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| QUEUED | str | ✅ | "Queued" | +| SENT | str | ✅ | "Sent" | +| DELIVERED | str | ✅ | "Delivered" | +| DELIVERYFAILED | str | ✅ | "DeliveryFailed" | +| SENDINGFAILED | str | ✅ | "SendingFailed" | +| RECEIVED | str | ✅ | "Received" | + + diff --git a/documentation/models/MessageStatusesResponse.md b/documentation/models/MessageStatusesResponse.md new file mode 100644 index 00000000..e327e151 --- /dev/null +++ b/documentation/models/MessageStatusesResponse.md @@ -0,0 +1,15 @@ +# MessageStatusesResponse + +The messages status object with details of each status + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------ | :------- | :------------------------ | +| queued | MessageStatusCounts | ❌ | Message status parameters | +| delivered | MessageStatusCounts | ❌ | Message status parameters | +| delivery_failed | MessageStatusCounts | ❌ | Message status parameters | +| sent | MessageStatusCounts | ❌ | Message status parameters | +| sending_failed | MessageStatusCounts | ❌ | Message status parameters | + + diff --git a/documentation/models/MessageStoreCallerInfoRequest.md b/documentation/models/MessageStoreCallerInfoRequest.md new file mode 100644 index 00000000..0b086939 --- /dev/null +++ b/documentation/models/MessageStoreCallerInfoRequest.md @@ -0,0 +1,12 @@ +# MessageStoreCallerInfoRequest + +Message sender information. The `phoneNumber` value should be one +the account phone numbers allowed to send the current type of messages + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :--------------------------- | +| phone_number | str | ✅ | Phone number in E.164 format | + + diff --git a/documentation/models/MessageStoreCallerInfoResponseFrom.md b/documentation/models/MessageStoreCallerInfoResponseFrom.md new file mode 100644 index 00000000..7eb55bed --- /dev/null +++ b/documentation/models/MessageStoreCallerInfoResponseFrom.md @@ -0,0 +1,15 @@ +# MessageStoreCallerInfoResponseFrom + +Sender information + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| extension_number | str | ❌ | Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message | +| extension_id | str | ❌ | Internal identifier of an extension | +| location | str | ❌ | Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) | +| name | str | ❌ | Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then | +| phone_number | str | ❌ | Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS | + + diff --git a/documentation/models/MessageStoreCallerInfoResponseTo.md b/documentation/models/MessageStoreCallerInfoResponseTo.md new file mode 100644 index 00000000..966646e9 --- /dev/null +++ b/documentation/models/MessageStoreCallerInfoResponseTo.md @@ -0,0 +1,17 @@ +# MessageStoreCallerInfoResponseTo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| extension_number | str | ❌ | Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager messages | +| extension_id | str | ❌ | | +| location | str | ❌ | Contains party location (city, state) if one can be determined from a phone number. This property is filled only when `phoneNumber` is not empty and a server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) | +| target | bool | ❌ | The `true` value specifies that message is sent exactly to this recipient. Returned in the `to` field for group MMS. Useful if one extension has several phone numbers' | +| message_status | MessageStatusEnum | ❌ | Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned | +| fax_error_code | FaxErrorCodeEnum | ❌ | | +| name | str | ❌ | Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then | +| phone_number | str | ❌ | Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS | +| recipient_id | str | ❌ | Internal identifier of a message recipient | + + diff --git a/documentation/models/MessageStoreConfiguration.md b/documentation/models/MessageStoreConfiguration.md new file mode 100644 index 00000000..320f94e0 --- /dev/null +++ b/documentation/models/MessageStoreConfiguration.md @@ -0,0 +1,9 @@ +# MessageStoreConfiguration + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| retention_period | int | ❌ | Retention policy setting, specifying how long to keep messages; the supported value range is 7-90 days. Currently, the retention period is supported for `Fax` and `Voicemail` messages only. SMS messages are stored with no time limits | + + diff --git a/documentation/models/MessageStoreReport.md b/documentation/models/MessageStoreReport.md new file mode 100644 index 00000000..c52f54ea --- /dev/null +++ b/documentation/models/MessageStoreReport.md @@ -0,0 +1,34 @@ +# MessageStoreReport + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------------- | :------- | :------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a message store report task | +| uri | str | ❌ | Canonical URI of a task | +| status | MessageStoreReportStatus | ❌ | Status of a message store report task | +| account_id | str | ❌ | Internal identifier of an account | +| extension_id | str | ❌ | Internal identifier of an extension | +| date_to | str | ❌ | The end of the time range to collect message records in ISO 8601 format including timezone | +| date_from | str | ❌ | The beginning of the time range to collect call log records in ISO 8601 format including timezone | +| start_time | str | ❌ | The time when this task was started | +| finish_time | str | ❌ | The time when this task was finished | +| message_types | List[PicMessageTypeEnum] | ❌ | Type of messages to be collected. | + +# MessageStoreReportStatus + +Status of a message store report task + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| ACCEPTED | str | ✅ | "Accepted" | +| PENDING | str | ✅ | "Pending" | +| INPROGRESS | str | ✅ | "InProgress" | +| ATTEMPTFAILED | str | ✅ | "AttemptFailed" | +| FAILED | str | ✅ | "Failed" | +| COMPLETED | str | ✅ | "Completed" | +| CANCELLED | str | ✅ | "Cancelled" | + + diff --git a/documentation/models/MessageStoreReportArchive.md b/documentation/models/MessageStoreReportArchive.md new file mode 100644 index 00000000..7365c670 --- /dev/null +++ b/documentation/models/MessageStoreReportArchive.md @@ -0,0 +1,9 @@ +# MessageStoreReportArchive + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------- | :------- | :---------- | +| records | List[ArchiveInfo] | ❌ | | + + diff --git a/documentation/models/MessageTemplateRequest.md b/documentation/models/MessageTemplateRequest.md new file mode 100644 index 00000000..86d02f52 --- /dev/null +++ b/documentation/models/MessageTemplateRequest.md @@ -0,0 +1,11 @@ +# MessageTemplateRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------- | +| display_name | str | ✅ | Name of a template | +| body | TemplateInfo | ❌ | Text message template information | +| site | Site | ❌ | Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. The default is `main-site` value. | + + diff --git a/documentation/models/MessageTemplateResponse.md b/documentation/models/MessageTemplateResponse.md new file mode 100644 index 00000000..7932f17e --- /dev/null +++ b/documentation/models/MessageTemplateResponse.md @@ -0,0 +1,13 @@ +# MessageTemplateResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a template | +| display_name | str | ❌ | Name of a template | +| body | TemplateInfo | ❌ | Text message template information | +| scope | VisibilityType | ❌ | Specifies if a template is available on a user (Personal) or a company (Company) level | +| site | Site | ❌ | Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. The default is `main-site` value. | + + diff --git a/documentation/models/MessageTemplatesListResponse.md b/documentation/models/MessageTemplatesListResponse.md new file mode 100644 index 00000000..d30fa818 --- /dev/null +++ b/documentation/models/MessageTemplatesListResponse.md @@ -0,0 +1,9 @@ +# MessageTemplatesListResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------------- | :------- | :----------------------------- | +| records | List[MessageTemplateResponse] | ❌ | List of text message templates | + + diff --git a/documentation/models/MessageTypeEnum.md b/documentation/models/MessageTypeEnum.md new file mode 100644 index 00000000..d87d7de9 --- /dev/null +++ b/documentation/models/MessageTypeEnum.md @@ -0,0 +1,14 @@ +# MessageTypeEnum + +Type of the message + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | + + diff --git a/documentation/models/MessagingNavigationInfo.md b/documentation/models/MessagingNavigationInfo.md new file mode 100644 index 00000000..9292cd5f --- /dev/null +++ b/documentation/models/MessagingNavigationInfo.md @@ -0,0 +1,14 @@ +# MessagingNavigationInfo + +Information on navigation + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------- | :------- | :--------------------------------------------------- | +| first_page | MessagingNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| next_page | MessagingNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| previous_page | MessagingNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| last_page | MessagingNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | + + diff --git a/documentation/models/MessagingNavigationInfoUri.md b/documentation/models/MessagingNavigationInfoUri.md new file mode 100644 index 00000000..2f531573 --- /dev/null +++ b/documentation/models/MessagingNavigationInfoUri.md @@ -0,0 +1,11 @@ +# MessagingNavigationInfoUri + +Canonical URI for the corresponding page of the list + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/MessagingPagingInfo.md b/documentation/models/MessagingPagingInfo.md new file mode 100644 index 00000000..9bebdce8 --- /dev/null +++ b/documentation/models/MessagingPagingInfo.md @@ -0,0 +1,16 @@ +# MessagingPagingInfo + +Information on paging + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | Current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied | +| page_start | int | ❌ | Zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty | +| page_end | int | ❌ | Zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty | +| total_pages | int | ❌ | Total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | Total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/MissedCallExtensionInfo.md b/documentation/models/MissedCallExtensionInfo.md new file mode 100644 index 00000000..669f09bd --- /dev/null +++ b/documentation/models/MissedCallExtensionInfo.md @@ -0,0 +1,12 @@ +# MissedCallExtensionInfo + +Specifies an extension (a calling group) which should be used for the missed call transfer. Returned only if the `actionType` is set to 'ConnectToExtension' + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension which should be used for the missed call transfer | +| external_number | MissedCallExtensionInfoExternalNumber | ❌ | Specifies an external PSTN number which should be used for the missed call transfer. Returned only if the actionType is set to `ConnectToExternalNumber` | + + diff --git a/documentation/models/MissedCallExtensionInfoExternalNumber.md b/documentation/models/MissedCallExtensionInfoExternalNumber.md new file mode 100644 index 00000000..d8d2efbc --- /dev/null +++ b/documentation/models/MissedCallExtensionInfoExternalNumber.md @@ -0,0 +1,11 @@ +# MissedCallExtensionInfoExternalNumber + +Specifies an external PSTN number which should be used for the missed call transfer. Returned only if the actionType is set to `ConnectToExternalNumber` + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number to which the call is forwarded. In addition to common [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, the following number patterns are supported: 11xxxxxxxxxxx, 444xxxxxxxxxxx, 616xxxxxxxxxxx, 1700yyyy; where `xxxxxxxxxxx` is a phone number in e.164 format (without '+' sign) and `yyyy` is an external short extension number. Maximum number of digits is 15 | + + diff --git a/documentation/models/MissedCallInfo.md b/documentation/models/MissedCallInfo.md new file mode 100644 index 00000000..aa84c14d --- /dev/null +++ b/documentation/models/MissedCallInfo.md @@ -0,0 +1,24 @@ +# MissedCallInfo + +Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action_type | ActionType | ❌ | Specifies the action that should be executed on a missed call. It can either be playing greeting message and disconnection, or sending call to a calling group. If 'ConnectToExtension' is set, then calling group extension should be specified | +| extension | MissedCallExtensionInfo | ❌ | Specifies an extension (a calling group) which should be used for the missed call transfer. Returned only if the `actionType` is set to 'ConnectToExtension' | + +# ActionType + +Specifies the action that should be executed on a missed call. It can either be playing greeting message and disconnection, or sending call to a calling group. If 'ConnectToExtension' is set, then calling group extension should be specified + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :--- | :------- | :-------------------------- | +| PLAYGREETINGANDDISCONNECT | str | ✅ | "PlayGreetingAndDisconnect" | +| CONNECTTOEXTENSION | str | ✅ | "ConnectToExtension" | +| CONNECTTOEXTERNALNUMBER | str | ✅ | "ConnectToExternalNumber" | + + diff --git a/documentation/models/MissedCallsInfo.md b/documentation/models/MissedCallsInfo.md new file mode 100644 index 00000000..745534a1 --- /dev/null +++ b/documentation/models/MissedCallsInfo.md @@ -0,0 +1,12 @@ +# MissedCallsInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_by_email | bool | ❌ | Email notification flag | +| notify_by_sms | bool | ❌ | SMS notification flag | +| advanced_email_addresses | List[str] | ❌ | List of recipient email addresses for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| advanced_sms_email_addresses | List[str] | ❌ | List of recipient phone numbers for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | + + diff --git a/documentation/models/MobileDeliveryMode.md b/documentation/models/MobileDeliveryMode.md new file mode 100644 index 00000000..e6e8d4d5 --- /dev/null +++ b/documentation/models/MobileDeliveryMode.md @@ -0,0 +1,33 @@ +# MobileDeliveryMode + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------ | :------- | :------------------------------------------------------------------------------------------------------ | +| transport_type | MobileDeliveryModeTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| certificate_name | str | ✅ | Certificate name for mobile notification transports | +| registration_id | str | ✅ | Device instance ID for mobile notification transports | +| encryption | MobileDeliveryModeEncryption | ✅ | Specifies if notification messages will be encrypted or not. | + +# MobileDeliveryModeTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| RC_APNS | str | ✅ | "RC/APNS" | +| RC_GCM | str | ✅ | "RC/GCM" | + +# MobileDeliveryModeEncryption + +Specifies if notification messages will be encrypted or not. + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FALSE | str | ✅ | "false" | + + diff --git a/documentation/models/MobileDeliveryModeRequest.md b/documentation/models/MobileDeliveryModeRequest.md new file mode 100644 index 00000000..b5d11fd0 --- /dev/null +++ b/documentation/models/MobileDeliveryModeRequest.md @@ -0,0 +1,22 @@ +# MobileDeliveryModeRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------ | +| transport_type | MobileDeliveryModeRequestTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| certificate_name | str | ✅ | Certificate name for mobile notification transports | +| registration_id | str | ✅ | Device instance ID for mobile notification transports | + +# MobileDeliveryModeRequestTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| RC_APNS | str | ✅ | "RC/APNS" | +| RC_GCM | str | ✅ | "RC/GCM" | + + diff --git a/documentation/models/ModelInfo.md b/documentation/models/ModelInfo.md new file mode 100644 index 00000000..926464b4 --- /dev/null +++ b/documentation/models/ModelInfo.md @@ -0,0 +1,16 @@ +# ModelInfo + +HardPhone model information + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :---------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a HardPhone device model | +| name | str | ❌ | Device name | +| addons | List[AddonInfo] | ❌ | Add-ons description | +| device_class | str | ❌ | | +| features | List[DeviceFeatureEnum] | ❌ | Device feature or multiple features supported | +| line_count | int | ❌ | Max supported count of phone lines | + + diff --git a/documentation/models/ModifyAccountBusinessAddressRequest.md b/documentation/models/ModifyAccountBusinessAddressRequest.md new file mode 100644 index 00000000..1f5131d1 --- /dev/null +++ b/documentation/models/ModifyAccountBusinessAddressRequest.md @@ -0,0 +1,12 @@ +# ModifyAccountBusinessAddressRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------ | :------- | :----------------------------- | +| company | str | ❌ | Company business name | +| email | str | ❌ | Company business email address | +| business_address | BusinessAddressInfo | ❌ | Company business address | +| main_site_name | str | ❌ | Custom site name | + + diff --git a/documentation/models/MonthlyWeek.md b/documentation/models/MonthlyWeek.md new file mode 100644 index 00000000..33d20cfe --- /dev/null +++ b/documentation/models/MonthlyWeek.md @@ -0,0 +1,15 @@ +# MonthlyWeek + +Supported together with `weeklyByDay` + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| LAST | str | ✅ | "Last" | +| FIRST | str | ✅ | "First" | +| SECOND | str | ✅ | "Second" | +| THIRD | str | ✅ | "Third" | +| FOURTH | str | ✅ | "Fourth" | + + diff --git a/documentation/models/NetworkInfo.md b/documentation/models/NetworkInfo.md new file mode 100644 index 00000000..ef6c738f --- /dev/null +++ b/documentation/models/NetworkInfo.md @@ -0,0 +1,14 @@ +# NetworkInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a network | +| uri | str | ❌ | Link to a network resource | +| name | str | ❌ | | +| site | AutomaticLocationUpdatesSiteInfo | ❌ | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | +| public_ip_ranges | List[PublicIpRangeInfo] | ❌ | | +| private_ip_ranges | List[PrivateIpRangeInfo] | ❌ | | + + diff --git a/documentation/models/NetworksList.md b/documentation/models/NetworksList.md new file mode 100644 index 00000000..c7e7479d --- /dev/null +++ b/documentation/models/NetworksList.md @@ -0,0 +1,12 @@ +# NetworksList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to a networks resource | +| records | List[NetworkInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/NonEnumeratedPagingModel.md b/documentation/models/NonEnumeratedPagingModel.md new file mode 100644 index 00000000..c439e37c --- /dev/null +++ b/documentation/models/NonEnumeratedPagingModel.md @@ -0,0 +1,13 @@ +# NonEnumeratedPagingModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| per_page | int | ✅ | Current page size, describes how many items are in each page. Matches "perPage" parameter from the request. | +| page_token | str | ❌ | Current page token. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| next_page_token | str | ❌ | A page token to be used to fetch the next page of the result set. May be omitted if the current page is the last one. | +| previous_page_token | str | ❌ | A page token to be used to fetch the previous page of the result set. May be omitted if the current page is the first one or if the result set does not support backward navigation. | +| first_page_token | str | ❌ | A page token to be used to fetch the first page of the result set. | + + diff --git a/documentation/models/NotificationDeliveryMode.md b/documentation/models/NotificationDeliveryMode.md new file mode 100644 index 00000000..90e1e3b2 --- /dev/null +++ b/documentation/models/NotificationDeliveryMode.md @@ -0,0 +1,5 @@ +# NotificationDeliveryMode + +Notification delivery transport information + + diff --git a/documentation/models/NotificationDeliveryModeRequest.md b/documentation/models/NotificationDeliveryModeRequest.md new file mode 100644 index 00000000..523b566d --- /dev/null +++ b/documentation/models/NotificationDeliveryModeRequest.md @@ -0,0 +1,5 @@ +# NotificationDeliveryModeRequest + +Notification delivery transport information + + diff --git a/documentation/models/NotificationSettings.md b/documentation/models/NotificationSettings.md new file mode 100644 index 00000000..f0b1de58 --- /dev/null +++ b/documentation/models/NotificationSettings.md @@ -0,0 +1,19 @@ +# NotificationSettings + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI of notifications settings resource | +| email_recipients | List[EmailRecipientInfo] | ❌ | List of extensions specified as email notification recipients. Returned only for call queues where queue managers are assigned as user extensions. | +| email_addresses | List[str] | ❌ | List of notification recipient email addresses | +| include_managers | bool | ❌ | Specifies if managers' emails are included in the list of emails to which notifications are sent | +| sms_email_addresses | List[str] | ❌ | List of notification recipient email addresses | +| advanced_mode | bool | ❌ | Specifies notifications settings mode. If `true` then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If `false` then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied | +| voicemails | VoicemailsInfo | ❌ | | +| inbound_faxes | InboundFaxesInfo | ❌ | | +| outbound_faxes | OutboundFaxesInfo | ❌ | | +| inbound_texts | InboundTextsInfo | ❌ | | +| missed_calls | MissedCallsInfo | ❌ | | + + diff --git a/documentation/models/NotificationSettingsUpdateRequest.md b/documentation/models/NotificationSettingsUpdateRequest.md new file mode 100644 index 00000000..526ce001 --- /dev/null +++ b/documentation/models/NotificationSettingsUpdateRequest.md @@ -0,0 +1,17 @@ +# NotificationSettingsUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| email_addresses | List[str] | ❌ | List of notification recipient email addresses. Should not be empty if 'includeManagers' parameter is set to false | +| sms_email_addresses | List[str] | ❌ | List of notification recipient email addresses | +| advanced_mode | bool | ❌ | Specifies notifications settings mode. If `true` then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If `false` then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied | +| voicemails | VoicemailsInfo | ❌ | | +| inbound_faxes | InboundFaxesInfo | ❌ | | +| outbound_faxes | OutboundFaxesInfo | ❌ | | +| inbound_texts | InboundTextsInfo | ❌ | | +| missed_calls | MissedCallsInfo | ❌ | | +| include_managers | bool | ❌ | Specifies if managers' emails are included in the list of emails to which notifications are sent. If not specified, then the value is `true` | + + diff --git a/documentation/models/OnDemandResource.md b/documentation/models/OnDemandResource.md new file mode 100644 index 00000000..a8f3b04e --- /dev/null +++ b/documentation/models/OnDemandResource.md @@ -0,0 +1,10 @@ +# OnDemandResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------------------------------------- | +| enabled | bool | ❌ | Flag for controlling OnDemand Call Recording settings | +| retention_period | int | ❌ | Retention period of a call recording, the default value is 90 days | + + diff --git a/documentation/models/OperatorInfo.md b/documentation/models/OperatorInfo.md new file mode 100644 index 00000000..09b03389 --- /dev/null +++ b/documentation/models/OperatorInfo.md @@ -0,0 +1,15 @@ +# OperatorInfo + +Site Fax/SMS recipient (operator) reference. Multi-level IVR should +be enabled + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :--------------------------------- | +| id\_ | str | ❌ | Internal identifier of an operator | +| uri | str | ❌ | Link to an operator resource | +| extension_number | str | ❌ | Extension number (pin) | +| name | str | ❌ | Operator extension user full name | + + diff --git a/documentation/models/OptOutBulkAssignFailedEntry.md b/documentation/models/OptOutBulkAssignFailedEntry.md new file mode 100644 index 00000000..7bd957d0 --- /dev/null +++ b/documentation/models/OptOutBulkAssignFailedEntry.md @@ -0,0 +1,12 @@ +# OptOutBulkAssignFailedEntry + +Represents a failure of adding opt-out / opt-in. A pair of a recipient phone number and an error message + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :------------------------------------------- | +| to | str | ❌ | A recipient phone number | +| error_message | str | ❌ | An error happened on adding opt-out / opt-in | + + diff --git a/documentation/models/OptOutBulkAssignRequest.md b/documentation/models/OptOutBulkAssignRequest.md new file mode 100644 index 00000000..f17afd0e --- /dev/null +++ b/documentation/models/OptOutBulkAssignRequest.md @@ -0,0 +1,13 @@ +# OptOutBulkAssignRequest + +Consists of `from` field and `optOuts` and `optIns` lists. Both `optOuts` and `optIns` can be empty but not simultaneously - at least one of the lists must be entered." + +**Properties** + +| Name | Type | Required | Description | +| :------- | :-------- | :------- | :---------------------------------------------------------------------------------------- | +| from\_ | str | ✅ | The phone number of a sender which the recipients should be opted out from or opted in to | +| opt_outs | List[str] | ❌ | The list of phone numbers to be opted out | +| opt_ins | List[str] | ❌ | The list of phone numbers to be opted in | + + diff --git a/documentation/models/OptOutBulkAssignResponse.md b/documentation/models/OptOutBulkAssignResponse.md new file mode 100644 index 00000000..3ae14fe5 --- /dev/null +++ b/documentation/models/OptOutBulkAssignResponse.md @@ -0,0 +1,34 @@ +# OptOutBulkAssignResponse + +The results of adding opt-outs and opt-ins + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------ | :------- | :-------------------------------------- | +| opt_ins | OptIns | ❌ | Contains successful and failed opt-ins | +| opt_outs | OptOuts | ❌ | Contains successful and failed opt-outs | + +# OptIns + +Contains successful and failed opt-ins + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------- | :------- | :---------------------------------------------------------------------------------------- | +| successful | List[str] | ❌ | Recipients' phone numbers which opt-ins were successfully added for. | +| failed | List[OptOutBulkAssignFailedEntry] | ❌ | Recipients' phone numbers which opt-ins were failed to be added for. Plus, error messages | + +# OptOuts + +Contains successful and failed opt-outs + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------- | :------- | :----------------------------------------------------------------------------------------- | +| successful | List[str] | ❌ | Recipients' phone numbers which opt-outs were successfully added for. | +| failed | List[OptOutBulkAssignFailedEntry] | ❌ | Recipients' phone numbers which opt-outs were failed to be added for. Plus, error messages | + + diff --git a/documentation/models/OptOutListResponse.md b/documentation/models/OptOutListResponse.md new file mode 100644 index 00000000..4b28a87b --- /dev/null +++ b/documentation/models/OptOutListResponse.md @@ -0,0 +1,12 @@ +# OptOutListResponse + +The list of opt outs + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------- | :------- | :---------------------------------------- | +| records | List[OptOutResponse] | ❌ | List of individual opt-out number records | +| paging | PagingResource | ❌ | Pagination details | + + diff --git a/documentation/models/OptOutResponse.md b/documentation/models/OptOutResponse.md new file mode 100644 index 00000000..2d31fdc7 --- /dev/null +++ b/documentation/models/OptOutResponse.md @@ -0,0 +1,36 @@ +# OptOutResponse + +Opt-out record + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------- | :------- | :------------------------------------------------------------------------------------------------------------------ | +| from\_ | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the recipient has opted out | +| to | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format which is opted out | +| status | OptOutResponseStatus | ❌ | Status of a phone number | +| source | Source | ❌ | | + +# OptOutResponseStatus + +Status of a phone number + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| OPTIN | str | ✅ | "OptIn" | +| OPTOUT | str | ✅ | "OptOut" | + +# Source + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| RECIPIENT | str | ✅ | "Recipient" | +| ACCOUNT | str | ✅ | "Account" | +| UPSTREAM | str | ✅ | "Upstream" | +| CARRIER | str | ✅ | "Carrier" | + + diff --git a/documentation/models/OrderBy.md b/documentation/models/OrderBy.md new file mode 100644 index 00000000..b93059a2 --- /dev/null +++ b/documentation/models/OrderBy.md @@ -0,0 +1,38 @@ +# OrderBy + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :------------------------------------------------------------------------------------------------------ | +| index | int | ❌ | Sorting priority index, starting from '1'. Optional if only one element in `orderBy` array is specified | +| field_name | FieldName | ❌ | Field name by which to sort the contacts | +| direction | OrderByDirection | ❌ | Sorting direction | + +# FieldName + +Field name by which to sort the contacts + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| FIRSTNAME | str | ✅ | "firstName" | +| LASTNAME | str | ✅ | "lastName" | +| EXTENSIONNUMBER | str | ✅ | "extensionNumber" | +| PHONENUMBER | str | ✅ | "phoneNumber" | +| EMAIL | str | ✅ | "email" | +| JOBTITLE | str | ✅ | "jobTitle" | +| DEPARTMENT | str | ✅ | "department" | + +# OrderByDirection + +Sorting direction + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| ASC | str | ✅ | "Asc" | +| DESC | str | ✅ | "Desc" | + + diff --git a/documentation/models/Origin.md b/documentation/models/Origin.md new file mode 100644 index 00000000..6045f7d5 --- /dev/null +++ b/documentation/models/Origin.md @@ -0,0 +1,10 @@ +# Origin + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INTERNAL | str | ✅ | "Internal" | +| EXTERNAL | str | ✅ | "External" | + + diff --git a/documentation/models/OriginInfo.md b/documentation/models/OriginInfo.md new file mode 100644 index 00000000..0c0a4e37 --- /dev/null +++ b/documentation/models/OriginInfo.md @@ -0,0 +1,28 @@ +# OriginInfo + +Session origin details + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------- | :------- | :------------------ | +| type\_ | OriginInfoType | ❌ | Session origin type | + +# OriginInfoType + +Session origin type + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| CALL | str | ✅ | "Call" | +| RINGOUT | str | ✅ | "RingOut" | +| RINGME | str | ✅ | "RingMe" | +| CONFERENCE | str | ✅ | "Conference" | +| GREETINGSRECORDING | str | ✅ | "GreetingsRecording" | +| VERIFICATIONCALL | str | ✅ | "VerificationCall" | +| ZOOM | str | ✅ | "Zoom" | +| CALLOUT | str | ✅ | "CallOut" | + + diff --git a/documentation/models/OutboundFaxesInfo.md b/documentation/models/OutboundFaxesInfo.md new file mode 100644 index 00000000..2b095b65 --- /dev/null +++ b/documentation/models/OutboundFaxesInfo.md @@ -0,0 +1,12 @@ +# OutboundFaxesInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_by_email | bool | ❌ | Email notification flag | +| notify_by_sms | bool | ❌ | SMS notification flag | +| advanced_email_addresses | List[str] | ❌ | List of recipient email addresses for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| advanced_sms_email_addresses | List[str] | ❌ | List of recipient phone numbers for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | + + diff --git a/documentation/models/OutboundProxyInfo.md b/documentation/models/OutboundProxyInfo.md new file mode 100644 index 00000000..87b1e972 --- /dev/null +++ b/documentation/models/OutboundProxyInfo.md @@ -0,0 +1,11 @@ +# OutboundProxyInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :--------------------------------------------- | +| region | str | ❌ | Geographical region | +| proxy | str | ❌ | SIP outbound proxy | +| proxy_tls | str | ❌ | SIP details for TLS (Transport Layer Security) | + + diff --git a/documentation/models/OwnerInfo.md b/documentation/models/OwnerInfo.md new file mode 100644 index 00000000..f9b84a12 --- /dev/null +++ b/documentation/models/OwnerInfo.md @@ -0,0 +1,12 @@ +# OwnerInfo + +Deprecated. Information on a call owner + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------- | +| account_id | str | ❌ | Internal identifier of an account that monitors a call | +| extension_id | str | ❌ | Internal identifier of an extension that monitors a call | + + diff --git a/documentation/models/PackageInfo.md b/documentation/models/PackageInfo.md new file mode 100644 index 00000000..2a655c14 --- /dev/null +++ b/documentation/models/PackageInfo.md @@ -0,0 +1,10 @@ +# PackageInfo + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------- | +| version | str | ❌ | Billing package version | +| id\_ | str | ❌ | Billing package identifier | + + diff --git a/documentation/models/PageNavigationModel.md b/documentation/models/PageNavigationModel.md new file mode 100644 index 00000000..e5b97bd5 --- /dev/null +++ b/documentation/models/PageNavigationModel.md @@ -0,0 +1,14 @@ +# PageNavigationModel + +Links to other pages of the current result set + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---------------- | :------- | :---------- | +| first_page | PageNavigationUri | ❌ | | +| next_page | PageNavigationUri | ❌ | | +| previous_page | PageNavigationUri | ❌ | | +| last_page | PageNavigationUri | ❌ | | + + diff --git a/documentation/models/PageNavigationUri.md b/documentation/models/PageNavigationUri.md new file mode 100644 index 00000000..cf353c9a --- /dev/null +++ b/documentation/models/PageNavigationUri.md @@ -0,0 +1,9 @@ +# PageNavigationUri + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI to retrieve the particular page of the result set | + + diff --git a/documentation/models/PagerCallerInfoRequest.md b/documentation/models/PagerCallerInfoRequest.md new file mode 100644 index 00000000..90d04eae --- /dev/null +++ b/documentation/models/PagerCallerInfoRequest.md @@ -0,0 +1,12 @@ +# PagerCallerInfoRequest + +Sender of a pager message. + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------- | +| extension_id | str | ❌ | Extension identifier | +| extension_number | str | ❌ | Extension number | + + diff --git a/documentation/models/Paging.md b/documentation/models/Paging.md new file mode 100644 index 00000000..8b516683 --- /dev/null +++ b/documentation/models/Paging.md @@ -0,0 +1,12 @@ +# Paging + +Paging information + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :--------------------- | +| current_page_token | str | ✅ | Current offset token | +| next_page_token | str | ❌ | Next page offset token | + + diff --git a/documentation/models/PagingDeviceInfo.md b/documentation/models/PagingDeviceInfo.md new file mode 100644 index 00000000..a306a77f --- /dev/null +++ b/documentation/models/PagingDeviceInfo.md @@ -0,0 +1,11 @@ +# PagingDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a paging device | +| uri | str | ❌ | Link to a paging device resource | +| name | str | ❌ | Name of a paging device | + + diff --git a/documentation/models/PagingGroupExtensionInfo.md b/documentation/models/PagingGroupExtensionInfo.md new file mode 100644 index 00000000..e617993d --- /dev/null +++ b/documentation/models/PagingGroupExtensionInfo.md @@ -0,0 +1,12 @@ +# PagingGroupExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :--------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a paging group user extension | +| uri | str | ❌ | Link to a paging group user extension | +| extension_number | str | ❌ | Extension number of a paging group user | +| name | str | ❌ | Name of a paging group user | + + diff --git a/documentation/models/PagingOnlyGroupDevices.md b/documentation/models/PagingOnlyGroupDevices.md new file mode 100644 index 00000000..64ae7cbc --- /dev/null +++ b/documentation/models/PagingOnlyGroupDevices.md @@ -0,0 +1,12 @@ +# PagingOnlyGroupDevices + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------- | :------- | :---------------------------------------------------------- | +| uri | str | ❌ | Link to a list of devices assigned to the paging only group | +| records | List[PagingDeviceInfo] | ❌ | List of paging devices assigned to this group | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/PagingOnlyGroupUsers.md b/documentation/models/PagingOnlyGroupUsers.md new file mode 100644 index 00000000..4dd659cf --- /dev/null +++ b/documentation/models/PagingOnlyGroupUsers.md @@ -0,0 +1,12 @@ +# PagingOnlyGroupUsers + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------------- | :------- | :------------------------------------------------------------ | +| uri | str | ❌ | Link to a list of users allowed to page the Paging Only group | +| records | List[PagingGroupExtensionInfo] | ❌ | List of users allowed to page the Paging Only group | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/PagingResource.md b/documentation/models/PagingResource.md new file mode 100644 index 00000000..cc051e2a --- /dev/null +++ b/documentation/models/PagingResource.md @@ -0,0 +1,15 @@ +# PagingResource + +Pagination details + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :------------------------------------------------- | +| page_token | str | ❌ | Page token of the current response list | +| per_page | int | ❌ | Number of records per page | +| first_page_token | str | ❌ | First page token of the current filter criteria | +| previous_page_token | str | ❌ | Previous page token of the current filter criteria | +| next_page_token | str | ❌ | Next page token of the current filter criteria | + + diff --git a/documentation/models/PagingSchema.md b/documentation/models/PagingSchema.md new file mode 100644 index 00000000..41f0306f --- /dev/null +++ b/documentation/models/PagingSchema.md @@ -0,0 +1,11 @@ +# PagingSchema + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| page | int | ✅ | | +| total_pages | int | ✅ | | +| per_page | int | ✅ | | + + diff --git a/documentation/models/ParamsInfo.md b/documentation/models/ParamsInfo.md new file mode 100644 index 00000000..428f38f8 --- /dev/null +++ b/documentation/models/ParamsInfo.md @@ -0,0 +1,10 @@ +# ParamsInfo + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :-------------- | +| name | str | ❌ | Parameter name | +| value | str | ❌ | Parameter value | + + diff --git a/documentation/models/ParkInfo.md b/documentation/models/ParkInfo.md new file mode 100644 index 00000000..1921c2fb --- /dev/null +++ b/documentation/models/ParkInfo.md @@ -0,0 +1,11 @@ +# ParkInfo + +Call park information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------- | +| id\_ | str | ❌ | Call park identifier | + + diff --git a/documentation/models/ParsePhoneNumberRequest.md b/documentation/models/ParsePhoneNumberRequest.md new file mode 100644 index 00000000..0fc864ea --- /dev/null +++ b/documentation/models/ParsePhoneNumberRequest.md @@ -0,0 +1,9 @@ +# ParsePhoneNumberRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :-------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| original_strings | List[str] | ❌ | The list of phone numbers passed as an array of strings (not more than 64 items). The maximum size of each string is 64 characters | + + diff --git a/documentation/models/ParsePhoneNumberResponse.md b/documentation/models/ParsePhoneNumberResponse.md new file mode 100644 index 00000000..39f0a95f --- /dev/null +++ b/documentation/models/ParsePhoneNumberResponse.md @@ -0,0 +1,11 @@ +# ParsePhoneNumberResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------------------------------- | :------- | :------------------------------- | +| home_country | GetCountryInfoNumberParser | ✅ | | +| phone_numbers | List[PhoneNumberInfoNumberParser] | ✅ | Parsed phone numbers information | +| uri | str | ❌ | Canonical URI of a resource | + + diff --git a/documentation/models/Participant.md b/documentation/models/Participant.md new file mode 100644 index 00000000..67e011b6 --- /dev/null +++ b/documentation/models/Participant.md @@ -0,0 +1,17 @@ +# Participant + +Participant information + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :------------------------------ | +| type\_ | str | ✅ | Participant type | +| id\_ | str | ✅ | id | +| account_id | str | ❌ | Account id | +| extension_id | str | ❌ | Extension id | +| display_name | str | ❌ | Display name | +| caller_id | str | ❌ | Caller id | +| correlation_id | str | ❌ | Pass-thru parameter in join url | + + diff --git a/documentation/models/ParticipantExtendedModel.md b/documentation/models/ParticipantExtendedModel.md new file mode 100644 index 00000000..04658da0 --- /dev/null +++ b/documentation/models/ParticipantExtendedModel.md @@ -0,0 +1,35 @@ +# ParticipantExtendedModel + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| original_role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| type\_ | ParticipantExtendedModelType | ✅ | The type of the participant specified in invite or determined at join time | +| id\_ | str | ❌ | Internal object ID | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| linked_user | RcwDomainUserModel | ❌ | | +| avatar_token | str | ❌ | A token to access avatar image from CDN. Available only for authenticated panelists | +| email | str | ❌ | User's contact email | +| qna_blocked | bool | ❌ | Boolean to indicate if the participant was blocked from Q&A | +| join_time | str | ❌ | The time (earliest) when this participant joined the session | +| leave_time | str | ❌ | The time (latest) when this participant left the session | +| was_ejected | bool | ❌ | Indicates if this participant was ejected from the webinar | +| invitee_id | str | ❌ | For invited participants - Invitee ID (matches Configuration API Invitee IDs) | +| registrant_id | str | ❌ | Registrant ID | +| unique_user_hash | str | ❌ | The hash string which is unique for each unique user | + +# ParticipantExtendedModelType + +The type of the participant specified in invite or determined at join time + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| ROOM | str | ✅ | "Room" | + + diff --git a/documentation/models/ParticipantListResource.md b/documentation/models/ParticipantListResource.md new file mode 100644 index 00000000..98440dbb --- /dev/null +++ b/documentation/models/ParticipantListResource.md @@ -0,0 +1,10 @@ +# ParticipantListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------- | :------- | :---------- | +| records | List[ParticipantExtendedModel] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/ParticipantReducedModel.md b/documentation/models/ParticipantReducedModel.md new file mode 100644 index 00000000..c815ee8e --- /dev/null +++ b/documentation/models/ParticipantReducedModel.md @@ -0,0 +1,27 @@ +# ParticipantReducedModel + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| original_role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| type\_ | ParticipantReducedModelType | ✅ | The type of the participant specified in invite or determined at join time | +| id\_ | str | ❌ | Internal object ID | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| linked_user | RcwDomainUserModel | ❌ | | +| avatar_token | str | ❌ | A token to access avatar image from CDN. Available only for authenticated panelists | + +# ParticipantReducedModelType + +The type of the participant specified in invite or determined at join time + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| ROOM | str | ✅ | "Room" | + + diff --git a/documentation/models/PartyInfo.md b/documentation/models/PartyInfo.md new file mode 100644 index 00000000..99b9b072 --- /dev/null +++ b/documentation/models/PartyInfo.md @@ -0,0 +1,12 @@ +# PartyInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------------------------------- | +| phone_number | str | ❌ | Phone number of a party | +| name | str | ❌ | Displayed name of a party | +| device_id | str | ❌ | Internal identifier of a device | +| extension_id | str | ❌ | Internal identifier of an extension | + + diff --git a/documentation/models/PartySuperviseRequest.md b/documentation/models/PartySuperviseRequest.md new file mode 100644 index 00000000..1d9827da --- /dev/null +++ b/documentation/models/PartySuperviseRequest.md @@ -0,0 +1,34 @@ +# PartySuperviseRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| mode | PartySuperviseRequestMode | ✅ | Supervising mode | +| supervisor_device_id | str | ✅ | Internal identifier of a supervisor's device | +| agent_extension_id | str | ✅ | Mailbox ID of a user that will be monitored | +| auto_answer | bool | ❌ | Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call | +| media_sdp | PartySuperviseRequestMediaSdp | ❌ | Specifies session description protocol (SDP) setting. The possible values are 'sendOnly' (only sending) meaning one-way audio streaming; and 'sendRecv' (sending/receiving) meaning two-way audio streaming | + +# PartySuperviseRequestMode + +Supervising mode + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| LISTEN | str | ✅ | "Listen" | + +# PartySuperviseRequestMediaSdp + +Specifies session description protocol (SDP) setting. The possible values are 'sendOnly' (only sending) meaning one-way audio streaming; and 'sendRecv' (sending/receiving) meaning two-way audio streaming + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SENDONLY | str | ✅ | "sendOnly" | +| SENDRECV | str | ✅ | "sendRecv" | + + diff --git a/documentation/models/PartySuperviseResponse.md b/documentation/models/PartySuperviseResponse.md new file mode 100644 index 00000000..a5e89cfa --- /dev/null +++ b/documentation/models/PartySuperviseResponse.md @@ -0,0 +1,29 @@ +# PartySuperviseResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------ | :------- | :------------------------------------------------------- | +| from\_ | PartyInfo | ❌ | | +| to | PartyInfo | ❌ | | +| direction | PartySuperviseResponseDirection | ❌ | Direction of a call | +| id\_ | str | ❌ | Internal identifier of a party that monitors a call | +| account_id | str | ❌ | Internal identifier of an account that monitors a call | +| extension_id | str | ❌ | Internal identifier of an extension that monitors a call | +| muted | bool | ❌ | Specifies if a call party is muted | +| owner | OwnerInfo | ❌ | Deprecated. Information on a call owner | +| stand_alone | bool | ❌ | Specifies if a device is stand-alone | +| status | CallStatusInfo | ❌ | Status data of a call session | + +# PartySuperviseResponseDirection + +Direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| OUTBOUND | str | ✅ | "Outbound" | +| INBOUND | str | ✅ | "Inbound" | + + diff --git a/documentation/models/PartyUpdateInfo.md b/documentation/models/PartyUpdateInfo.md new file mode 100644 index 00000000..b9b3f1ba --- /dev/null +++ b/documentation/models/PartyUpdateInfo.md @@ -0,0 +1,12 @@ +# PartyUpdateInfo + +Party update data + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| muted | bool | ❌ | Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces | +| stand_alone | bool | ❌ | If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session | + + diff --git a/documentation/models/PartyUpdateRequest.md b/documentation/models/PartyUpdateRequest.md new file mode 100644 index 00000000..4e1c4ecb --- /dev/null +++ b/documentation/models/PartyUpdateRequest.md @@ -0,0 +1,9 @@ +# PartyUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :---- | :-------------- | :------- | :---------------- | +| party | PartyUpdateInfo | ❌ | Party update data | + + diff --git a/documentation/models/PatchMessageBulkRequest.md b/documentation/models/PatchMessageBulkRequest.md new file mode 100644 index 00000000..5be80ebc --- /dev/null +++ b/documentation/models/PatchMessageBulkRequest.md @@ -0,0 +1,10 @@ +# PatchMessageBulkRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------ | :------- | :------------------------------------------------------------------------------------- | +| body | PatchMessageRequest | ✅ | Either `readStatus` or `availability` or both are required | +| resource_id | str | ❌ | Internal identifier of a resource (required when alternative syntax with '\*' is used) | + + diff --git a/documentation/models/PatchMessageRequest.md b/documentation/models/PatchMessageRequest.md new file mode 100644 index 00000000..3bd1db72 --- /dev/null +++ b/documentation/models/PatchMessageRequest.md @@ -0,0 +1,12 @@ +# PatchMessageRequest + +Either `readStatus` or `availability` or both are required + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| read_status | MessageReadStatusEnum | ❌ | Message read status | +| availability | MessageAvailabilityEnum | ❌ | Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly | + + diff --git a/documentation/models/PeerInfo.md b/documentation/models/PeerInfo.md new file mode 100644 index 00000000..13e159ee --- /dev/null +++ b/documentation/models/PeerInfo.md @@ -0,0 +1,13 @@ +# PeerInfo + +Peer session/party details. Valid in 'Gone' state of a call + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :---------- | +| session_id | str | ❌ | | +| telephony_session_id | str | ❌ | | +| party_id | str | ❌ | | + + diff --git a/documentation/models/PermissionCategoryCollectionResource.md b/documentation/models/PermissionCategoryCollectionResource.md new file mode 100644 index 00000000..b52b767b --- /dev/null +++ b/documentation/models/PermissionCategoryCollectionResource.md @@ -0,0 +1,12 @@ +# PermissionCategoryCollectionResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | | +| records | List[PermissionCategoryResource] | ❌ | | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/PermissionCategoryIdResource.md b/documentation/models/PermissionCategoryIdResource.md new file mode 100644 index 00000000..7bf8a6b7 --- /dev/null +++ b/documentation/models/PermissionCategoryIdResource.md @@ -0,0 +1,10 @@ +# PermissionCategoryIdResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | + + diff --git a/documentation/models/PermissionCategoryResource.md b/documentation/models/PermissionCategoryResource.md new file mode 100644 index 00000000..71d08595 --- /dev/null +++ b/documentation/models/PermissionCategoryResource.md @@ -0,0 +1,12 @@ +# PermissionCategoryResource + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| display_name | str | ❌ | | +| description | str | ❌ | | + + diff --git a/documentation/models/PermissionCollectionResource.md b/documentation/models/PermissionCollectionResource.md new file mode 100644 index 00000000..0714670a --- /dev/null +++ b/documentation/models/PermissionCollectionResource.md @@ -0,0 +1,12 @@ +# PermissionCollectionResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | | +| records | List[PermissionResource] | ❌ | | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/PermissionIdResource.md b/documentation/models/PermissionIdResource.md new file mode 100644 index 00000000..8eeef0f6 --- /dev/null +++ b/documentation/models/PermissionIdResource.md @@ -0,0 +1,26 @@ +# PermissionIdResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--------------------------------- | :------- | :----------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| site_compatible | PermissionIdResourceSiteCompatible | ❌ | Site compatibility flag set for permission | +| read_only | bool | ❌ | Specifies if the permission is editable on UI (if set to `true`) or not (if set to `false`) | +| assignable | bool | ❌ | Specifies if the permission can be assigned by the account administrator | +| permissions_capabilities | PermissionsCapabilities | ❌ | Advanced permissions capabilities. Returned if `advancedPermissions` query parameter is set to `true`. | + +# PermissionIdResourceSiteCompatible + +Site compatibility flag set for permission + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| COMPATIBLE | str | ✅ | "Compatible" | +| INCOMPATIBLE | str | ✅ | "Incompatible" | +| INDEPENDENT | str | ✅ | "Independent" | + + diff --git a/documentation/models/PermissionInfoAdmin.md b/documentation/models/PermissionInfoAdmin.md new file mode 100644 index 00000000..069f10de --- /dev/null +++ b/documentation/models/PermissionInfoAdmin.md @@ -0,0 +1,11 @@ +# PermissionInfoAdmin + +Admin permission + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| enabled | bool | ❌ | Specifies if a permission is enabled or not | + + diff --git a/documentation/models/PermissionInfoInt.md b/documentation/models/PermissionInfoInt.md new file mode 100644 index 00000000..1b53ba6b --- /dev/null +++ b/documentation/models/PermissionInfoInt.md @@ -0,0 +1,11 @@ +# PermissionInfoInt + +International Calling permission + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| enabled | bool | ❌ | Specifies if a permission is enabled or not | + + diff --git a/documentation/models/PermissionResource.md b/documentation/models/PermissionResource.md new file mode 100644 index 00000000..130b2abf --- /dev/null +++ b/documentation/models/PermissionResource.md @@ -0,0 +1,29 @@ +# PermissionResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| display_name | str | ❌ | | +| description | str | ❌ | | +| assignable | bool | ❌ | | +| read_only | bool | ❌ | | +| site_compatible | PermissionResourceSiteCompatible | ❌ | Site compatibility flag set for permission | +| category | PermissionCategoryIdResource | ❌ | | +| included_permissions | List[PermissionIdResource] | ❌ | | + +# PermissionResourceSiteCompatible + +Site compatibility flag set for permission + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| INCOMPATIBLE | str | ✅ | "Incompatible" | +| COMPATIBLE | str | ✅ | "Compatible" | +| INDEPENDENT | str | ✅ | "Independent" | + + diff --git a/documentation/models/PermissionsCapabilities.md b/documentation/models/PermissionsCapabilities.md new file mode 100644 index 00000000..ac23c6fd --- /dev/null +++ b/documentation/models/PermissionsCapabilities.md @@ -0,0 +1,13 @@ +# PermissionsCapabilities + +Advanced permissions capabilities. Returned if `advancedPermissions` query parameter is set to `true`. + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------- | +| enabled | bool | ❌ | Specifies whether the user is enabled with the listed permission or not | +| manage_enabled | bool | ❌ | Specifies if the user can manage the listed permission and is allowed to enable it on other users | +| grant_enabled | bool | ❌ | Specifies if the users who were enabled with the listed permission can grant it further to other users | + + diff --git a/documentation/models/PersonalContactRequest.md b/documentation/models/PersonalContactRequest.md new file mode 100644 index 00000000..c247deee --- /dev/null +++ b/documentation/models/PersonalContactRequest.md @@ -0,0 +1,36 @@ +# PersonalContactRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------- | :------- | :--------------------------------------------------------------- | +| first_name | str | ❌ | First name of a contact | +| last_name | str | ❌ | Last name of a contact | +| middle_name | str | ❌ | Middle name of a contact | +| nick_name | str | ❌ | Nick name of a contact | +| company | str | ❌ | Company name of a contact | +| job_title | str | ❌ | Job title of a contact | +| email | str | ❌ | Email of a contact | +| email2 | str | ❌ | Second email of a contact | +| email3 | str | ❌ | Third email of a contact | +| birthday | str | ❌ | Date of birth of a contact | +| web_page | str | ❌ | Contact home page URL | +| notes | str | ❌ | Notes for a contact | +| home_phone | str | ❌ | Home phone number of a contact in e.164 (with "+") format | +| home_phone2 | str | ❌ | Second home phone number of a contact in e.164 (with "+") format | +| business_phone | str | ❌ | Business phone of a contact in e.164 (with "+") format | +| business_phone2 | str | ❌ | Second business phone of a contact in e.164 (with "+") format | +| mobile_phone | str | ❌ | Mobile phone of a contact in e.164 (with "+") format | +| business_fax | str | ❌ | Business fax number of a contact in e.164 (with "+") format | +| company_phone | str | ❌ | Company number of a contact in e.164 (with "+") format | +| assistant_phone | str | ❌ | Phone number of a contact assistant in e.164 (with "+") format | +| car_phone | str | ❌ | Car phone number of a contact in e.164 (with "+") format | +| other_phone | str | ❌ | Other phone number of a contact in e.164 (with "+") format | +| other_fax | str | ❌ | Other fax number of a contact in e.164 (with "+") format | +| callback_phone | str | ❌ | Callback phone number of a contact in e.164 (with "+") format | +| home_address | ContactAddressInfo | ❌ | | +| business_address | ContactAddressInfo | ❌ | | +| other_address | ContactAddressInfo | ❌ | | +| ringtone_index | str | ❌ | Contact ringtone. Max number of symbols is 64 | + + diff --git a/documentation/models/PersonalContactResource.md b/documentation/models/PersonalContactResource.md new file mode 100644 index 00000000..0aa80ac0 --- /dev/null +++ b/documentation/models/PersonalContactResource.md @@ -0,0 +1,53 @@ +# PersonalContactResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Canonical URI of a contact | +| availability | PersonalContactResourceAvailability | ❌ | This property has a special meaning only on Address Book Sync (e.g. a contact can be `Deleted`). For simple contact list reading it has always the default value - `Alive` | +| email | str | ❌ | Email of a contact | +| id\_ | int | ❌ | Internal identifier of availability contact | +| notes | str | ❌ | Notes for a contact | +| company | str | ❌ | Company name of a contact | +| first_name | str | ❌ | First name of a contact | +| last_name | str | ❌ | Last name of a contact | +| job_title | str | ❌ | Job title of a contact | +| birthday | str | ❌ | Date of birth of a contact | +| web_page | str | ❌ | The contact home page URL | +| middle_name | str | ❌ | Middle name of a contact | +| nick_name | str | ❌ | Nick name of a contact | +| email2 | str | ❌ | Second email of a contact | +| email3 | str | ❌ | Third email of a contact | +| home_phone | str | ❌ | Home phone number of a contact in e.164 (with "+") format | +| home_phone2 | str | ❌ | Second home phone number of a contact in e.164 (with "+") format | +| business_phone | str | ❌ | Business phone of the contact in e.164 (with "+") format | +| business_phone2 | str | ❌ | Second business phone of a contact in e.164 (with "+") format | +| mobile_phone | str | ❌ | Mobile phone of a contact in e.164 (with "+") format | +| business_fax | str | ❌ | Business fax number of a contact in e.164 (with "+") format | +| company_phone | str | ❌ | Company number of a contact in e.164 (with "+") format | +| assistant_phone | str | ❌ | Phone number of a contact assistant in e.164 (with "+") format | +| car_phone | str | ❌ | Car phone number of a contact in e.164 (with "+") format | +| other_phone | str | ❌ | Other phone number of a contact in e.164 (with "+") format | +| other_fax | str | ❌ | Other fax number of a contact in e.164 (with "+") format | +| callback_phone | str | ❌ | Callback phone number of a contact in e.164 (with "+") format | +| business_address | ContactAddressInfo | ❌ | | +| home_address | ContactAddressInfo | ❌ | | +| other_address | ContactAddressInfo | ❌ | | +| ringtone_index | str | ❌ | Contact ringtone. Max number of symbols is 64 | + +# PersonalContactResourceAvailability + +This property has a special meaning only on Address Book Sync +(e.g. a contact can be `Deleted`). For simple contact list reading it +has always the default value - `Alive` + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ALIVE | str | ✅ | "Alive" | +| DELETED | str | ✅ | "Deleted" | +| PURGED | str | ✅ | "Purged" | + + diff --git a/documentation/models/PhoneLineTypeEnum.md b/documentation/models/PhoneLineTypeEnum.md new file mode 100644 index 00000000..e6a5dfc7 --- /dev/null +++ b/documentation/models/PhoneLineTypeEnum.md @@ -0,0 +1,15 @@ +# PhoneLineTypeEnum + +The type of phone line + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| UNKNOWN | str | ✅ | "Unknown" | +| STANDALONE | str | ✅ | "Standalone" | +| STANDALONEFREE | str | ✅ | "StandaloneFree" | +| BLAPRIMARY | str | ✅ | "BlaPrimary" | +| BLASECONDARY | str | ✅ | "BlaSecondary" | + + diff --git a/documentation/models/PhoneLinesInfo.md b/documentation/models/PhoneLinesInfo.md new file mode 100644 index 00000000..41c5ad47 --- /dev/null +++ b/documentation/models/PhoneLinesInfo.md @@ -0,0 +1,12 @@ +# PhoneLinesInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of a phone line | +| line_type | PhoneLineTypeEnum | ❌ | The type of phone line | +| phone_info | PhoneNumberInfoIntId | ❌ | Phone number information | +| emergency_address | EmergencyAddress | ❌ | | + + diff --git a/documentation/models/PhoneNumberCountryInfo.md b/documentation/models/PhoneNumberCountryInfo.md new file mode 100644 index 00000000..7c3e8013 --- /dev/null +++ b/documentation/models/PhoneNumberCountryInfo.md @@ -0,0 +1,13 @@ +# PhoneNumberCountryInfo + +Brief information on a phone number country + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a home country | +| uri | str | ❌ | Canonical URI of a home country | +| name | str | ❌ | Official name of a home country | + + diff --git a/documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md b/documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md new file mode 100644 index 00000000..f5f2356b --- /dev/null +++ b/documentation/models/PhoneNumberDefinitionDirectNumberWithReservationId.md @@ -0,0 +1,12 @@ +# PhoneNumberDefinitionDirectNumberWithReservationId + +To be used for direct number assignment in case number pool is not supported + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :-------------------------- | +| phone_number | str | ✅ | Phone number ID | +| reservation_id | str | ❌ | Phone number reservation ID | + + diff --git a/documentation/models/PhoneNumberDefinitionNumberId.md b/documentation/models/PhoneNumberDefinitionNumberId.md new file mode 100644 index 00000000..a3ff73dd --- /dev/null +++ b/documentation/models/PhoneNumberDefinitionNumberId.md @@ -0,0 +1,11 @@ +# PhoneNumberDefinitionNumberId + +To be used to assign a number by ID + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :-------------- | +| phone_number_id | str | ✅ | Phone number ID | + + diff --git a/documentation/models/PhoneNumberDefinitionPreferredAreaCode.md b/documentation/models/PhoneNumberDefinitionPreferredAreaCode.md new file mode 100644 index 00000000..d7e81be4 --- /dev/null +++ b/documentation/models/PhoneNumberDefinitionPreferredAreaCode.md @@ -0,0 +1,11 @@ +# PhoneNumberDefinitionPreferredAreaCode + +To use as selection hint when a "toll" number to be selected from the number pool. + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :---------------------------------------------- | +| preferred_area_code | str | ✅ | Preferred area code to use if numbers available | + + diff --git a/documentation/models/PhoneNumberDefinitionTollType.md b/documentation/models/PhoneNumberDefinitionTollType.md new file mode 100644 index 00000000..ef3b2ccc --- /dev/null +++ b/documentation/models/PhoneNumberDefinitionTollType.md @@ -0,0 +1,11 @@ +# PhoneNumberDefinitionTollType + +To use as selection criteria when a number to be selected from the number pool. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------ | :------- | :----------------------------------------- | +| toll_type | PhoneNumberTollType | ✅ | Indicates if a number is toll or toll-free | + + diff --git a/documentation/models/PhoneNumberInfoConferencing.md b/documentation/models/PhoneNumberInfoConferencing.md new file mode 100644 index 00000000..4d2d33ac --- /dev/null +++ b/documentation/models/PhoneNumberInfoConferencing.md @@ -0,0 +1,14 @@ +# PhoneNumberInfoConferencing + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| country | CountryInfoShortModel | ❌ | | +| default | bool | ❌ | The value should be `true` if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed | +| has_greeting | bool | ❌ | The value should be `true` if any greeting message is played on this number | +| location | str | ❌ | Location (city, region, state) of a conference phone number | +| phone_number | str | ❌ | Dial-in phone number to connect to a conference | +| premium | bool | ❌ | Indicates if the number is 'premium' (account phone number with the `ConferencingNumber` usageType) | + + diff --git a/documentation/models/PhoneNumberInfoIntId.md b/documentation/models/PhoneNumberInfoIntId.md new file mode 100644 index 00000000..61401501 --- /dev/null +++ b/documentation/models/PhoneNumberInfoIntId.md @@ -0,0 +1,61 @@ +# PhoneNumberInfoIntId + +Phone number information + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of a phone number | +| country | PhoneNumberCountryInfo | ❌ | Brief information on a phone number country | +| extension | DeviceProvisioningExtensionInfo | ❌ | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| label | str | ❌ | Custom user-defined name of a phone number, if any | +| location | str | ❌ | Location (City, State). Filled for local US numbers | +| payment_type | PhoneNumberInfoIntIdPaymentType | ❌ | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system | +| phone_number | str | ❌ | Phone number | +| status | str | ❌ | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral | +| type\_ | PhoneNumberInfoIntIdType | ❌ | Phone number type | +| usage_type | PhoneNumberInfoIntIdUsageType | ❌ | Usage type of the phone number | + +# PhoneNumberInfoIntIdPaymentType + +Payment type. 'External' is returned for forwarded numbers +which are not terminated in the RingCentral phone system + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| EXTERNAL | str | ✅ | "External" | +| LOCAL | str | ✅ | "Local" | + +# PhoneNumberInfoIntIdType + +Phone number type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VOICEFAX | str | ✅ | "VoiceFax" | +| FAXONLY | str | ✅ | "FaxOnly" | +| VOICEONLY | str | ✅ | "VoiceOnly" | + +# PhoneNumberInfoIntIdUsageType + +Usage type of the phone number + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | + + diff --git a/documentation/models/PhoneNumberInfoNumberParser.md b/documentation/models/PhoneNumberInfoNumberParser.md new file mode 100644 index 00000000..21c4c232 --- /dev/null +++ b/documentation/models/PhoneNumberInfoNumberParser.md @@ -0,0 +1,21 @@ +# PhoneNumberInfoNumberParser + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| original_string | str | ❌ | Original phone number string as it was passed in the request | +| country | GetCountryInfoNumberParser | ❌ | | +| area_code | str | ❌ | Area code of location. The portion of the [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) number that identifies a specific geographic region/numbering area of the national numbering plan (NANP); that can be summarized as `NPA-NXX-xxxx` and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See [North American Numbering Plan](https://en.wikipedia.org/wiki/North_American_Numbering_Plan) for details | +| dialable | str | ❌ | Dialing format of a phone number | +| e164 | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format | +| formatted_international | str | ❌ | The formatted phone number string in international format | +| formatted_national | str | ❌ | The formatted phone number string in domestic format | +| special | bool | ❌ | Indicates if the number is in a special format (for example N11 code)' | +| normalized | str | ❌ | Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format without plus sign ('+') | +| toll_free | bool | ❌ | Indicates if the number is toll free | +| sub_address | str | ❌ | Sub-Address. The portion of the number that identifies a subscriber into the subscriber internal (non-public) network. | +| subscriber_number | str | ❌ | Subscriber number. The portion of the [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) number that identifies a subscriber in a network or numbering area. | +| dtmf_postfix | str | ❌ | DTMF (Dual Tone Multi-Frequency) postfix | + + diff --git a/documentation/models/PhoneNumberResource.md b/documentation/models/PhoneNumberResource.md new file mode 100644 index 00000000..58323833 --- /dev/null +++ b/documentation/models/PhoneNumberResource.md @@ -0,0 +1,28 @@ +# PhoneNumberResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--------------------------- | :------- | :---------------------------------------------------------------------------------------- | +| formatted_phone_number | str | ❌ | | +| phone_number | str | ❌ | | +| type\_ | str | ❌ | | +| label | str | ❌ | Custom user name of a phone number, if any | +| usage_type | PhoneNumberResourceUsageType | ❌ | Usage type of phone number | +| hidden | bool | ❌ | Specifies if a phone number should be hidden or not | +| primary | bool | ❌ | Specifies if the number is primary, i.e. displayed as 'main number' and called by default | + +# PhoneNumberResourceUsageType + +Usage type of phone number + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| MOBILENUMBER | str | ✅ | "MobileNumber" | +| CONTACTNUMBER | str | ✅ | "ContactNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | + + diff --git a/documentation/models/PhoneNumberStatus.md b/documentation/models/PhoneNumberStatus.md new file mode 100644 index 00000000..81acaccf --- /dev/null +++ b/documentation/models/PhoneNumberStatus.md @@ -0,0 +1,15 @@ +# PhoneNumberStatus + +Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| PENDING | str | ✅ | "Pending" | +| PORTEDIN | str | ✅ | "PortedIn" | +| TEMPORARY | str | ✅ | "Temporary" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/PhoneNumberTollType.md b/documentation/models/PhoneNumberTollType.md new file mode 100644 index 00000000..a58573db --- /dev/null +++ b/documentation/models/PhoneNumberTollType.md @@ -0,0 +1,12 @@ +# PhoneNumberTollType + +Indicates if a number is toll or toll-free + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| TOLL | str | ✅ | "Toll" | +| TOLLFREE | str | ✅ | "TollFree" | + + diff --git a/documentation/models/PhoneNumberType.md b/documentation/models/PhoneNumberType.md new file mode 100644 index 00000000..114593c9 --- /dev/null +++ b/documentation/models/PhoneNumberType.md @@ -0,0 +1,13 @@ +# PhoneNumberType + +Type of phone number + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VOICEFAX | str | ✅ | "VoiceFax" | +| VOICEONLY | str | ✅ | "VoiceOnly" | +| FAXONLY | str | ✅ | "FaxOnly" | + + diff --git a/documentation/models/PhoneNumberUsageType.md b/documentation/models/PhoneNumberUsageType.md new file mode 100644 index 00000000..78ed7021 --- /dev/null +++ b/documentation/models/PhoneNumberUsageType.md @@ -0,0 +1,26 @@ +# PhoneNumberUsageType + +Usage type of phone number + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------- | :--- | :------- | :------------------------------------- | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| INVENTORY | str | ✅ | "Inventory" | +| INVENTORYPARTNERBUSINESSMOBILENUMBER | str | ✅ | "InventoryPartnerBusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| PHONELINE | str | ✅ | "PhoneLine" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| MEETINGSNUMBER | str | ✅ | "MeetingsNumber" | +| BUSINESSMOBILENUMBER | str | ✅ | "BusinessMobileNumber" | +| ELIN | str | ✅ | "ELIN" | + + diff --git a/documentation/models/PicMessageTypeEnum.md b/documentation/models/PicMessageTypeEnum.md new file mode 100644 index 00000000..95fe01d1 --- /dev/null +++ b/documentation/models/PicMessageTypeEnum.md @@ -0,0 +1,14 @@ +# PicMessageTypeEnum + +Type of messages to be collected + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FAX | str | ✅ | "Fax" | +| SMS | str | ✅ | "SMS" | +| VOICEMAIL | str | ✅ | "VoiceMail" | +| PAGER | str | ✅ | "Pager" | + + diff --git a/documentation/models/PickupTarget.md b/documentation/models/PickupTarget.md new file mode 100644 index 00000000..33276b19 --- /dev/null +++ b/documentation/models/PickupTarget.md @@ -0,0 +1,9 @@ +# PickupTarget + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :--------------------------------------------------------- | +| device_id | str | ✅ | Device identifier that is used to pick up the parked call. | + + diff --git a/documentation/models/PlatformPaymentType.md b/documentation/models/PlatformPaymentType.md new file mode 100644 index 00000000..fb28ef71 --- /dev/null +++ b/documentation/models/PlatformPaymentType.md @@ -0,0 +1,17 @@ +# PlatformPaymentType + +Payment type. 'External' is returned for forwarded numbers +which are not terminated in the RingCentral phone system + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------- | :--- | :------- | :------------------------------- | +| EXTERNAL | str | ✅ | "External" | +| TOLLFREE | str | ✅ | "TollFree" | +| LOCAL | str | ✅ | "Local" | +| BUSINESSMOBILENUMBERPROVIDER | str | ✅ | "BusinessMobileNumberProvider" | +| EXTERNALNUMBERPROVIDER | str | ✅ | "ExternalNumberProvider" | +| EXTERNALNUMBERPROVIDERTOLLFREE | str | ✅ | "ExternalNumberProviderTollFree" | + + diff --git a/documentation/models/PostalAddress.md b/documentation/models/PostalAddress.md new file mode 100644 index 00000000..88de0c07 --- /dev/null +++ b/documentation/models/PostalAddress.md @@ -0,0 +1,16 @@ +# PostalAddress + +Postal address/location + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------------- | +| street | str | ✅ | Street address | +| city | str | ✅ | City name | +| zip | str | ✅ | Postal code in the target country | +| country | str | ✅ | ISO-3166-1 2-letter country code (alpha2) | +| street2 | str | ❌ | Street address (2nd line) | +| state | str | ❌ | State or province information in the target country | + + diff --git a/documentation/models/PresenceCallQueueInfo.md b/documentation/models/PresenceCallQueueInfo.md new file mode 100644 index 00000000..b90ba14c --- /dev/null +++ b/documentation/models/PresenceCallQueueInfo.md @@ -0,0 +1,14 @@ +# PresenceCallQueueInfo + +Call queue information + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :---------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a call queue | +| name | str | ❌ | Name of a call queue | +| extension_number | str | ❌ | Extension number of a call queue | +| editable_member_status | bool | ❌ | Flag allow members to change their queue status | + + diff --git a/documentation/models/PresenceInfoRequest.md b/documentation/models/PresenceInfoRequest.md new file mode 100644 index 00000000..e686f891 --- /dev/null +++ b/documentation/models/PresenceInfoRequest.md @@ -0,0 +1,50 @@ +# PresenceInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| user_status | PresenceInfoRequestUserStatus | ❌ | | +| dnd_status | PresenceInfoRequestDndStatus | ❌ | | +| message | str | ❌ | | +| allow_see_my_presence | bool | ❌ | | +| ring_on_monitored_call | bool | ❌ | | +| pick_up_calls_on_hold | bool | ❌ | | +| caller_id_visibility | PresenceInfoRequestCallerIdVisibility | ❌ | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | + +# PresenceInfoRequestUserStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| BUSY | str | ✅ | "Busy" | +| AVAILABLE | str | ✅ | "Available" | + +# PresenceInfoRequestDndStatus + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--- | :------- | :--------------------------- | +| TAKEALLCALLS | str | ✅ | "TakeAllCalls" | +| DONOTACCEPTDEPARTMENTCALLS | str | ✅ | "DoNotAcceptDepartmentCalls" | +| TAKEDEPARTMENTCALLSONLY | str | ✅ | "TakeDepartmentCallsOnly" | +| DONOTACCEPTANYCALLS | str | ✅ | "DoNotAcceptAnyCalls" | +| UNKNOWN | str | ✅ | "Unknown" | + +# PresenceInfoRequestCallerIdVisibility + +Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, +the following visibility options are supported via this parameter - All, None, PermittedUsers + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| ALL | str | ✅ | "All" | +| NONE | str | ✅ | "None" | +| PERMITTEDUSERS | str | ✅ | "PermittedUsers" | + + diff --git a/documentation/models/PresenceInfoResponse.md b/documentation/models/PresenceInfoResponse.md new file mode 100644 index 00000000..f589d81b --- /dev/null +++ b/documentation/models/PresenceInfoResponse.md @@ -0,0 +1,93 @@ +# PresenceInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to the presence resource | +| user_status | PresenceInfoResponseUserStatus | ❌ | | +| dnd_status | PresenceInfoResponseDndStatus | ❌ | | +| message | str | ❌ | | +| allow_see_my_presence | bool | ❌ | | +| caller_id_visibility | PresenceInfoResponseCallerIdVisibility | ❌ | Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers | +| ring_on_monitored_call | bool | ❌ | | +| pick_up_calls_on_hold | bool | ❌ | | +| active_calls | List[ActiveCallInfo] | ❌ | | +| extension | GetPresenceExtensionInfo | ❌ | Information on extension, for which this presence data is returned | +| meeting_status | PresenceInfoResponseMeetingStatus | ❌ | Meetings presence status | +| telephony_status | PresenceInfoResponseTelephonyStatus | ❌ | Telephony presence status. Returned if telephony status is changed | +| presence_status | PresenceInfoResponsePresenceStatus | ❌ | Aggregated presence status, calculated from a number of sources | + +# PresenceInfoResponseUserStatus + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| BUSY | str | ✅ | "Busy" | +| AVAILABLE | str | ✅ | "Available" | + +# PresenceInfoResponseDndStatus + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--- | :------- | :--------------------------- | +| TAKEALLCALLS | str | ✅ | "TakeAllCalls" | +| DONOTACCEPTDEPARTMENTCALLS | str | ✅ | "DoNotAcceptDepartmentCalls" | +| TAKEDEPARTMENTCALLSONLY | str | ✅ | "TakeDepartmentCallsOnly" | +| DONOTACCEPTANYCALLS | str | ✅ | "DoNotAcceptAnyCalls" | +| UNKNOWN | str | ✅ | "Unknown" | + +# PresenceInfoResponseCallerIdVisibility + +Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, +the following visibility options are supported via this parameter - All, None, PermittedUsers + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| ALL | str | ✅ | "All" | +| NONE | str | ✅ | "None" | +| PERMITTEDUSERS | str | ✅ | "PermittedUsers" | + +# PresenceInfoResponseMeetingStatus + +Meetings presence status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| CONNECTED | str | ✅ | "Connected" | +| DISCONNECTED | str | ✅ | "Disconnected" | + +# PresenceInfoResponseTelephonyStatus + +Telephony presence status. Returned if telephony status is changed + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NOCALL | str | ✅ | "NoCall" | +| CALLCONNECTED | str | ✅ | "CallConnected" | +| RINGING | str | ✅ | "Ringing" | +| ONHOLD | str | ✅ | "OnHold" | +| PARKEDCALL | str | ✅ | "ParkedCall" | + +# PresenceInfoResponsePresenceStatus + +Aggregated presence status, calculated from a number of sources + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| BUSY | str | ✅ | "Busy" | +| AVAILABLE | str | ✅ | "Available" | + + diff --git a/documentation/models/PresenceNavigationInfo.md b/documentation/models/PresenceNavigationInfo.md new file mode 100644 index 00000000..a5eae0c5 --- /dev/null +++ b/documentation/models/PresenceNavigationInfo.md @@ -0,0 +1,14 @@ +# PresenceNavigationInfo + +Information on navigation + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------ | :------- | :--------------------------------------------------- | +| first_page | PresenceNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| next_page | PresenceNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| previous_page | PresenceNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | +| last_page | PresenceNavigationInfoUri | ❌ | Canonical URI for the corresponding page of the list | + + diff --git a/documentation/models/PresenceNavigationInfoUri.md b/documentation/models/PresenceNavigationInfoUri.md new file mode 100644 index 00000000..5105bcd0 --- /dev/null +++ b/documentation/models/PresenceNavigationInfoUri.md @@ -0,0 +1,11 @@ +# PresenceNavigationInfoUri + +Canonical URI for the corresponding page of the list + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/PresencePagingInfo.md b/documentation/models/PresencePagingInfo.md new file mode 100644 index 00000000..dd8a00fd --- /dev/null +++ b/documentation/models/PresencePagingInfo.md @@ -0,0 +1,16 @@ +# PresencePagingInfo + +Information on paging + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied | +| page_start | int | ❌ | The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty | +| page_end | int | ❌ | The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty | +| total_pages | int | ❌ | The total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | The total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/PresetInfo.md b/documentation/models/PresetInfo.md new file mode 100644 index 00000000..89ec2bdb --- /dev/null +++ b/documentation/models/PresetInfo.md @@ -0,0 +1,11 @@ +# PresetInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------- | +| uri | str | ❌ | Link to a greeting resource | +| id\_ | str | ❌ | Internal identifier of a greeting | +| name | str | ❌ | Name of a greeting | + + diff --git a/documentation/models/PrimaryCqInfo.md b/documentation/models/PrimaryCqInfo.md new file mode 100644 index 00000000..c5a11286 --- /dev/null +++ b/documentation/models/PrimaryCqInfo.md @@ -0,0 +1,28 @@ +# PrimaryCqInfo + +Primary call session information. Supported for Call Queues only + +**Properties** + +| Name | Type | Required | Description | +| :----- | :---------------- | :------- | :------------------------------------------------------------------------- | +| type\_ | PrimaryCqInfoType | ❌ | Call information to be displayed as 'Line 1' for a call queue call session | +| value | str | ❌ | Call information value | + +# PrimaryCqInfoType + +Call information to be displayed as 'Line 1' for a call queue call session + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| PHONENUMBERLABEL | str | ✅ | "PhoneNumberLabel" | +| PHONENUMBER | str | ✅ | "PhoneNumber" | +| QUEUEEXTENSION | str | ✅ | "QueueExtension" | +| QUEUENAME | str | ✅ | "QueueName" | +| CALLERIDNAME | str | ✅ | "CallerIdName" | +| CALLERIDNUMBER | str | ✅ | "CallerIdNumber" | +| NONE | str | ✅ | "None" | + + diff --git a/documentation/models/PrivateIpRangeInfo.md b/documentation/models/PrivateIpRangeInfo.md new file mode 100644 index 00000000..ad1e5643 --- /dev/null +++ b/documentation/models/PrivateIpRangeInfo.md @@ -0,0 +1,16 @@ +# PrivateIpRangeInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | | +| start_ip | str | ❌ | | +| end_ip | str | ❌ | | +| name | str | ❌ | Network name | +| emergency_address | CommonEmergencyLocationAddressInfo | ❌ | | +| emergency_location_id | str | ❌ | Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise an error is returned | +| matched | bool | ❌ | | +| emergency_location | EmergencyLocationInfo | ❌ | Emergency response location information | + + diff --git a/documentation/models/PrivateIpRangeInfoRequest.md b/documentation/models/PrivateIpRangeInfoRequest.md new file mode 100644 index 00000000..31fe5c8e --- /dev/null +++ b/documentation/models/PrivateIpRangeInfoRequest.md @@ -0,0 +1,15 @@ +# PrivateIpRangeInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :----------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | | +| start_ip | str | ❌ | | +| end_ip | str | ❌ | | +| name | str | ❌ | Network name | +| emergency_address | LocationUpdatesEmergencyAddressInfoRequest | ❌ | Emergency address assigned to the switch. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned | +| emergency_location_id | str | ❌ | Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned | +| emergency_location | ErlLocationInfo | ❌ | Emergency response location information | + + diff --git a/documentation/models/ProfileImageInfo.md b/documentation/models/ProfileImageInfo.md new file mode 100644 index 00000000..ee6a50d8 --- /dev/null +++ b/documentation/models/ProfileImageInfo.md @@ -0,0 +1,15 @@ +# ProfileImageInfo + +Information on profile image + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------ | :------- | :------------------------------------------------------------------------------------------------- | +| uri | str | ✅ | Link to a profile image. If an image is not uploaded for an extension, only `uri` is returned | +| etag | str | ❌ | Identifier of an image | +| last_modified | str | ❌ | Date/time when an image was last updated, in ISO 8601 format, for example 2016-03-10T18:07:52.534Z | +| content_type | str | ❌ | The type of image | +| scales | List[ProfileImageInfoUri] | ❌ | List of URIs to profile images in different dimensions | + + diff --git a/documentation/models/ProfileImageInfoUri.md b/documentation/models/ProfileImageInfoUri.md new file mode 100644 index 00000000..ef336908 --- /dev/null +++ b/documentation/models/ProfileImageInfoUri.md @@ -0,0 +1,9 @@ +# ProfileImageInfoUri + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/PromptInfo.md b/documentation/models/PromptInfo.md new file mode 100644 index 00000000..02c4ba8d --- /dev/null +++ b/documentation/models/PromptInfo.md @@ -0,0 +1,13 @@ +# PromptInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------ | +| uri | str | ❌ | Internal identifier of a prompt | +| id\_ | str | ❌ | Link to a prompt metadata | +| content_type | str | ❌ | Type of prompt media content | +| content_uri | str | ❌ | Link to a prompt media content | +| filename | str | ❌ | Name of a prompt | + + diff --git a/documentation/models/PromptLanguageInfo.md b/documentation/models/PromptLanguageInfo.md new file mode 100644 index 00000000..f6410813 --- /dev/null +++ b/documentation/models/PromptLanguageInfo.md @@ -0,0 +1,14 @@ +# PromptLanguageInfo + +For 'TextToSpeech' mode only. Prompt language metadata + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| uri | str | ❌ | Link to a prompt language | +| id\_ | str | ❌ | Internal identifier of a language | +| name | str | ❌ | Language name | +| locale_code | str | ❌ | Language locale code | + + diff --git a/documentation/models/PronouncedNameInfo.md b/documentation/models/PronouncedNameInfo.md new file mode 100644 index 00000000..7a822f92 --- /dev/null +++ b/documentation/models/PronouncedNameInfo.md @@ -0,0 +1,27 @@ +# PronouncedNameInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :----------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type\_ | PronouncedNameInfoType | ❌ | The method used to pronounce the user's name: - `Default` - default extension name; first and last name specified in user's profile are pronounced using text-to-speech; - `TextToSpeech` - custom text specified by a user pronounced using text-to-speech; - `Recorded` - custom audio uploaded by a user, the name recorded in user's own voice (supported only for extension retrieval). | +| text | str | ❌ | Custom text (for `TextToSpeech` type only) | +| prompt | PronouncedNamePromptInfo | ❌ | | + +# PronouncedNameInfoType + +The method used to pronounce the user's name: + +- `Default` - default extension name; first and last name specified in user's profile are pronounced using text-to-speech; +- `TextToSpeech` - custom text specified by a user pronounced using text-to-speech; +- `Recorded` - custom audio uploaded by a user, the name recorded in user's own voice (supported only for extension retrieval). + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| DEFAULT | str | ✅ | "Default" | +| TEXTTOSPEECH | str | ✅ | "TextToSpeech" | +| RECORDED | str | ✅ | "Recorded" | + + diff --git a/documentation/models/PronouncedNamePromptInfo.md b/documentation/models/PronouncedNamePromptInfo.md new file mode 100644 index 00000000..c0e41c11 --- /dev/null +++ b/documentation/models/PronouncedNamePromptInfo.md @@ -0,0 +1,22 @@ +# PronouncedNamePromptInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------- | :------- | :------------------------ | +| id\_ | str | ❌ | | +| content_uri | str | ❌ | Link to a prompt resource | +| content_type | PronouncedNamePromptInfoContentType | ❌ | Content media type | + +# PronouncedNamePromptInfoContentType + +Content media type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| AUDIO_MPEG | str | ✅ | "audio/mpeg" | +| AUDIO_WAV | str | ✅ | "audio/wav" | + + diff --git a/documentation/models/ProvisioningSiteInfo.md b/documentation/models/ProvisioningSiteInfo.md new file mode 100644 index 00000000..7c3dc4ef --- /dev/null +++ b/documentation/models/ProvisioningSiteInfo.md @@ -0,0 +1,16 @@ +# ProvisioningSiteInfo + +Site data. If multi-site feature is turned on for an account, +then ID of a site must be specified. In order to assign a wireless +point to the main site (company) the site ID should be set to `main-site` + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a site | +| uri | str | ❌ | Link to a site resource | +| name | str | ❌ | Name of a site | +| code | str | ❌ | Site code value. Returned only if specified | + + diff --git a/documentation/models/PubNubDeliveryMode.md b/documentation/models/PubNubDeliveryMode.md new file mode 100644 index 00000000..f19ee561 --- /dev/null +++ b/documentation/models/PubNubDeliveryMode.md @@ -0,0 +1,36 @@ +# PubNubDeliveryMode + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| transport_type | PubNubDeliveryModeTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| encryption | bool | ✅ | Optional. Specifies if notification messages will be encrypted or not. Please note that for some event filters (e.g. presence) encryption is mandatory and `false` value provided by caller will be ignored. | +| address | str | ✅ | PubNub channel name | +| subscriber_key | str | ✅ | PubNub credential required to subscribe to the channel | +| secret_key | str | ✅ | PubNub credential required to subscribe to the channel | +| encryption_algorithm | EncryptionAlgorithm | ❌ | (Only for a "PubNub" transport, returned only if `encryption` is `true`) Encryption algorithm used | +| encryption_key | str | ❌ | (Only for a "PubNub" transport, returned only if `encryption` is `true`) Cryptographic key to decrypt PubNub notification messages | + +# PubNubDeliveryModeTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| PUBNUB | str | ✅ | "PubNub" | + +# EncryptionAlgorithm + +(Only for a "PubNub" transport, returned only if `encryption` is `true`) +Encryption algorithm used + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| AES | str | ✅ | "AES" | + + diff --git a/documentation/models/PubNubDeliveryModeRequest.md b/documentation/models/PubNubDeliveryModeRequest.md new file mode 100644 index 00000000..a65a94bb --- /dev/null +++ b/documentation/models/PubNubDeliveryModeRequest.md @@ -0,0 +1,20 @@ +# PubNubDeliveryModeRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| transport_type | PubNubDeliveryModeRequestTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| encryption | bool | ❌ | Optional. Specifies if notification messages will be encrypted or not. Please note that for some event filters (e.g. presence) encryption is mandatory and `false` value provided by caller will be ignored. | + +# PubNubDeliveryModeRequestTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| PUBNUB | str | ✅ | "PubNub" | + + diff --git a/documentation/models/PublicIpRangeInfo.md b/documentation/models/PublicIpRangeInfo.md new file mode 100644 index 00000000..363c6e53 --- /dev/null +++ b/documentation/models/PublicIpRangeInfo.md @@ -0,0 +1,12 @@ +# PublicIpRangeInfo + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| start_ip | str | ❌ | | +| end_ip | str | ❌ | | +| matched | bool | ❌ | | + + diff --git a/documentation/models/PublicMeetingInvitationResponse.md b/documentation/models/PublicMeetingInvitationResponse.md new file mode 100644 index 00000000..492bac42 --- /dev/null +++ b/documentation/models/PublicMeetingInvitationResponse.md @@ -0,0 +1,9 @@ +# PublicMeetingInvitationResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------- | +| invitation | str | ❌ | Meeting invitation | + + diff --git a/documentation/models/PunctuateInput.md b/documentation/models/PunctuateInput.md new file mode 100644 index 00000000..5fcdedb2 --- /dev/null +++ b/documentation/models/PunctuateInput.md @@ -0,0 +1,9 @@ +# PunctuateInput + +**Properties** + +| Name | Type | Required | Description | +| :---- | :-------- | :------- | :---------- | +| texts | List[str] | ✅ | | + + diff --git a/documentation/models/PunctuateOutput.md b/documentation/models/PunctuateOutput.md new file mode 100644 index 00000000..49898ca7 --- /dev/null +++ b/documentation/models/PunctuateOutput.md @@ -0,0 +1,9 @@ +# PunctuateOutput + +**Properties** + +| Name | Type | Required | Description | +| :---- | :-------- | :------- | :---------- | +| texts | List[str] | ✅ | | + + diff --git a/documentation/models/QueueInfo.md b/documentation/models/QueueInfo.md new file mode 100644 index 00000000..7e1003c1 --- /dev/null +++ b/documentation/models/QueueInfo.md @@ -0,0 +1,93 @@ +# QueueInfo + +Queue settings applied for department (call queue) extension type, +with the 'AgentQueue' value specified as a call handling action + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------- | :-------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| transfer_mode | TransferMode | ❌ | Specifies how calls are transferred to group members | +| transfer | List[TransferInfo] | ❌ | Call transfer information | +| no_answer_action | NoAnswerAction | ❌ | Specifies the type of action to be taken if: members are available but no one answers, or all members are busy/unavailable. This option is available for Business hours only. For simultaneous transfer mode only 'WaitPrimaryMembers' and 'WaitPrimaryAndOverflowMembers' are supported | +| fixed_order_agents | List[FixedOrderAgents] | ❌ | Information on a call forwarding rule | +| hold_audio_interruption_mode | HoldAudioInterruptionMode | ❌ | Connecting audio interruption mode | +| hold_audio_interruption_period | int | ❌ | Connecting audio interruption message period in seconds | +| hold_time_expiration_action | HoldTimeExpirationAction | ❌ | Specifies the type of action to be taken after the hold time (waiting for an available call queue member) expires. If 'TransferToExtension' option is selected, the extension specified in `transfer` field is used. The default value is `Voicemail` | +| agent_timeout | int | ❌ | Maximum time in seconds to wait for a call queue member before trying the next member | +| wrap_up_time | int | ❌ | Minimum post-call wrap up time in seconds before agent status is automatically set; the value range is from 0 to 300 sec. | +| hold_time | int | ❌ | Maximum hold time in seconds to wait for an available call queue member | +| max_callers | int | ❌ | Maximum count of callers on hold; the limitation is 25 callers | +| max_callers_action | MaxCallersAction | ❌ | Specifies the type of action to be taken if count of callers on hold exceeds the supported maximum | +| unconditional_forwarding | List[UnconditionalForwardingInfo] | ❌ | | + +# TransferMode + +Specifies how calls are transferred to group members + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ROTATING | str | ✅ | "Rotating" | +| SIMULTANEOUS | str | ✅ | "Simultaneous" | +| FIXEDORDER | str | ✅ | "FixedOrder" | + +# NoAnswerAction + +Specifies the type of action to be taken if: members are available +but no one answers, or all members are busy/unavailable. This option is +available for Business hours only. For simultaneous transfer mode only +'WaitPrimaryMembers' and 'WaitPrimaryAndOverflowMembers' are supported + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------- | :--- | :------- | :------------------------------ | +| WAITPRIMARYMEMBERS | str | ✅ | "WaitPrimaryMembers" | +| WAITPRIMARYANDOVERFLOWMEMBERS | str | ✅ | "WaitPrimaryAndOverflowMembers" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | + +# HoldAudioInterruptionMode + +Connecting audio interruption mode + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NEVER | str | ✅ | "Never" | +| WHENMUSICENDS | str | ✅ | "WhenMusicEnds" | +| PERIODICALLY | str | ✅ | "Periodically" | + +# HoldTimeExpirationAction + +Specifies the type of action to be taken after the hold time +(waiting for an available call queue member) expires. If 'TransferToExtension' +option is selected, the extension specified in `transfer` field is used. +The default value is `Voicemail` + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | +| VOICEMAIL | str | ✅ | "Voicemail" | + +# MaxCallersAction + +Specifies the type of action to be taken if count of callers on hold exceeds the supported maximum + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| VOICEMAIL | str | ✅ | "Voicemail" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | + + diff --git a/documentation/models/QueueOpportunities.md b/documentation/models/QueueOpportunities.md new file mode 100644 index 00000000..054c2590 --- /dev/null +++ b/documentation/models/QueueOpportunities.md @@ -0,0 +1,12 @@ +# QueueOpportunities + +Queue opportunities data for the specified grouping + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :---------------------------- | +| value_type | ValueType | ✅ | Unit of the result value | +| values | float | ✅ | Value for queue opportunities | + + diff --git a/documentation/models/QueueOpportunitiesAggregationType.md b/documentation/models/QueueOpportunitiesAggregationType.md new file mode 100644 index 00000000..5f6243b7 --- /dev/null +++ b/documentation/models/QueueOpportunitiesAggregationType.md @@ -0,0 +1,11 @@ +# QueueOpportunitiesAggregationType + +Counter aggregation type for queue opportunities, limited to `Sum` only. + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| SUM | str | ✅ | "Sum" | + + diff --git a/documentation/models/QueueShortInfoResource.md b/documentation/models/QueueShortInfoResource.md new file mode 100644 index 00000000..4960f231 --- /dev/null +++ b/documentation/models/QueueShortInfoResource.md @@ -0,0 +1,10 @@ +# QueueShortInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Call queue extension identifier | +| name | str | ❌ | Call queue name (read-only) | + + diff --git a/documentation/models/QueueSlaOptions.md b/documentation/models/QueueSlaOptions.md new file mode 100644 index 00000000..c45948f1 --- /dev/null +++ b/documentation/models/QueueSlaOptions.md @@ -0,0 +1,10 @@ +# QueueSlaOptions + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| INSLA | str | ✅ | "InSla" | +| OUTSLA | str | ✅ | "OutSla" | + + diff --git a/documentation/models/RangesInfo.md b/documentation/models/RangesInfo.md new file mode 100644 index 00000000..418de76e --- /dev/null +++ b/documentation/models/RangesInfo.md @@ -0,0 +1,10 @@ +# RangesInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from\_ | str | ❌ | Beginning timestamp of the range in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), for example _2018-10-29T14:00:00_, _2018-10-29T14:00:00Z_, _2018-10-29T14:00:00+0100_ | +| to | str | ❌ | Ending timestamp of the range in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), for example _2018-10-29T14:00:00_, _2018-10-29T14:00:00Z_, _2018-10-29T14:00:00+0100_ | + + diff --git a/documentation/models/RcwDomainUserModel.md b/documentation/models/RcwDomainUserModel.md new file mode 100644 index 00000000..97eefa11 --- /dev/null +++ b/documentation/models/RcwDomainUserModel.md @@ -0,0 +1,22 @@ +# RcwDomainUserModel + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----- | :------- | :-------------- | +| user_id | str | ✅ | User ID | +| account_id | str | ✅ | Account ID | +| domain | Domain | ✅ | Identity domain | + +# Domain + +Identity domain + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| PBX | str | ✅ | "pbx" | +| ILM | str | ✅ | "ilm" | + + diff --git a/documentation/models/RcwInviteeTypeEnum.md b/documentation/models/RcwInviteeTypeEnum.md new file mode 100644 index 00000000..246f50e8 --- /dev/null +++ b/documentation/models/RcwInviteeTypeEnum.md @@ -0,0 +1,12 @@ +# RcwInviteeTypeEnum + +The type of the webinar invitee + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| ROOM | str | ✅ | "Room" | + + diff --git a/documentation/models/RcwLinkedUserModel.md b/documentation/models/RcwLinkedUserModel.md new file mode 100644 index 00000000..a2f1e3c1 --- /dev/null +++ b/documentation/models/RcwLinkedUserModel.md @@ -0,0 +1,11 @@ +# RcwLinkedUserModel + +The internal IDs of RC-authenticated users. + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :---------- | +| linked_user | RcwDomainUserModel | ❌ | | + + diff --git a/documentation/models/RcwPagingForwardModel.md b/documentation/models/RcwPagingForwardModel.md new file mode 100644 index 00000000..e938089c --- /dev/null +++ b/documentation/models/RcwPagingForwardModel.md @@ -0,0 +1,12 @@ +# RcwPagingForwardModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| per_page | int | ✅ | Number of items per page | +| page_token | str | ✅ | Current page token | +| next_page_token | str | ❌ | Next page token (absent for the last page of the result set) | +| previous_page_token | str | ❌ | Previous page token (absent for the first page of the result set) May be omitted if the result set does not support backward navigation. | + + diff --git a/documentation/models/RcwPagingModel.md b/documentation/models/RcwPagingModel.md new file mode 100644 index 00000000..2ef72a5f --- /dev/null +++ b/documentation/models/RcwPagingModel.md @@ -0,0 +1,12 @@ +# RcwPagingModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :---------------------------------------------------------------- | +| per_page | int | ✅ | Number of items per page | +| page_token | str | ✅ | Current page token | +| next_page_token | str | ❌ | Next page token (absent for the last page of the result set) | +| previous_page_token | str | ❌ | Previous page token (absent for the first page of the result set) | + + diff --git a/documentation/models/RcwResourceIdModel.md b/documentation/models/RcwResourceIdModel.md new file mode 100644 index 00000000..f911ef18 --- /dev/null +++ b/documentation/models/RcwResourceIdModel.md @@ -0,0 +1,9 @@ +# RcwResourceIdModel + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------- | +| id\_ | str | ❌ | Internal object ID | + + diff --git a/documentation/models/RcwRoleEnum.md b/documentation/models/RcwRoleEnum.md new file mode 100644 index 00000000..ab84a5d2 --- /dev/null +++ b/documentation/models/RcwRoleEnum.md @@ -0,0 +1,15 @@ +# RcwRoleEnum + +The role of the webinar session participant/invitee. +See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| PANELIST | str | ✅ | "Panelist" | +| COHOST | str | ✅ | "CoHost" | +| HOST | str | ✅ | "Host" | +| ATTENDEE | str | ✅ | "Attendee" | + + diff --git a/documentation/models/RcwSessionStatusModel.md b/documentation/models/RcwSessionStatusModel.md new file mode 100644 index 00000000..1aed2e4e --- /dev/null +++ b/documentation/models/RcwSessionStatusModel.md @@ -0,0 +1,13 @@ +# RcwSessionStatusModel + +Webinar session status + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| SCHEDULED | str | ✅ | "Scheduled" | +| ACTIVE | str | ✅ | "Active" | +| FINISHED | str | ✅ | "Finished" | + + diff --git a/documentation/models/ReadA2PsmsOptOutsStatus.md b/documentation/models/ReadA2PsmsOptOutsStatus.md new file mode 100644 index 00000000..59e83b7d --- /dev/null +++ b/documentation/models/ReadA2PsmsOptOutsStatus.md @@ -0,0 +1,11 @@ +# ReadA2PsmsOptOutsStatus + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| OPTOUT | str | ✅ | "optout" | +| OPTIN | str | ✅ | "optin" | +| ALL | str | ✅ | "all" | + + diff --git a/documentation/models/ReadCompanyCallLogView.md b/documentation/models/ReadCompanyCallLogView.md new file mode 100644 index 00000000..f62cf7b0 --- /dev/null +++ b/documentation/models/ReadCompanyCallLogView.md @@ -0,0 +1,10 @@ +# ReadCompanyCallLogView + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SIMPLE | str | ✅ | "Simple" | +| DETAILED | str | ✅ | "Detailed" | + + diff --git a/documentation/models/ReasonInfo.md b/documentation/models/ReasonInfo.md new file mode 100644 index 00000000..636a58ea --- /dev/null +++ b/documentation/models/ReasonInfo.md @@ -0,0 +1,29 @@ +# ReasonInfo + +Reason for the feature unavailability. Returned only if `available` +is set to `false` + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------- | :------- | :----------------- | +| code | ReasonInfoCode | ❌ | Reason code | +| message | str | ❌ | Reason description | +| permission | str | ❌ | | + +# ReasonInfoCode + +Reason code + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| SERVICEPLANLIMITATION | str | ✅ | "ServicePlanLimitation" | +| ACCOUNTLIMITATION | str | ✅ | "AccountLimitation" | +| EXTENSIONTYPELIMITATION | str | ✅ | "ExtensionTypeLimitation" | +| EXTENSIONLIMITATION | str | ✅ | "ExtensionLimitation" | +| INSUFFICIENTPERMISSIONS | str | ✅ | "InsufficientPermissions" | +| CONFIGURATIONLIMITATION | str | ✅ | "ConfigurationLimitation" | + + diff --git a/documentation/models/RecipientInfo.md b/documentation/models/RecipientInfo.md new file mode 100644 index 00000000..3ddbb55a --- /dev/null +++ b/documentation/models/RecipientInfo.md @@ -0,0 +1,12 @@ +# RecipientInfo + +Recipient data + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------------- | +| uri | str | ❌ | Link to a voicemail recipient extension resource | +| id\_ | str | ❌ | Internal identifier of a voicemail recipient | + + diff --git a/documentation/models/Recording.md b/documentation/models/Recording.md new file mode 100644 index 00000000..b7d96c61 --- /dev/null +++ b/documentation/models/Recording.md @@ -0,0 +1,48 @@ +# Recording + +Recording information + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------------- | :------- | :------------------------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Recording id | +| availability_status | AvailabilityStatus | ✅ | Availability status | +| start_time | int | ❌ | Recording start time | +| url | str | ❌ | Secure Link to the recording file | +| metadata | dict | ❌ | | +| status | RecordingStatus | ❌ | Recording processing status | +| long_summary | str | ❌ | During meeting AI team analyze code and after meeting finished generates text summary about this meeting | +| short_summary | str | ❌ | During meeting AI team analyze code and after meeting finished generates text summary about this meeting | +| keywords | List[str] | ❌ | During meeting AI team analyze code and after meeting finished generates key words used in meeting | + +# RecordingStatus + +Recording processing status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| PROCESSING | str | ✅ | "Processing" | +| PROCESSED | str | ✅ | "Processed" | +| ERROR | str | ✅ | "Error" | +| CORRUPTED | str | ✅ | "Corrupted" | +| INPROGRESS | str | ✅ | "InProgress" | +| PURGED | str | ✅ | "Purged" | +| FAILED | str | ✅ | "Failed" | + +# AvailabilityStatus + +Availability status + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ALIVE | str | ✅ | "Alive" | +| DELETED | str | ✅ | "Deleted" | +| PURGED | str | ✅ | "Purged" | +| NOTAVAILABLE | str | ✅ | "NotAvailable" | + + diff --git a/documentation/models/RecordingAdminExtendedItemModel.md b/documentation/models/RecordingAdminExtendedItemModel.md new file mode 100644 index 00000000..a1cf9f3c --- /dev/null +++ b/documentation/models/RecordingAdminExtendedItemModel.md @@ -0,0 +1,18 @@ +# RecordingAdminExtendedItemModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| recording_shared_uri | str | ✅ | Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | +| session | SessionRefAdminModel | ❌ | | + + diff --git a/documentation/models/RecordingAdminListResource.md b/documentation/models/RecordingAdminListResource.md new file mode 100644 index 00000000..c9745001 --- /dev/null +++ b/documentation/models/RecordingAdminListResource.md @@ -0,0 +1,10 @@ +# RecordingAdminListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :---------- | +| records | List[RecordingAdminModel] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/RecordingAdminModel.md b/documentation/models/RecordingAdminModel.md new file mode 100644 index 00000000..197e01cd --- /dev/null +++ b/documentation/models/RecordingAdminModel.md @@ -0,0 +1,17 @@ +# RecordingAdminModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | +| session | SessionRefAdminModel | ❌ | | + + diff --git a/documentation/models/RecordingDownloadModel.md b/documentation/models/RecordingDownloadModel.md new file mode 100644 index 00000000..aa8b04cc --- /dev/null +++ b/documentation/models/RecordingDownloadModel.md @@ -0,0 +1,22 @@ +# RecordingDownloadModel + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------ | :------- | :------------------------------------------------------ | +| download_uri | str | ✅ | Download URI (available only for webinar host or admin) | +| download_content_type | DownloadContentType | ✅ | MIME type of the file to download. | +| download_size | int | ✅ | Download file size in bytes | + +# DownloadContentType + +MIME type of the file to download. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VIDEO_MP4 | str | ✅ | "video/mp4" | +| AUDIO_M4A | str | ✅ | "audio/m4a" | + + diff --git a/documentation/models/RecordingExtendedModel.md b/documentation/models/RecordingExtendedModel.md new file mode 100644 index 00000000..0d0a3a97 --- /dev/null +++ b/documentation/models/RecordingExtendedModel.md @@ -0,0 +1,17 @@ +# RecordingExtendedModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| recording_shared_uri | str | ✅ | Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | + + diff --git a/documentation/models/RecordingInfo.md b/documentation/models/RecordingInfo.md new file mode 100644 index 00000000..ea1bb6bf --- /dev/null +++ b/documentation/models/RecordingInfo.md @@ -0,0 +1,10 @@ +# RecordingInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :----------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a recording resource | +| active | bool | ❌ | True if the recording is active. False if the recording is paused. | + + diff --git a/documentation/models/RecordingItemExtendedModel.md b/documentation/models/RecordingItemExtendedModel.md new file mode 100644 index 00000000..efb83be7 --- /dev/null +++ b/documentation/models/RecordingItemExtendedModel.md @@ -0,0 +1,18 @@ +# RecordingItemExtendedModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| recording_shared_uri | str | ✅ | Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | +| session | SessionRefModel | ❌ | | + + diff --git a/documentation/models/RecordingItemModel.md b/documentation/models/RecordingItemModel.md new file mode 100644 index 00000000..36d1ca26 --- /dev/null +++ b/documentation/models/RecordingItemModel.md @@ -0,0 +1,17 @@ +# RecordingItemModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | +| session | SessionRefModel | ❌ | | + + diff --git a/documentation/models/RecordingListResource.md b/documentation/models/RecordingListResource.md new file mode 100644 index 00000000..69cb2849 --- /dev/null +++ b/documentation/models/RecordingListResource.md @@ -0,0 +1,10 @@ +# RecordingListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------- | +| records | List[RecordingItemModel] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/RecordingMediaType.md b/documentation/models/RecordingMediaType.md new file mode 100644 index 00000000..974d20a0 --- /dev/null +++ b/documentation/models/RecordingMediaType.md @@ -0,0 +1,12 @@ +# RecordingMediaType + +Recording file media type. 'Video' implies multiplexed audio and video. 'Audio' refers to audio only. + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| VIDEO | str | ✅ | "Video" | +| AUDIO | str | ✅ | "Audio" | + + diff --git a/documentation/models/RecordingModel.md b/documentation/models/RecordingModel.md new file mode 100644 index 00000000..9c9a22a8 --- /dev/null +++ b/documentation/models/RecordingModel.md @@ -0,0 +1,16 @@ +# RecordingModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :------------------- | :------- | :--------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| status | RecordingStatusModel | ✅ | Recording status | +| id\_ | str | ❌ | Internal object ID | +| failure_reason | dict | ❌ | Generalized API error structure suitable for any error type | +| duration | int | ❌ | Recording duration in seconds | +| shared | bool | ❌ | Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. | +| shared_uri_expiration_time | str | ❌ | Time after which recording shared link cannot be accessed by recipients. | + + diff --git a/documentation/models/RecordingStatusModel.md b/documentation/models/RecordingStatusModel.md new file mode 100644 index 00000000..35ebbacc --- /dev/null +++ b/documentation/models/RecordingStatusModel.md @@ -0,0 +1,14 @@ +# RecordingStatusModel + +Recording status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| PROCESSING | str | ✅ | "Processing" | +| AVAILABLE | str | ✅ | "Available" | +| FAILED | str | ✅ | "Failed" | +| PURGED | str | ✅ | "Purged" | + + diff --git a/documentation/models/RecordingType.md b/documentation/models/RecordingType.md new file mode 100644 index 00000000..48bd1d0c --- /dev/null +++ b/documentation/models/RecordingType.md @@ -0,0 +1,11 @@ +# RecordingType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AUTOMATIC | str | ✅ | "Automatic" | +| ONDEMAND | str | ✅ | "OnDemand" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/RecordingsPreferences.md b/documentation/models/RecordingsPreferences.md new file mode 100644 index 00000000..e33d02de --- /dev/null +++ b/documentation/models/RecordingsPreferences.md @@ -0,0 +1,12 @@ +# RecordingsPreferences + +Recordings preferences + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :----------------- | :------- | :---------------------------------------------------------- | +| everyone_can_control | EveryoneCanControl | ❌ | Controls whether participants can start and pause recording | +| auto_shared | AutoShared | ❌ | Controls whether recording can be auto shared | + + diff --git a/documentation/models/RecurrenceInfo.md b/documentation/models/RecurrenceInfo.md new file mode 100644 index 00000000..d2af80d3 --- /dev/null +++ b/documentation/models/RecurrenceInfo.md @@ -0,0 +1,16 @@ +# RecurrenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| frequency | MeetingFrequency | ❌ | Recurrence time frame | +| interval | int | ❌ | Recurrence interval. The supported ranges are: 1-90 for `Daily`; 1-12 for `Weekly`; 1-3 for `Monthly` | +| weekly_by_days | List[WeekDay] | ❌ | | +| monthly_by_day | int | ❌ | The supported range is 1-31 | +| monthly_by_week | MonthlyWeek | ❌ | Supported together with `weeklyByDay` | +| monthly_by_week_day | WeekDay | ❌ | This field is used only if you're scheduling a recurring meeting of type `3` to state a specific day in a week when the monthly meeting should recur; it works together with `MonthlyByWeek` field. The values are: 1 - Sunday; 2 - Monday; 3 - Tuesday; 4 - Wednesday; 5 - Thursday; 6 - Friday; 7- Saturday | +| count | int | ❌ | Number of meeting occurrences | +| until | str | ❌ | Meeting expiration date-time | + + diff --git a/documentation/models/ReferenceInfo.md b/documentation/models/ReferenceInfo.md new file mode 100644 index 00000000..0b5f9b5e --- /dev/null +++ b/documentation/models/ReferenceInfo.md @@ -0,0 +1,22 @@ +# ReferenceInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------- | :------- | :------------------------------------------ | +| ref | str | ❌ | Non-RC identifier of an extension | +| type\_ | ReferenceInfoType | ❌ | Type of external identifier | +| ref_acc_id | str | ❌ | Primary federation admin account identifier | + +# ReferenceInfoType + +Type of external identifier + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| PARTNERID | str | ✅ | "PartnerId" | +| CUSTOMERDIRECTORYID | str | ✅ | "CustomerDirectoryId" | + + diff --git a/documentation/models/RegAnswerModel.md b/documentation/models/RegAnswerModel.md new file mode 100644 index 00000000..85a83bc1 --- /dev/null +++ b/documentation/models/RegAnswerModel.md @@ -0,0 +1,3 @@ +# RegAnswerModel + + diff --git a/documentation/models/RegSessionModel.md b/documentation/models/RegSessionModel.md new file mode 100644 index 00000000..c3f89104 --- /dev/null +++ b/documentation/models/RegSessionModel.md @@ -0,0 +1,56 @@ +# RegSessionModel + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :----------------- | :------- | :---------------------------------------------- | +| id\_ | str | ✅ | ID of the session | +| registration_status | RegistrationStatus | ✅ | Status of the registration | +| registrant_count | int | ✅ | The current number of registrants | +| has_real_registrants | bool | ✅ | Indicates that there are non-test registrants | +| registration_page_uri | str | ❌ | The URI of the registration landing page | +| branding_descriptor_uri | str | ❌ | The URI of the branding descriptor | +| icalendar_sequence | int | ❌ | Sequence number for iCalendar email attachments | +| settings | Settings | ❌ | | + +# RegistrationStatus + +Status of the registration + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| OPEN | str | ✅ | "Open" | +| CLOSED | str | ✅ | "Closed" | + +# Settings + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------- | :--------------- | :------- | :------------------------------------------------------------------------------------------------ | +| auto_close_limit | int | ❌ | The maximum number of registrants which forces closing the registration (0 means "off"). | +| suppress_emails | bool | ❌ | Indicates that emails to registrants should be suppressed (should be supported by external party) | +| registration_digest_enabled | bool | ❌ | Indicates that registration digest should be sent to host. | +| prevent_multiple_device_joins | bool | ❌ | Indicates that registrants are allowed to join from multiple devices. | +| work_email_required | bool | ❌ | Indicates that work email address is required for registration. | +| view_recording | bool | ❌ | Indicates that recording will be shown after the webinar and in emails. | +| on_demand_duration | OnDemandDuration | ❌ | Duration of on-demand webinar. The default value can only be used if the session is on demand. | +| recording_exist | bool | ❌ | Indicates that recording exists for the session. | + +# OnDemandDuration + +Duration of on-demand webinar. The default value can only be used if the session is on demand. + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| ONEMONTH | str | ✅ | "OneMonth" | +| TWOMONTHS | str | ✅ | "TwoMonths" | +| THREEMONTHS | str | ✅ | "ThreeMonths" | +| SIXMONTHS | str | ✅ | "SixMonths" | +| ONEYEAR | str | ✅ | "OneYear" | + + diff --git a/documentation/models/RegionalLanguageInfo.md b/documentation/models/RegionalLanguageInfo.md new file mode 100644 index 00000000..cd0584cb --- /dev/null +++ b/documentation/models/RegionalLanguageInfo.md @@ -0,0 +1,13 @@ +# RegionalLanguageInfo + +Information on a language set as regional + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a language set as regional | +| locale_code | str | ❌ | Localization code of a language set as regional | +| name | str | ❌ | Official name of a language set as regional | + + diff --git a/documentation/models/RegionalSettings.md b/documentation/models/RegionalSettings.md new file mode 100644 index 00000000..1fb57842 --- /dev/null +++ b/documentation/models/RegionalSettings.md @@ -0,0 +1,28 @@ +# RegionalSettings + +Regional data (timezone, home country, language) of an extension/account. +The default is Company (Auto-Receptionist) settings + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------- | :------- | :---------------------------------------------------------------- | +| home_country | CountryInfoShortModel | ❌ | | +| timezone | TimezoneInfo | ❌ | Extension timezone information | +| language | RegionalLanguageInfo | ❌ | Information on a language set as regional | +| greeting_language | GreetingLanguageInfo | ❌ | Information on language used for telephony greetings | +| formatting_locale | FormattingLocaleInfo | ❌ | Formatting language preferences for numbers, dates and currencies | +| time_format | RegionalSettingsTimeFormat | ❌ | Time format setting. The default value is '12h' = ['12h', '24h'] | + +# RegionalSettingsTimeFormat + +Time format setting. The default value is '12h' = ['12h', '24h'] + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| \_12H | str | ✅ | "12h" | +| \_24H | str | ✅ | "24h" | + + diff --git a/documentation/models/RegistrantBaseModelWithQuestionnaire.md b/documentation/models/RegistrantBaseModelWithQuestionnaire.md new file mode 100644 index 00000000..debb10d1 --- /dev/null +++ b/documentation/models/RegistrantBaseModelWithQuestionnaire.md @@ -0,0 +1,21 @@ +# RegistrantBaseModelWithQuestionnaire + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------- | :------- | :----------------------------------------------------------------------------------------- | +| first_name | str | ✅ | First (given) name | +| last_name | str | ✅ | Last (family) name | +| email | str | ✅ | User's contact email | +| join_uri | str | ❌ | The personalized URI for this registrant to join the Webinar | +| cancellation_uri | str | ❌ | The personalized URI for this registrant to cancel the registration | +| registered_post_webinar | bool | ❌ | Indicates if the registrant was registered to on-demand webinar | +| visitor_id | str | ❌ | Visitor ID passed from registration page | +| external_id | str | ❌ | ID of a registrant passed from external system | +| registration_time | str | ❌ | Registration time (can be earlier than "creationTime" due to indirect persistence) | +| ip_address | str | ❌ | IP address of the registrant's user agent | +| source | str | ❌ | Registration channel source (coming from registration URI) | +| participant_id | str | ❌ | ID of session participant (from Runtime Service - if this registrant attended the webinar) | +| questionnaire | List[RegAnswerModel] | ❌ | Answers on custom registration questions | + + diff --git a/documentation/models/RegistrantListResource.md b/documentation/models/RegistrantListResource.md new file mode 100644 index 00000000..0bbaf166 --- /dev/null +++ b/documentation/models/RegistrantListResource.md @@ -0,0 +1,10 @@ +# RegistrantListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------------------- | :------- | :---------- | +| records | List[RegistrantModelWithQuestionnaire] | ✅ | | +| paging | RcwPagingForwardModel | ✅ | | + + diff --git a/documentation/models/RegistrantModelResponsePostWithQuestionnaire.md b/documentation/models/RegistrantModelResponsePostWithQuestionnaire.md new file mode 100644 index 00000000..2948b555 --- /dev/null +++ b/documentation/models/RegistrantModelResponsePostWithQuestionnaire.md @@ -0,0 +1,25 @@ +# RegistrantModelResponsePostWithQuestionnaire + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------- | :------- | :----------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| first_name | str | ✅ | First (given) name | +| last_name | str | ✅ | Last (family) name | +| email | str | ✅ | User's contact email | +| id\_ | str | ❌ | Internal object ID | +| join_uri | str | ❌ | The personalized URI for this registrant to join the Webinar | +| cancellation_uri | str | ❌ | The personalized URI for this registrant to cancel the registration | +| registered_post_webinar | bool | ❌ | Indicates if the registrant was registered to on-demand webinar | +| visitor_id | str | ❌ | Visitor ID passed from registration page | +| external_id | str | ❌ | ID of a registrant passed from external system | +| registration_time | str | ❌ | Registration time (can be earlier than "creationTime" due to indirect persistence) | +| ip_address | str | ❌ | IP address of the registrant's user agent | +| source | str | ❌ | Registration channel source (coming from registration URI) | +| participant_id | str | ❌ | ID of session participant (from Runtime Service - if this registrant attended the webinar) | +| questionnaire | List[RegAnswerModel] | ❌ | Answers on custom registration questions | +| icalendar_sequence | int | ❌ | Sequence number for iCalendar email attachments | + + diff --git a/documentation/models/RegistrantModelWithQuestionnaire.md b/documentation/models/RegistrantModelWithQuestionnaire.md new file mode 100644 index 00000000..68b898bf --- /dev/null +++ b/documentation/models/RegistrantModelWithQuestionnaire.md @@ -0,0 +1,24 @@ +# RegistrantModelWithQuestionnaire + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------- | :------- | :----------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| first_name | str | ✅ | First (given) name | +| last_name | str | ✅ | Last (family) name | +| email | str | ✅ | User's contact email | +| id\_ | str | ❌ | Internal object ID | +| join_uri | str | ❌ | The personalized URI for this registrant to join the Webinar | +| cancellation_uri | str | ❌ | The personalized URI for this registrant to cancel the registration | +| registered_post_webinar | bool | ❌ | Indicates if the registrant was registered to on-demand webinar | +| visitor_id | str | ❌ | Visitor ID passed from registration page | +| external_id | str | ❌ | ID of a registrant passed from external system | +| registration_time | str | ❌ | Registration time (can be earlier than "creationTime" due to indirect persistence) | +| ip_address | str | ❌ | IP address of the registrant's user agent | +| source | str | ❌ | Registration channel source (coming from registration URI) | +| participant_id | str | ❌ | ID of session participant (from Runtime Service - if this registrant attended the webinar) | +| questionnaire | List[RegAnswerModel] | ❌ | Answers on custom registration questions | + + diff --git a/documentation/models/RejectedRecipientResponseResource.md b/documentation/models/RejectedRecipientResponseResource.md new file mode 100644 index 00000000..1bcba47d --- /dev/null +++ b/documentation/models/RejectedRecipientResponseResource.md @@ -0,0 +1,14 @@ +# RejectedRecipientResponseResource + +The rejected recipient details + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------- | :------- | :--------------------------------------------------------------------------------------------- | +| index | int | ❌ | The index of the messages list in the send batch request where the invalid recipient was found | +| to | List[str] | ❌ | The invalid recipient number as found in the request | +| error_code | str | ❌ | The error code | +| description | str | ❌ | The description of the error | + + diff --git a/documentation/models/RemoveLineRequest.md b/documentation/models/RemoveLineRequest.md new file mode 100644 index 00000000..21742f33 --- /dev/null +++ b/documentation/models/RemoveLineRequest.md @@ -0,0 +1,9 @@ +# RemoveLineRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| keep_assets_in_inventory | bool | ✅ | The flag that controls what to do with the number and device: - if the value of `keepAssetsInInventory` is `true`, the given device is moved to unassigned devices and the number is moved to the number inventory; - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account; - if the parameter `keepAssetsInInventory` is not set (empty body) or the value of the parameter is empty, default value `true` is set. | + + diff --git a/documentation/models/RemoveLineResponse.md b/documentation/models/RemoveLineResponse.md new file mode 100644 index 00000000..7cfb1693 --- /dev/null +++ b/documentation/models/RemoveLineResponse.md @@ -0,0 +1,33 @@ +# RemoveLineResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------------------- | :------- | :------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a source device | +| type\_ | RemoveLineResponseType | ✅ | Device type | +| name | str | ✅ | The display name of a source device | +| serial | str | ❌ | Serial number of a device (HardPhone) | + +# RemoveLineResponseType + +Device type + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| HARDPHONE | str | ✅ | "HardPhone" | +| SOFTPHONE | str | ✅ | "SoftPhone" | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| MOBILEDEVICE | str | ✅ | "MobileDevice" | +| BLA | str | ✅ | "BLA" | +| PAGING | str | ✅ | "Paging" | +| WEBPHONE | str | ✅ | "WebPhone" | +| WEBRTC | str | ✅ | "WebRTC" | +| ZOOMMOBILE | str | ✅ | "ZoomMobile" | +| ZOOMPHONE | str | ✅ | "ZoomPhone" | +| ROOM | str | ✅ | "Room" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/ReplacePhoneNumberRequest.md b/documentation/models/ReplacePhoneNumberRequest.md new file mode 100644 index 00000000..892bac53 --- /dev/null +++ b/documentation/models/ReplacePhoneNumberRequest.md @@ -0,0 +1,9 @@ +# ReplacePhoneNumberRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :------------------------------------------- | +| target_phone_number_id | str | ❌ | Internal unique identifier of a phone number | + + diff --git a/documentation/models/ReplyParty.md b/documentation/models/ReplyParty.md new file mode 100644 index 00000000..7ac5b836 --- /dev/null +++ b/documentation/models/ReplyParty.md @@ -0,0 +1,28 @@ +# ReplyParty + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a party | +| status | CallStatusInfo | ❌ | Status data of a call session | +| muted | bool | ❌ | Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces | +| stand_alone | bool | ❌ | If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session | +| park | ParkInfo | ❌ | Call park information | +| from\_ | PartyInfo | ❌ | | +| to | PartyInfo | ❌ | | +| owner | OwnerInfo | ❌ | Deprecated. Information on a call owner | +| direction | ReplyPartyDirection | ❌ | Direction of a call | + +# ReplyPartyDirection + +Direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + + diff --git a/documentation/models/ReplyWithPattern.md b/documentation/models/ReplyWithPattern.md new file mode 100644 index 00000000..8027681a --- /dev/null +++ b/documentation/models/ReplyWithPattern.md @@ -0,0 +1,40 @@ +# ReplyWithPattern + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------- | :------- | :----------------------------------------------------------------------------- | +| pattern | Pattern | ❌ | Predefined reply pattern name. | +| time | int | ❌ | Number of time units. Applicable only to WillCallYouBack, CallMeBack patterns. | +| time_unit | TimeUnit | ❌ | Time unit name. | + +# Pattern + +Predefined reply pattern name. + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| WILLCALLYOUBACK | str | ✅ | "WillCallYouBack" | +| CALLMEBACK | str | ✅ | "CallMeBack" | +| ONMYWAY | str | ✅ | "OnMyWay" | +| ONTHEOTHERLINE | str | ✅ | "OnTheOtherLine" | +| WILLCALLYOUBACKLATER | str | ✅ | "WillCallYouBackLater" | +| CALLMEBACKLATER | str | ✅ | "CallMeBackLater" | +| INAMEETING | str | ✅ | "InAMeeting" | +| ONTHEOTHERLINENOCALL | str | ✅ | "OnTheOtherLineNoCall" | + +# TimeUnit + +Time unit name. + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| MINUTE | str | ✅ | "Minute" | +| HOUR | str | ✅ | "Hour" | +| DAY | str | ✅ | "Day" | + + diff --git a/documentation/models/ResponsePaging.md b/documentation/models/ResponsePaging.md new file mode 100644 index 00000000..e4a30d3d --- /dev/null +++ b/documentation/models/ResponsePaging.md @@ -0,0 +1,14 @@ +# ResponsePaging + +Paging information + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------------------------------- | +| page | int | ✅ | The current page number | +| per_page | int | ✅ | How many items are displayed on the page | +| total_pages | int | ✅ | The total number of pages | +| total_elements | int | ✅ | The total number of items in the dataset | + + diff --git a/documentation/models/RevokeTokenRequest.md b/documentation/models/RevokeTokenRequest.md new file mode 100644 index 00000000..6bb18417 --- /dev/null +++ b/documentation/models/RevokeTokenRequest.md @@ -0,0 +1,23 @@ +# RevokeTokenRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :------------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| token | str | ✅ | Access or refresh token to be revoked (along with the entire OAuth session) | +| client_assertion_type | RevokeTokenRequestClientAssertionType | ❌ | Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | +| client_assertion | str | ❌ | Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types | + +# RevokeTokenRequestClientAssertionType + +Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, +as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). +This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------------------- | :--- | :------- | :------------------------------------------------------- | +| URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER | str | ✅ | "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" | + + diff --git a/documentation/models/RingOutStatusInfo.md b/documentation/models/RingOutStatusInfo.md new file mode 100644 index 00000000..0838d291 --- /dev/null +++ b/documentation/models/RingOutStatusInfo.md @@ -0,0 +1,76 @@ +# RingOutStatusInfo + +RingOut status information + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------- | :------- | :------------------------ | +| call_status | CallStatus | ❌ | Status of a call | +| caller_status | CallerStatus | ❌ | Status of a calling party | +| callee_status | CalleeStatus | ❌ | Status of a called party | + +# CallStatus + +Status of a call + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| INVALID | str | ✅ | "Invalid" | +| SUCCESS | str | ✅ | "Success" | +| INPROGRESS | str | ✅ | "InProgress" | +| BUSY | str | ✅ | "Busy" | +| NOANSWER | str | ✅ | "NoAnswer" | +| REJECTED | str | ✅ | "Rejected" | +| GENERICERROR | str | ✅ | "GenericError" | +| FINISHED | str | ✅ | "Finished" | +| INTERNATIONALDISABLED | str | ✅ | "InternationalDisabled" | +| DESTINATIONBLOCKED | str | ✅ | "DestinationBlocked" | +| NOTENOUGHFUNDS | str | ✅ | "NotEnoughFunds" | +| NOSUCHUSER | str | ✅ | "NoSuchUser" | + +# CallerStatus + +Status of a calling party + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| INVALID | str | ✅ | "Invalid" | +| SUCCESS | str | ✅ | "Success" | +| INPROGRESS | str | ✅ | "InProgress" | +| BUSY | str | ✅ | "Busy" | +| NOANSWER | str | ✅ | "NoAnswer" | +| REJECTED | str | ✅ | "Rejected" | +| GENERICERROR | str | ✅ | "GenericError" | +| FINISHED | str | ✅ | "Finished" | +| INTERNATIONALDISABLED | str | ✅ | "InternationalDisabled" | +| DESTINATIONBLOCKED | str | ✅ | "DestinationBlocked" | +| NOTENOUGHFUNDS | str | ✅ | "NotEnoughFunds" | +| NOSUCHUSER | str | ✅ | "NoSuchUser" | + +# CalleeStatus + +Status of a called party + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| INVALID | str | ✅ | "Invalid" | +| SUCCESS | str | ✅ | "Success" | +| INPROGRESS | str | ✅ | "InProgress" | +| BUSY | str | ✅ | "Busy" | +| NOANSWER | str | ✅ | "NoAnswer" | +| REJECTED | str | ✅ | "Rejected" | +| GENERICERROR | str | ✅ | "GenericError" | +| FINISHED | str | ✅ | "Finished" | +| INTERNATIONALDISABLED | str | ✅ | "InternationalDisabled" | +| DESTINATIONBLOCKED | str | ✅ | "DestinationBlocked" | +| NOTENOUGHFUNDS | str | ✅ | "NotEnoughFunds" | +| NOSUCHUSER | str | ✅ | "NoSuchUser" | + + diff --git a/documentation/models/RoleIdResource.md b/documentation/models/RoleIdResource.md new file mode 100644 index 00000000..deb685ea --- /dev/null +++ b/documentation/models/RoleIdResource.md @@ -0,0 +1,10 @@ +# RoleIdResource + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | + + diff --git a/documentation/models/RoleResource.md b/documentation/models/RoleResource.md new file mode 100644 index 00000000..e06de18d --- /dev/null +++ b/documentation/models/RoleResource.md @@ -0,0 +1,35 @@ +# RoleResource + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------------- | :------- | :--------------------------------- | +| uri | str | ❌ | Link to a role resource | +| id\_ | str | ❌ | Internal identifier of a role | +| display_name | str | ❌ | Dispayed name of a role | +| description | str | ❌ | Role description | +| site_compatible | bool | ❌ | Site compatibility of a user role | +| custom | bool | ❌ | Specifies if a user role is custom | +| scope | Scope | ❌ | Specifies resource for permission | +| hidden | bool | ❌ | | +| last_updated | str | ❌ | | +| permissions | List[PermissionIdResource] | ❌ | | + +# Scope + +Specifies resource for permission + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| ACCOUNT | str | ✅ | "Account" | +| ALLEXTENSIONS | str | ✅ | "AllExtensions" | +| FEDERATION | str | ✅ | "Federation" | +| GROUP | str | ✅ | "Group" | +| NONUSEREXTENSIONS | str | ✅ | "NonUserExtensions" | +| ROLEBASED | str | ✅ | "RoleBased" | +| SELF | str | ✅ | "Self" | +| USEREXTENSIONS | str | ✅ | "UserExtensions" | + + diff --git a/documentation/models/Roles.md b/documentation/models/Roles.md new file mode 100644 index 00000000..d7b91e8d --- /dev/null +++ b/documentation/models/Roles.md @@ -0,0 +1,14 @@ +# Roles + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------------------- | +| uri | str | ❌ | Link to a role | +| id\_ | str | ❌ | Internal identifier of a role | +| auto_assigned | bool | ❌ | | +| display_name | str | ❌ | | +| site_compatible | bool | ❌ | | +| site_restricted | bool | ❌ | | + + diff --git a/documentation/models/RolesBusinessSiteResource.md b/documentation/models/RolesBusinessSiteResource.md new file mode 100644 index 00000000..875a2328 --- /dev/null +++ b/documentation/models/RolesBusinessSiteResource.md @@ -0,0 +1,18 @@ +# RolesBusinessSiteResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :---------------------------- | :------- | :------------------------------- | +| id\_ | str | ✅ | | +| uri | str | ❌ | Link to a business site resource | +| email | str | ❌ | | +| code | str | ❌ | | +| name | str | ❌ | | +| extension_number | str | ❌ | | +| caller_id_name | str | ❌ | | +| operator | BasicExtensionInfoResource | ❌ | | +| regional_settings | RolesRegionalSettingsResource | ❌ | | +| business_address | ContactAddressInfoResource | ❌ | | + + diff --git a/documentation/models/RolesCollectionResource.md b/documentation/models/RolesCollectionResource.md new file mode 100644 index 00000000..c7c6e43f --- /dev/null +++ b/documentation/models/RolesCollectionResource.md @@ -0,0 +1,12 @@ +# RolesCollectionResource + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | | +| records | List[RoleResource] | ❌ | | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/RolesCountryResource.md b/documentation/models/RolesCountryResource.md new file mode 100644 index 00000000..370685e8 --- /dev/null +++ b/documentation/models/RolesCountryResource.md @@ -0,0 +1,18 @@ +# RolesCountryResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| iso_code | str | ❌ | | +| calling_code | str | ❌ | | +| emergency_calling | bool | ❌ | | +| number_selling | bool | ❌ | | +| login_allowed | bool | ❌ | | +| free_softphone_line | bool | ❌ | | +| signup_allowed | bool | ❌ | | + + diff --git a/documentation/models/RolesLanguageResource.md b/documentation/models/RolesLanguageResource.md new file mode 100644 index 00000000..88cce7fa --- /dev/null +++ b/documentation/models/RolesLanguageResource.md @@ -0,0 +1,11 @@ +# RolesLanguageResource + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| locale_code | str | ❌ | | + + diff --git a/documentation/models/RolesRegionalSettingsResource.md b/documentation/models/RolesRegionalSettingsResource.md new file mode 100644 index 00000000..cac91291 --- /dev/null +++ b/documentation/models/RolesRegionalSettingsResource.md @@ -0,0 +1,24 @@ +# RolesRegionalSettingsResource + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------------------------------------- | :------- | :---------- | +| timezone | RolesTimezoneResource | ❌ | | +| home_country | RolesCountryResource | ❌ | | +| language | RolesLanguageResource | ❌ | | +| greeting_language | RolesLanguageResource | ❌ | | +| formatting_locale | RolesLanguageResource | ❌ | | +| time_format | RolesRegionalSettingsResourceTimeFormat | ❌ | | +| currency | CurrencyResource | ❌ | | + +# RolesRegionalSettingsResourceTimeFormat + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| \_12H | str | ✅ | "12h" | +| \_24H | str | ✅ | "24h" | + + diff --git a/documentation/models/RolesTimezoneResource.md b/documentation/models/RolesTimezoneResource.md new file mode 100644 index 00000000..013a9c10 --- /dev/null +++ b/documentation/models/RolesTimezoneResource.md @@ -0,0 +1,13 @@ +# RolesTimezoneResource + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| uri | str | ❌ | | +| id\_ | str | ❌ | | +| name | str | ❌ | | +| description | str | ❌ | | +| bias | str | ❌ | | + + diff --git a/documentation/models/ScaleSize.md b/documentation/models/ScaleSize.md new file mode 100644 index 00000000..5a58f36a --- /dev/null +++ b/documentation/models/ScaleSize.md @@ -0,0 +1,12 @@ +# ScaleSize + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| ORIGINAL | str | ✅ | "original" | +| \_90X90 | str | ✅ | "90x90" | +| \_195X195 | str | ✅ | "195x195" | +| \_584X584 | str | ✅ | "584x584" | + + diff --git a/documentation/models/ScheduleInfo.md b/documentation/models/ScheduleInfo.md new file mode 100644 index 00000000..cf8ef2bb --- /dev/null +++ b/documentation/models/ScheduleInfo.md @@ -0,0 +1,24 @@ +# ScheduleInfo + +Schedule when an answering rule should be applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | +| weekly_ranges | WeeklyScheduleInfo | ❌ | Weekly schedule | +| ranges | List[RangesInfo] | ❌ | Specific data ranges | +| ref | ScheduleInfoRef | ❌ | The user's schedule specified for business hours or after hours; it can also be set/retrieved calling the corresponding method | + +# ScheduleInfoRef + +The user's schedule specified for business hours or after hours; it can also be set/retrieved calling the corresponding method + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | + + diff --git a/documentation/models/ScheduleInfoUserBusinessHours.md b/documentation/models/ScheduleInfoUserBusinessHours.md new file mode 100644 index 00000000..e998c7fb --- /dev/null +++ b/documentation/models/ScheduleInfoUserBusinessHours.md @@ -0,0 +1,11 @@ +# ScheduleInfoUserBusinessHours + +Schedule when an answering rule is applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------- | :------- | :-------------- | +| weekly_ranges | WeeklyScheduleInfo | ❌ | Weekly schedule | + + diff --git a/documentation/models/ScheduleMeetingResponse.md b/documentation/models/ScheduleMeetingResponse.md new file mode 100644 index 00000000..dc3640e7 --- /dev/null +++ b/documentation/models/ScheduleMeetingResponse.md @@ -0,0 +1,16 @@ +# ScheduleMeetingResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :--- | :------- | :---------- | +| start_host_video | bool | ❌ | | +| start_participant_video | bool | ❌ | | +| audio_options | bool | ❌ | | +| allow_join_before_host | bool | ❌ | | +| require_password_for_scheduling_new_meetings | bool | ❌ | | +| require_password_for_instant_meetings | bool | ❌ | | +| require_password_for_pmi_meetings | bool | ❌ | | +| enforce_login | bool | ❌ | | + + diff --git a/documentation/models/ScheduleUserMeetingInfo.md b/documentation/models/ScheduleUserMeetingInfo.md new file mode 100644 index 00000000..b083b599 --- /dev/null +++ b/documentation/models/ScheduleUserMeetingInfo.md @@ -0,0 +1,47 @@ +# ScheduleUserMeetingInfo + +Scheduling meeting settings locked on account level || Settings defining how to schedule user meetings + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------- | :---------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| enforce_login | bool | ❌ | If true, then only signed-in users can join this meeting | +| start_host_video | bool | ❌ | Starting meetings with host video on/off (true/false) | +| start_participants_video | bool | ❌ | Starting meetings with participant video on/off (true/false) | +| audio_options | List[ScheduleUserMeetingInfoAudioOptions] | ❌ | Determines how participants can join the audio channel of a meeting | +| allow_join_before_host | bool | ❌ | Allows participants to join the meeting before the host arrives | +| use_pmi_for_scheduled_meetings | bool | ❌ | Determines whether to use Personal Meeting ID (PMI) when scheduling a meeting | +| use_pmi_for_instant_meetings | bool | ❌ | Determines whether to use Personal Meeting ID (PMI) when starting an instant meeting | +| require_password_for_scheduling_new_meetings | bool | ❌ | A password will be generated when scheduling a meeting and participants will require password to join a meeting. The Personal Meeting ID (PMI) meetings are not included | +| require_password_for_scheduled_meetings | bool | ❌ | Specifies whether to require a password for meetings which have already been scheduled | +| default_password_for_scheduled_meetings | str | ❌ | Password for already scheduled meetings. Users can set it individually | +| require_password_for_instant_meetings | bool | ❌ | A random password will be generated for an instant meeting, if set to `true`. If you use PMI for your instant meetings, this option will be disabled | +| require_password_for_pmi_meetings | RequirePasswordForPmiMeetings | ❌ | Specifies whether to require a password for meetings using Personal Meeting ID (PMI). The supported values are: 'none', 'all' and 'jbhOnly' (joined before host only) | +| pmi_password | str | ❌ | The default password for Personal Meeting ID (PMI) meetings | +| pstn_password_protected | bool | ❌ | Specifies whether to generate and require a password for participants joining by phone | +| mute_participants_on_entry | bool | ❌ | | + +# ScheduleUserMeetingInfoAudioOptions + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| PHONE | str | ✅ | "Phone" | +| COMPUTERAUDIO | str | ✅ | "ComputerAudio" | +| THIRDPARTY | str | ✅ | "ThirdParty" | + +# RequirePasswordForPmiMeetings + +Specifies whether to require a password for meetings using Personal Meeting ID (PMI). The supported values are: 'none', 'all' and 'jbhOnly' (joined before host only) + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ALL | str | ✅ | "all" | +| NONE | str | ✅ | "none" | +| JBHONLY | str | ✅ | "jbhOnly" | + + diff --git a/documentation/models/ScimAuthenticationScheme.md b/documentation/models/ScimAuthenticationScheme.md new file mode 100644 index 00000000..bf42ac2e --- /dev/null +++ b/documentation/models/ScimAuthenticationScheme.md @@ -0,0 +1,13 @@ +# ScimAuthenticationScheme + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------- | +| description | str | ❌ | | +| documentation_uri | str | ❌ | | +| name | str | ❌ | | +| spec_uri | str | ❌ | | +| primary | bool | ❌ | | + + diff --git a/documentation/models/ScimBulkSupported.md b/documentation/models/ScimBulkSupported.md new file mode 100644 index 00000000..a51715a6 --- /dev/null +++ b/documentation/models/ScimBulkSupported.md @@ -0,0 +1,11 @@ +# ScimBulkSupported + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------- | +| max_operations | int | ❌ | | +| max_payload_size | int | ❌ | | +| supported | bool | ❌ | | + + diff --git a/documentation/models/ScimEmail.md b/documentation/models/ScimEmail.md new file mode 100644 index 00000000..e75d796f --- /dev/null +++ b/documentation/models/ScimEmail.md @@ -0,0 +1,18 @@ +# ScimEmail + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------ | :------- | :---------- | +| type\_ | ScimEmailType | ✅ | | +| value | str | ✅ | | + +# ScimEmailType + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| WORK | str | ✅ | "work" | + + diff --git a/documentation/models/ScimEnterpriseUser.md b/documentation/models/ScimEnterpriseUser.md new file mode 100644 index 00000000..d283b7e0 --- /dev/null +++ b/documentation/models/ScimEnterpriseUser.md @@ -0,0 +1,9 @@ +# ScimEnterpriseUser + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------- | +| department | str | ❌ | | + + diff --git a/documentation/models/ScimFilterSupported.md b/documentation/models/ScimFilterSupported.md new file mode 100644 index 00000000..023de89a --- /dev/null +++ b/documentation/models/ScimFilterSupported.md @@ -0,0 +1,10 @@ +# ScimFilterSupported + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| max_results | int | ❌ | | +| supported | bool | ❌ | | + + diff --git a/documentation/models/ScimMeta.md b/documentation/models/ScimMeta.md new file mode 100644 index 00000000..ede316f9 --- /dev/null +++ b/documentation/models/ScimMeta.md @@ -0,0 +1,25 @@ +# ScimMeta + +Resource metadata + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------- | :------- | :-------------------- | +| created | str | ❌ | | +| last_modified | str | ❌ | | +| location | str | ❌ | Resource location URI | +| resource_type | ResourceType | ❌ | | + +# ResourceType + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| USER | str | ✅ | "User" | +| GROUP | str | ✅ | "Group" | +| RESOURCETYPE | str | ✅ | "ResourceType" | +| SCHEMA | str | ✅ | "Schema" | + + diff --git a/documentation/models/ScimName.md b/documentation/models/ScimName.md new file mode 100644 index 00000000..efc640f4 --- /dev/null +++ b/documentation/models/ScimName.md @@ -0,0 +1,10 @@ +# ScimName + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------- | +| family_name | str | ✅ | | +| given_name | str | ✅ | | + + diff --git a/documentation/models/ScimPatchOperation.md b/documentation/models/ScimPatchOperation.md new file mode 100644 index 00000000..d4b9d529 --- /dev/null +++ b/documentation/models/ScimPatchOperation.md @@ -0,0 +1,21 @@ +# ScimPatchOperation + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------------------------------ | +| op | Op | ✅ | | +| path | str | ❌ | | +| value | str | ❌ | Corresponding 'value' of that field specified by 'path' | + +# Op + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ADD | str | ✅ | "add" | +| REPLACE | str | ✅ | "replace" | +| REMOVE | str | ✅ | "remove" | + + diff --git a/documentation/models/ScimPhoneNumber.md b/documentation/models/ScimPhoneNumber.md new file mode 100644 index 00000000..9bcc979f --- /dev/null +++ b/documentation/models/ScimPhoneNumber.md @@ -0,0 +1,20 @@ +# ScimPhoneNumber + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------ | :------- | :---------- | +| type\_ | ScimPhoneNumberType | ✅ | | +| value | str | ✅ | | + +# ScimPhoneNumberType + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| WORK | str | ✅ | "work" | +| MOBILE | str | ✅ | "mobile" | +| OTHER | str | ✅ | "other" | + + diff --git a/documentation/models/ScimPhoto.md b/documentation/models/ScimPhoto.md new file mode 100644 index 00000000..322d6f31 --- /dev/null +++ b/documentation/models/ScimPhoto.md @@ -0,0 +1,18 @@ +# ScimPhoto + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------ | :------- | :---------- | +| type\_ | ScimPhotoType | ✅ | | +| value | str | ✅ | | + +# ScimPhotoType + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| PHOTO | str | ✅ | "photo" | + + diff --git a/documentation/models/ScimProviderConfig.md b/documentation/models/ScimProviderConfig.md new file mode 100644 index 00000000..f9b5b770 --- /dev/null +++ b/documentation/models/ScimProviderConfig.md @@ -0,0 +1,25 @@ +# ScimProviderConfig + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------------------ | :------- | :---------- | +| authentication_schemes | List[ScimAuthenticationScheme] | ❌ | | +| bulk | ScimBulkSupported | ❌ | | +| change_password | ScimSupported | ❌ | | +| etag | ScimSupported | ❌ | | +| filter | ScimFilterSupported | ❌ | | +| patch | ScimSupported | ❌ | | +| schemas | List[ScimProviderConfigSchemas] | ❌ | | +| sort | ScimSupported | ❌ | | +| xml_data_format | ScimSupported | ❌ | | + +# ScimProviderConfigSchemas + +**Properties** + +| Name | Type | Required | Description | +| :---------------------------------------------------------- | :--- | :------- | :------------------------------------------------------------ | +| URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_SERVICEPROVIDERCONFIG | str | ✅ | "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" | + + diff --git a/documentation/models/ScimResourceTypeResponse.md b/documentation/models/ScimResourceTypeResponse.md new file mode 100644 index 00000000..0d972800 --- /dev/null +++ b/documentation/models/ScimResourceTypeResponse.md @@ -0,0 +1,23 @@ +# ScimResourceTypeResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :----------------------------- | :------- | :---------------------------------------------------------- | +| name | str | ✅ | Resource type name | +| endpoint | str | ✅ | The resource type's HTTP-addressable endpoint | +| schema | ScimResourceTypeResponseSchema | ✅ | | +| id\_ | str | ❌ | Unique resource type ID, same value as the "name" attribute | +| description | str | ❌ | Description of the resource type | +| schema_extensions | List[ScimSchemaExtension] | ❌ | | +| meta | ScimMeta | ❌ | Resource metadata | + +# ScimResourceTypeResponseSchema + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------- | :--- | :------- | :------------------------------------------- | +| URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER | str | ✅ | "urn:ietf:params:scim:schemas:core:2.0:User" | + + diff --git a/documentation/models/ScimResourceTypeSearchResponse.md b/documentation/models/ScimResourceTypeSearchResponse.md new file mode 100644 index 00000000..35c63e70 --- /dev/null +++ b/documentation/models/ScimResourceTypeSearchResponse.md @@ -0,0 +1,21 @@ +# ScimResourceTypeSearchResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------------ | :------- | :----------------- | +| resources | List[ScimResourceTypeResponse] | ❌ | Resource type list | +| items_per_page | int | ❌ | | +| schemas | List[ScimResourceTypeSearchResponseSchemas] | ❌ | | +| start_index | int | ❌ | | +| total_results | int | ❌ | | + +# ScimResourceTypeSearchResponseSchemas + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------------- | :--- | :------- | :--------------------------------------------------- | +| URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE | str | ✅ | "urn:ietf:params:scim:api:messages:2.0:ListResponse" | + + diff --git a/documentation/models/ScimSchemaAttribute.md b/documentation/models/ScimSchemaAttribute.md new file mode 100644 index 00000000..f129051f --- /dev/null +++ b/documentation/models/ScimSchemaAttribute.md @@ -0,0 +1,72 @@ +# ScimSchemaAttribute + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :------------------------ | :------- | :------------------------------------------------------------------------------------ | +| name | str | ✅ | The name of the attribute | +| type\_ | ScimSchemaAttributeType | ✅ | | +| multi_valued | bool | ✅ | A Boolean value indicating the attribute's plurality | +| required | bool | ✅ | | +| mutability | Mutability | ✅ | Indicates the circumstances under which the value of the attribute can be (re)defined | +| returned | Returned | ✅ | Indicates when an attribute and associated values are returned | +| uniqueness | Uniqueness | ✅ | Specifies how the service provider enforces uniqueness of attribute values | +| sub_attributes | List[ScimSchemaAttribute] | ❌ | | +| description | str | ❌ | The description of the attribute | +| canonical_values | List[str] | ❌ | A collection of suggested canonical values | +| case_exact | bool | ❌ | | +| reference_types | List[str] | ❌ | Indicates the SCIM resource types that be referenced | + +# ScimSchemaAttributeType + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| STRING | str | ✅ | "string" | +| BOOLEAN | str | ✅ | "boolean" | +| DECIMAL | str | ✅ | "decimal" | +| INTEGER | str | ✅ | "integer" | +| DATETIME | str | ✅ | "dateTime" | +| REFERENCE | str | ✅ | "reference" | +| COMPLEX | str | ✅ | "complex" | + +# Mutability + +Indicates the circumstances under which the value of the attribute can be (re)defined + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| READONLY | str | ✅ | "readOnly" | +| READWRITE | str | ✅ | "readWrite" | +| IMMUTABLE | str | ✅ | "immutable" | +| WRITEONLY | str | ✅ | "writeOnly" | + +# Returned + +Indicates when an attribute and associated values are returned + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ALWAYS | str | ✅ | "always" | +| NEVER | str | ✅ | "never" | +| DEFAULT | str | ✅ | "default" | +| REQUEST | str | ✅ | "request" | + +# Uniqueness + +Specifies how the service provider enforces uniqueness of attribute values + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| NONE | str | ✅ | "none" | +| SERVER | str | ✅ | "server" | +| GLOBAL | str | ✅ | "global" | + + diff --git a/documentation/models/ScimSchemaExtension.md b/documentation/models/ScimSchemaExtension.md new file mode 100644 index 00000000..b1163e40 --- /dev/null +++ b/documentation/models/ScimSchemaExtension.md @@ -0,0 +1,18 @@ +# ScimSchemaExtension + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------ | :------- | :---------- | +| schema | ScimSchemaExtensionSchema | ✅ | | +| required | bool | ✅ | | + +# ScimSchemaExtensionSchema + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------------------------------- | :--- | :------- | :----------------------------------------------------------- | +| URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_ENTERPRISE_2_0_USER | str | ✅ | "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" | + + diff --git a/documentation/models/ScimSchemaResponse.md b/documentation/models/ScimSchemaResponse.md new file mode 100644 index 00000000..e64f8360 --- /dev/null +++ b/documentation/models/ScimSchemaResponse.md @@ -0,0 +1,13 @@ +# ScimSchemaResponse + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------ | :------- | :---------------------------- | +| id\_ | str | ✅ | The unique URI of the schema | +| name | str | ❌ | The name of the schema | +| description | str | ❌ | The description of the schema | +| attributes | List[ScimSchemaAttribute] | ❌ | | +| meta | ScimMeta | ❌ | Resource metadata | + + diff --git a/documentation/models/ScimSchemaSearchResponse.md b/documentation/models/ScimSchemaSearchResponse.md new file mode 100644 index 00000000..6ca061de --- /dev/null +++ b/documentation/models/ScimSchemaSearchResponse.md @@ -0,0 +1,21 @@ +# ScimSchemaSearchResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------ | :------- | :----------------- | +| resources | List[ScimSchemaResponse] | ❌ | Resource type list | +| items_per_page | int | ❌ | | +| schemas | List[ScimSchemaSearchResponseSchemas] | ❌ | | +| start_index | int | ❌ | | +| total_results | int | ❌ | | + +# ScimSchemaSearchResponseSchemas + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------------- | :--- | :------- | :--------------------------------------------------- | +| URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE | str | ✅ | "urn:ietf:params:scim:api:messages:2.0:ListResponse" | + + diff --git a/documentation/models/ScimSearchRequest.md b/documentation/models/ScimSearchRequest.md new file mode 100644 index 00000000..64687677 --- /dev/null +++ b/documentation/models/ScimSearchRequest.md @@ -0,0 +1,20 @@ +# ScimSearchRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------------------- | :------- | :------------------------------------------------------------ | +| count | int | ❌ | Page size | +| filter | str | ❌ | Only support 'userName' or 'email' filter expressions for now | +| schemas | List[ScimSearchRequestSchemas] | ❌ | | +| start_index | int | ❌ | Start index (1-based) | + +# ScimSearchRequestSchemas + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------------------------------- | :--- | :------- | :---------------------------------------------------- | +| URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_SEARCHREQUEST | str | ✅ | "urn:ietf:params:scim:api:messages:2.0:SearchRequest" | + + diff --git a/documentation/models/ScimSupported.md b/documentation/models/ScimSupported.md new file mode 100644 index 00000000..5bf86a77 --- /dev/null +++ b/documentation/models/ScimSupported.md @@ -0,0 +1,9 @@ +# ScimSupported + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| supported | bool | ❌ | | + + diff --git a/documentation/models/ScimUser.md b/documentation/models/ScimUser.md new file mode 100644 index 00000000..43830bb5 --- /dev/null +++ b/documentation/models/ScimUser.md @@ -0,0 +1,28 @@ +# ScimUser + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------------------------------- | :-------------------- | :------- | :--------------------------------------------------------- | +| emails | List[ScimEmail] | ✅ | | +| name | ScimName | ✅ | | +| schemas | List[ScimUserSchemas] | ✅ | | +| user_name | str | ✅ | MUST be same as work type email address | +| active | bool | ❌ | User status | +| addresses | List[ScimUserAddress] | ❌ | | +| external_id | str | ❌ | External unique resource ID defined by provisioning client | +| id\_ | str | ❌ | Unique resource ID defined by RingCentral | +| phone_numbers | List[ScimPhoneNumber] | ❌ | | +| photos | List[ScimPhoto] | ❌ | | +| title | str | ❌ | User title | +| urn_ietf_params_scim_schemas_extension_enterprise_2_0_user | ScimEnterpriseUser | ❌ | | + +# ScimUserSchemas + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------- | :--- | :------- | :------------------------------------------- | +| URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER | str | ✅ | "urn:ietf:params:scim:schemas:core:2.0:User" | + + diff --git a/documentation/models/ScimUserAddress.md b/documentation/models/ScimUserAddress.md new file mode 100644 index 00000000..1e0e0175 --- /dev/null +++ b/documentation/models/ScimUserAddress.md @@ -0,0 +1,22 @@ +# ScimUserAddress + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------ | :------- | :---------- | +| type\_ | ScimUserAddressType | ✅ | | +| country | str | ❌ | | +| locality | str | ❌ | | +| postal_code | str | ❌ | | +| region | str | ❌ | | +| street_address | str | ❌ | | + +# ScimUserAddressType + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| WORK | str | ✅ | "work" | + + diff --git a/documentation/models/ScimUserPatch.md b/documentation/models/ScimUserPatch.md new file mode 100644 index 00000000..5f9e6336 --- /dev/null +++ b/documentation/models/ScimUserPatch.md @@ -0,0 +1,18 @@ +# ScimUserPatch + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------- | :------- | :-------------------- | +| operations | List[ScimPatchOperation] | ✅ | Patch operations list | +| schemas | List[ScimUserPatchSchemas] | ✅ | | + +# ScimUserPatchSchemas + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------------------------- | :--- | :------- | :---------------------------------------------- | +| URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_PATCHOP | str | ✅ | "urn:ietf:params:scim:api:messages:2.0:PatchOp" | + + diff --git a/documentation/models/ScimUserResponse.md b/documentation/models/ScimUserResponse.md new file mode 100644 index 00000000..422080a0 --- /dev/null +++ b/documentation/models/ScimUserResponse.md @@ -0,0 +1,29 @@ +# ScimUserResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------------------------------------- | :---------------------------- | :------- | :--------------------------------------------------------- | +| emails | List[ScimEmail] | ✅ | | +| name | ScimName | ✅ | | +| schemas | List[ScimUserResponseSchemas] | ✅ | | +| user_name | str | ✅ | MUST be same as work type email address | +| active | bool | ❌ | User status | +| addresses | List[ScimUserAddress] | ❌ | | +| external_id | str | ❌ | External unique resource ID defined by provisioning client | +| id\_ | str | ❌ | Unique resource ID defined by RingCentral | +| phone_numbers | List[ScimPhoneNumber] | ❌ | | +| photos | List[ScimPhoto] | ❌ | | +| title | str | ❌ | User title | +| urn_ietf_params_scim_schemas_extension_enterprise_2_0_user | ScimEnterpriseUser | ❌ | | +| meta | ScimMeta | ❌ | Resource metadata | + +# ScimUserResponseSchemas + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------------------- | :--- | :------- | :------------------------------------------- | +| URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER | str | ✅ | "urn:ietf:params:scim:schemas:core:2.0:User" | + + diff --git a/documentation/models/ScimUserSearchResponse.md b/documentation/models/ScimUserSearchResponse.md new file mode 100644 index 00000000..e4b7534d --- /dev/null +++ b/documentation/models/ScimUserSearchResponse.md @@ -0,0 +1,21 @@ +# ScimUserSearchResponse + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :---------------------------------- | :------- | :---------- | +| resources | List[ScimUserResponse] | ❌ | User list | +| items_per_page | int | ❌ | | +| schemas | List[ScimUserSearchResponseSchemas] | ❌ | | +| start_index | int | ❌ | | +| total_results | int | ❌ | | + +# ScimUserSearchResponseSchemas + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------------------------- | :--- | :------- | :--------------------------------------------------- | +| URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE | str | ✅ | "urn:ietf:params:scim:api:messages:2.0:ListResponse" | + + diff --git a/documentation/models/SearchDirectoryContactType.md b/documentation/models/SearchDirectoryContactType.md new file mode 100644 index 00000000..832525de --- /dev/null +++ b/documentation/models/SearchDirectoryContactType.md @@ -0,0 +1,26 @@ +# SearchDirectoryContactType + +Type of directory contact to filter + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| IVRMENU | str | ✅ | "IvrMenu" | +| LIMITED | str | ✅ | "Limited" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| SITE | str | ✅ | "Site" | +| BOT | str | ✅ | "Bot" | +| ROOM | str | ✅ | "Room" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | +| EXTERNAL | str | ✅ | "External" | + + diff --git a/documentation/models/SearchDirectoryEntriesRequest.md b/documentation/models/SearchDirectoryEntriesRequest.md new file mode 100644 index 00000000..91c12df1 --- /dev/null +++ b/documentation/models/SearchDirectoryEntriesRequest.md @@ -0,0 +1,48 @@ +# SearchDirectoryEntriesRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :--------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| search_string | str | ❌ | String value to filter the contacts. The value specified is searched through the following fields: `firstName`, `lastName`, `extensionNumber`, `phoneNumber`, `email`, `jobTitle`, `department`, `customFieldValue` | +| search_fields | List[SearchFields] | ❌ | The list of field to be searched for | +| show_federated | bool | ❌ | If `true` then contacts of all accounts in federation are returned, if it is in federation, account section will be returned. If `false` then only contacts of the current account are returned, and account section is eliminated in this case | +| show_admin_only_contacts | bool | ❌ | Should show AdminOnly Contacts | +| extension_type | SearchDirectoryContactType | ❌ | Type of directory contact to filter | +| site_id | str | ❌ | Internal identifier of the business site to which extensions belong | +| show_external_contacts | bool | ❌ | Allows to control whether External (Hybrid) contacts should be returned in the response or not | +| account_ids | List[str] | ❌ | The list of Internal identifiers of an accounts | +| department | str | ❌ | Department | +| site_ids | List[str] | ❌ | The list of Internal identifiers of the business sites to which extensions belong | +| extension_statuses | List[ExtensionStatuses] | ❌ | Extension current state. | +| extension_types | List[SearchDirectoryExtensionType] | ❌ | Types of extension to filter the contacts | +| order_by | List[OrderBy] | ❌ | Sorting settings | +| page | int | ❌ | | +| per_page | int | ❌ | | + +# SearchFields + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| FIRSTNAME | str | ✅ | "firstName" | +| LASTNAME | str | ✅ | "lastName" | +| EXTENSIONNUMBER | str | ✅ | "extensionNumber" | +| PHONENUMBER | str | ✅ | "phoneNumber" | +| EMAIL | str | ✅ | "email" | +| JOBTITLE | str | ✅ | "jobTitle" | +| DEPARTMENT | str | ✅ | "department" | +| CUSTOMFIELDVALUE | str | ✅ | "customFieldValue" | + +# ExtensionStatuses + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| ENABLED | str | ✅ | "Enabled" | +| DISABLED | str | ✅ | "Disabled" | +| NOTACTIVATED | str | ✅ | "NotActivated" | + + diff --git a/documentation/models/SearchDirectoryExtensionType.md b/documentation/models/SearchDirectoryExtensionType.md new file mode 100644 index 00000000..2d47c0cb --- /dev/null +++ b/documentation/models/SearchDirectoryExtensionType.md @@ -0,0 +1,31 @@ +# SearchDirectoryExtensionType + +Type of extension to filter the contacts + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| FAXUSER | str | ✅ | "FaxUser" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| LIMITED | str | ✅ | "Limited" | +| BOT | str | ✅ | "Bot" | +| SITE | str | ✅ | "Site" | +| ROOM | str | ✅ | "Room" | +| PROXYADMIN | str | ✅ | "ProxyAdmin" | +| DELEGATEDLINESGROUP | str | ✅ | "DelegatedLinesGroup" | +| FLEXIBLEUSER | str | ✅ | "FlexibleUser" | +| GROUPCALLPICKUP | str | ✅ | "GroupCallPickup" | +| ROOMCONNECTOR | str | ✅ | "RoomConnector" | + + diff --git a/documentation/models/SendWelcomeEmailV2Request.md b/documentation/models/SendWelcomeEmailV2Request.md new file mode 100644 index 00000000..ac829742 --- /dev/null +++ b/documentation/models/SendWelcomeEmailV2Request.md @@ -0,0 +1,9 @@ +# SendWelcomeEmailV2Request + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| email | str | ❌ | | + + diff --git a/documentation/models/ServiceFeatureInfo.md b/documentation/models/ServiceFeatureInfo.md new file mode 100644 index 00000000..5edbaf60 --- /dev/null +++ b/documentation/models/ServiceFeatureInfo.md @@ -0,0 +1,79 @@ +# ServiceFeatureInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------------------- | :------- | :----------------------------------------------------------- | +| feature_name | ServiceFeatureInfoFeatureName | ❌ | Feature name | +| enabled | bool | ❌ | Feature status, shows feature availability for the extension | + +# ServiceFeatureInfoFeatureName + +Feature name + +**Properties** + +| Name | Type | Required | Description | +| :----------------------------- | :--- | :------- | :------------------------------- | +| ACCOUNTFEDERATION | str | ✅ | "AccountFederation" | +| ARCHIVER | str | ✅ | "Archiver" | +| AUTOMATICCALLRECORDINGMUTE | str | ✅ | "AutomaticCallRecordingMute" | +| AUTOMATICINBOUNDCALLRECORDING | str | ✅ | "AutomaticInboundCallRecording" | +| AUTOMATICOUTBOUNDCALLRECORDING | str | ✅ | "AutomaticOutboundCallRecording" | +| BLOCKEDMESSAGEFORWARDING | str | ✅ | "BlockedMessageForwarding" | +| CALENDAR | str | ✅ | "Calendar" | +| CALLERIDCONTROL | str | ✅ | "CallerIdControl" | +| CALLFORWARDING | str | ✅ | "CallForwarding" | +| CALLPARK | str | ✅ | "CallPark" | +| CALLPARKLOCATIONS | str | ✅ | "CallParkLocations" | +| CALLSUPERVISION | str | ✅ | "CallSupervision" | +| CALLSWITCH | str | ✅ | "CallSwitch" | +| CALLQUALITYSURVEY | str | ✅ | "CallQualitySurvey" | +| CONFERENCING | str | ✅ | "Conferencing" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| CONFIGUREDELEGATES | str | ✅ | "ConfigureDelegates" | +| DEVELOPERPORTAL | str | ✅ | "DeveloperPortal" | +| DND | str | ✅ | "DND" | +| DYNAMICCONFERENCE | str | ✅ | "DynamicConference" | +| EMERGENCYADDRESSAUTOUPDATE | str | ✅ | "EmergencyAddressAutoUpdate" | +| EMERGENCYCALLING | str | ✅ | "EmergencyCalling" | +| ENCRYPTIONATREST | str | ✅ | "EncryptionAtRest" | +| EXTERNALDIRECTORYINTEGRATION | str | ✅ | "ExternalDirectoryIntegration" | +| FAX | str | ✅ | "Fax" | +| FAXRECEIVING | str | ✅ | "FaxReceiving" | +| FREESOFTPHONELINES | str | ✅ | "FreeSoftPhoneLines" | +| HDVOICE | str | ✅ | "HDVoice" | +| HIPAACOMPLIANCE | str | ✅ | "HipaaCompliance" | +| INTERCOM | str | ✅ | "Intercom" | +| INTERNATIONALCALLING | str | ✅ | "InternationalCalling" | +| INTERNATIONALSMS | str | ✅ | "InternationalSMS" | +| LINKEDSOFTPHONELINES | str | ✅ | "LinkedSoftphoneLines" | +| MMS | str | ✅ | "MMS" | +| MOBILEVOIPEMERGENCYCALLING | str | ✅ | "MobileVoipEmergencyCalling" | +| ONDEMANDCALLRECORDING | str | ✅ | "OnDemandCallRecording" | +| PAGER | str | ✅ | "Pager" | +| PAGERRECEIVING | str | ✅ | "PagerReceiving" | +| PAGING | str | ✅ | "Paging" | +| PASSWORDAUTH | str | ✅ | "PasswordAuth" | +| PROMOMESSAGE | str | ✅ | "PromoMessage" | +| REPORTS | str | ✅ | "Reports" | +| PRESENCE | str | ✅ | "Presence" | +| RCTEAMS | str | ✅ | "RCTeams" | +| RINGOUT | str | ✅ | "RingOut" | +| SALESFORCE | str | ✅ | "SalesForce" | +| SHAREDLINES | str | ✅ | "SharedLines" | +| SINGLEEXTENSIONUI | str | ✅ | "SingleExtensionUI" | +| SITECODES | str | ✅ | "SiteCodes" | +| SMS | str | ✅ | "SMS" | +| SMSRECEIVING | str | ✅ | "SMSReceiving" | +| SOFTPHONEUPDATE | str | ✅ | "SoftPhoneUpdate" | +| TELEPHONYSESSIONS | str | ✅ | "TelephonySessions" | +| USERMANAGEMENT | str | ✅ | "UserManagement" | +| VIDEOCONFERENCING | str | ✅ | "VideoConferencing" | +| VOIPCALLING | str | ✅ | "VoipCalling" | +| VOIPCALLINGONMOBILE | str | ✅ | "VoipCallingOnMobile" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| VOICEMAILTOTEXT | str | ✅ | "VoicemailToText" | +| WEBPHONE | str | ✅ | "WebPhone" | + + diff --git a/documentation/models/ServiceInfo.md b/documentation/models/ServiceInfo.md new file mode 100644 index 00000000..9cae58ee --- /dev/null +++ b/documentation/models/ServiceInfo.md @@ -0,0 +1,18 @@ +# ServiceInfo + +Account service information, including brand, sub-brand, service plan and +billing plan + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :-------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | Canonical URI of a service info resource | +| billing_plan | BillingPlanInfo | ❌ | Information on account billing plan | +| brand | BrandInfo | ❌ | Information on account brand | +| service_plan | ServicePlanInfo | ❌ | Information on account service plan | +| target_service_plan | TargetServicePlanInfo | ❌ | Information on account target service plan | +| contracted_country | CountryInfoShortModel | ❌ | | +| u_brand | UBrandInfo | ❌ | Account sub-brand information | + + diff --git a/documentation/models/ServiceInfoBrand.md b/documentation/models/ServiceInfoBrand.md new file mode 100644 index 00000000..f0f7fb46 --- /dev/null +++ b/documentation/models/ServiceInfoBrand.md @@ -0,0 +1,12 @@ +# ServiceInfoBrand + +Internal RC "brand" information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------- | +| id\_ | str | ✅ | RingCentral brand ID | +| name | str | ✅ | RingCentral brand name | + + diff --git a/documentation/models/ServiceInfoCountryShortModel.md b/documentation/models/ServiceInfoCountryShortModel.md new file mode 100644 index 00000000..ed337d6d --- /dev/null +++ b/documentation/models/ServiceInfoCountryShortModel.md @@ -0,0 +1,13 @@ +# ServiceInfoCountryShortModel + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| uri | str | ❌ | Canonical URI of a country resource | +| name | str | ❌ | The official name of a country | +| iso_code | str | ❌ | A ISO country code value complying with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. | +| calling_code | str | ❌ | Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) | + + diff --git a/documentation/models/ServiceInfoPackage.md b/documentation/models/ServiceInfoPackage.md new file mode 100644 index 00000000..6b5d44c2 --- /dev/null +++ b/documentation/models/ServiceInfoPackage.md @@ -0,0 +1,22 @@ +# ServiceInfoPackage + +Billing package information + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------ | :------- | :---------------------- | +| id\_ | str | ✅ | Billing package ID | +| version | Version | ✅ | Billing package version | + +# Version + +Billing package version + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| \_1 | str | ✅ | "1" | + + diff --git a/documentation/models/ServiceInfoPlan.md b/documentation/models/ServiceInfoPlan.md new file mode 100644 index 00000000..7d322133 --- /dev/null +++ b/documentation/models/ServiceInfoPlan.md @@ -0,0 +1,23 @@ +# ServiceInfoPlan + +Information on account service plan + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------------- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a service plan | +| name | str | ❌ | Name of a service plan | +| edition | str | ❌ | Edition of a service plan | +| freemium_product_type | ServiceInfoPlanFreemiumProductType | ❌ | | + +# ServiceInfoPlanFreemiumProductType + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| FREYJA | str | ✅ | "Freyja" | +| PHOENIX | str | ✅ | "Phoenix" | + + diff --git a/documentation/models/ServiceInfoUBrand.md b/documentation/models/ServiceInfoUBrand.md new file mode 100644 index 00000000..43e195f7 --- /dev/null +++ b/documentation/models/ServiceInfoUBrand.md @@ -0,0 +1,12 @@ +# ServiceInfoUBrand + +Account sub-brand information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------ | +| id\_ | str | ❌ | Sub-brand unique ID | +| name | str | ❌ | Sub-brand name | + + diff --git a/documentation/models/ServiceInfoV2.md b/documentation/models/ServiceInfoV2.md new file mode 100644 index 00000000..872ab668 --- /dev/null +++ b/documentation/models/ServiceInfoV2.md @@ -0,0 +1,15 @@ +# ServiceInfoV2 + +Service Plan information (billing package, brand, etc.) + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------------- | :------- | :---------------------------------- | +| package | ServiceInfoPackage | ✅ | Billing package information | +| brand | ServiceInfoBrand | ❌ | Internal RC "brand" information | +| contracted_country | ServiceInfoCountryShortModel | ❌ | | +| u_brand | ServiceInfoUBrand | ❌ | Account sub-brand information | +| service_plan | ServiceInfoPlan | ❌ | Information on account service plan | + + diff --git a/documentation/models/ServicePlanInfo.md b/documentation/models/ServicePlanInfo.md new file mode 100644 index 00000000..67cf72ae --- /dev/null +++ b/documentation/models/ServicePlanInfo.md @@ -0,0 +1,23 @@ +# ServicePlanInfo + +Information on account service plan + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------------- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a service plan | +| name | str | ❌ | Name of a service plan | +| edition | str | ❌ | Edition of a service plan | +| freemium_product_type | ServicePlanInfoFreemiumProductType | ❌ | | + +# ServicePlanInfoFreemiumProductType + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| FREYJA | str | ✅ | "Freyja" | +| PHOENIX | str | ✅ | "Phoenix" | + + diff --git a/documentation/models/SessionGlobalListEntry.md b/documentation/models/SessionGlobalListEntry.md new file mode 100644 index 00000000..ab6d5869 --- /dev/null +++ b/documentation/models/SessionGlobalListEntry.md @@ -0,0 +1,22 @@ +# SessionGlobalListEntry + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :-------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| webinar | WcsWebinarRefModel | ✅ | | +| scheduled_start_time | str | ✅ | Session scheduled start time. | +| scheduled_duration | int | ✅ | The duration of the Session in seconds. | +| time_zone | str | ✅ | IANA-compatible time zone name (see https://www.iana.org/time-zones). | +| id\_ | str | ❌ | Internal object ID | +| localized_time_zone_description | str | ❌ | Localized time zone description. | +| panel_join_time_offset | int | ❌ | The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync | +| title | str | ❌ | Session title. Can be left blank - then Webinar title should be used for presentation. | +| description | str | ❌ | User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation. | +| status | WcsSessionStatusModel | ❌ | Session status (for the purposes of Configuration service) | +| host_join_uri | str | ❌ | The URI to join the webinar as a host | +| locale_code | str | ❌ | Session locale code. Can't be blank or null | + + diff --git a/documentation/models/SessionGlobalListResource.md b/documentation/models/SessionGlobalListResource.md new file mode 100644 index 00000000..32a5c757 --- /dev/null +++ b/documentation/models/SessionGlobalListResource.md @@ -0,0 +1,10 @@ +# SessionGlobalListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------------- | :------- | :---------- | +| records | List[SessionGlobalResource] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/SessionGlobalResource.md b/documentation/models/SessionGlobalResource.md new file mode 100644 index 00000000..e8daa72b --- /dev/null +++ b/documentation/models/SessionGlobalResource.md @@ -0,0 +1,33 @@ +# SessionGlobalResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :---------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| webinar | WebinarRefModel | ✅ | | +| id\_ | str | ❌ | Internal object ID | +| start_time | str | ❌ | Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" | +| end_time | str | ❌ | Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") | +| duration | int | ❌ | Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty) | +| title | str | ❌ | Session title. If blank - derived from webinar title. | +| description | str | ❌ | User-friendly description of the Session. If blank - derived from webinar title. | +| scheduled_start_time | str | ❌ | Session scheduled start time. | +| scheduled_duration | int | ❌ | The scheduled duration of the Session in seconds. | +| time_zone | str | ❌ | IANA-compatible time zone name (see https://www.iana.org/time-zones). | +| locale_code | str | ❌ | Session locale code. Can't be blank or null. | +| panel_join_time_offset | int | ❌ | The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync | +| broadcasting_start_time | str | ❌ | The time when broadcasting started. | +| broadcasting_end_time | str | ❌ | The time when broadcasting ended. | +| status | RcwSessionStatusModel | ❌ | Webinar session status | +| runtime_status | SessionRuntimeStatusModel | ❌ | Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active | +| participant_count | int | ❌ | The number of participants (of all roles) who joined the webinar | +| attendee_count | int | ❌ | The number of attendees who joined the webinar | +| unique_participant_count | int | ❌ | Unique number of participants (of all roles) who joined the webinar | +| unique_attendee_count | int | ❌ | Unique number of attendees who joined the webinar | +| video_bridge_id | str | ❌ | The RCV bridge id | +| recording | RecordingModel | ❌ | | +| livestreams | List[SessionLivestreamMinimalModel] | ❌ | The list of livestreams configured for the session | + + diff --git a/documentation/models/SessionLivestreamMinimalModel.md b/documentation/models/SessionLivestreamMinimalModel.md new file mode 100644 index 00000000..972445ef --- /dev/null +++ b/documentation/models/SessionLivestreamMinimalModel.md @@ -0,0 +1,14 @@ +# SessionLivestreamMinimalModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| livestream_id | str | ✅ | Identifier of the livestream | +| service_provider | str | ✅ | Name of the livestreaming service provider | +| livestream_status | SessionLivestreamStatusModel | ✅ | Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS | +| previous_livestream_status | SessionLivestreamStatusModel | ❌ | Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS | +| livestream_start_time | str | ❌ | Time at which the session started to publish media to livestream service provider. | +| error | dict | ❌ | Generalized API error structure suitable for any error type | + + diff --git a/documentation/models/SessionLivestreamStatusModel.md b/documentation/models/SessionLivestreamStatusModel.md new file mode 100644 index 00000000..d10f4d53 --- /dev/null +++ b/documentation/models/SessionLivestreamStatusModel.md @@ -0,0 +1,22 @@ +# SessionLivestreamStatusModel + +Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). +Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. +Thus, state must be obtained directly from WLCS + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| INITIALIZED | str | ✅ | "Initialized" | +| AUTHORIZED | str | ✅ | "Authorized" | +| CONFIGURED | str | ✅ | "Configured" | +| PUBLISHSETUP | str | ✅ | "PublishSetup" | +| PUBLISHING | str | ✅ | "Publishing" | +| PAUSED | str | ✅ | "Paused" | +| ERROR | str | ✅ | "Error" | +| BREAK | str | ✅ | "Break" | +| DELETED | str | ✅ | "Deleted" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/SessionRefAdminModel.md b/documentation/models/SessionRefAdminModel.md new file mode 100644 index 00000000..b83aee5f --- /dev/null +++ b/documentation/models/SessionRefAdminModel.md @@ -0,0 +1,15 @@ +# SessionRefAdminModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------- | :------- | :----------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal object ID | +| start_time | str | ❌ | Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" | +| end_time | str | ❌ | Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") | +| duration | int | ❌ | Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty) | +| title | str | ❌ | Session title. If blank - derived from webinar title. | +| description | str | ❌ | User-friendly description of the Session. If blank - derived from webinar title. | +| webinar | WebinarRefModel | ❌ | | + + diff --git a/documentation/models/SessionRefModel.md b/documentation/models/SessionRefModel.md new file mode 100644 index 00000000..f6b18027 --- /dev/null +++ b/documentation/models/SessionRefModel.md @@ -0,0 +1,15 @@ +# SessionRefModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------- | :------- | :----------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal object ID | +| start_time | str | ❌ | Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" | +| end_time | str | ❌ | Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") | +| duration | int | ❌ | Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty) | +| title | str | ❌ | Session title. If blank - derived from webinar title. | +| description | str | ❌ | User-friendly description of the Session. If blank - derived from webinar title. | +| webinar | WebinarRefModel | ❌ | | + + diff --git a/documentation/models/SessionResource.md b/documentation/models/SessionResource.md new file mode 100644 index 00000000..9d74879b --- /dev/null +++ b/documentation/models/SessionResource.md @@ -0,0 +1,32 @@ +# SessionResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :---------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| id\_ | str | ❌ | Internal object ID | +| start_time | str | ❌ | Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" | +| end_time | str | ❌ | Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") | +| duration | int | ❌ | Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty) | +| title | str | ❌ | Session title. If blank - derived from webinar title. | +| description | str | ❌ | User-friendly description of the Session. If blank - derived from webinar title. | +| scheduled_start_time | str | ❌ | Session scheduled start time. | +| scheduled_duration | int | ❌ | The scheduled duration of the Session in seconds. | +| time_zone | str | ❌ | IANA-compatible time zone name (see https://www.iana.org/time-zones). | +| locale_code | str | ❌ | Session locale code. Can't be blank or null. | +| panel_join_time_offset | int | ❌ | The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync | +| broadcasting_start_time | str | ❌ | The time when broadcasting started. | +| broadcasting_end_time | str | ❌ | The time when broadcasting ended. | +| status | RcwSessionStatusModel | ❌ | Webinar session status | +| runtime_status | SessionRuntimeStatusModel | ❌ | Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active | +| participant_count | int | ❌ | The number of participants (of all roles) who joined the webinar | +| attendee_count | int | ❌ | The number of attendees who joined the webinar | +| unique_participant_count | int | ❌ | Unique number of participants (of all roles) who joined the webinar | +| unique_attendee_count | int | ❌ | Unique number of attendees who joined the webinar | +| video_bridge_id | str | ❌ | The RCV bridge id | +| recording | RecordingExtendedModel | ❌ | | +| livestreams | List[SessionLivestreamMinimalModel] | ❌ | The list of livestreams configured for the session | + + diff --git a/documentation/models/SessionRuntimeStatusModel.md b/documentation/models/SessionRuntimeStatusModel.md new file mode 100644 index 00000000..bee80d39 --- /dev/null +++ b/documentation/models/SessionRuntimeStatusModel.md @@ -0,0 +1,17 @@ +# SessionRuntimeStatusModel + +Session runtime status (for 'Active' Sessions only). +It is omitted (or null) if the status is not Active + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| IDLE | str | ✅ | "Idle" | +| PRACTICE | str | ✅ | "Practice" | +| GOINGLIVE | str | ✅ | "GoingLive" | +| LIVE | str | ✅ | "Live" | +| BREAK | str | ✅ | "Break" | +| DEBRIEF | str | ✅ | "Debrief" | + + diff --git a/documentation/models/SetupWizardStateEnum.md b/documentation/models/SetupWizardStateEnum.md new file mode 100644 index 00000000..5fe3e2b7 --- /dev/null +++ b/documentation/models/SetupWizardStateEnum.md @@ -0,0 +1,14 @@ +# SetupWizardStateEnum + +Initial configuration wizard state + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| NOTSTARTED | str | ✅ | "NotStarted" | +| INCOMPLETE | str | ✅ | "Incomplete" | +| COMPLETED | str | ✅ | "Completed" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/SetupWizardStateForUpdateEnum.md b/documentation/models/SetupWizardStateForUpdateEnum.md new file mode 100644 index 00000000..4d255a90 --- /dev/null +++ b/documentation/models/SetupWizardStateForUpdateEnum.md @@ -0,0 +1,13 @@ +# SetupWizardStateForUpdateEnum + +Initial configuration wizard state + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| NOTSTARTED | str | ✅ | "NotStarted" | +| INCOMPLETE | str | ✅ | "Incomplete" | +| COMPLETED | str | ✅ | "Completed" | + + diff --git a/documentation/models/SharedLinesInfo.md b/documentation/models/SharedLinesInfo.md new file mode 100644 index 00000000..6007fdc7 --- /dev/null +++ b/documentation/models/SharedLinesInfo.md @@ -0,0 +1,11 @@ +# SharedLinesInfo + +SharedLines call handling action settings + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :--------------------------------------------------------------------------------------- | +| timeout | int | ❌ | Number of seconds to wait before forwarding unanswered calls. The value range is 10 - 80 | + + diff --git a/documentation/models/ShippingAddressInfo.md b/documentation/models/ShippingAddressInfo.md new file mode 100644 index 00000000..a2059e7a --- /dev/null +++ b/documentation/models/ShippingAddressInfo.md @@ -0,0 +1,32 @@ +# ShippingAddressInfo + +Shipping address for the order. If it coincides with the Emergency +Service Address, then can be omitted. By default, the same value as the +emergencyServiceAddress. Multiple addresses can be specified; in case +an order contains several devices, they can be delivered to different addresses + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| customer_name | str | ❌ | Name of a primary contact person (receiver) | +| additional_customer_name | str | ❌ | Name of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. | +| customer_email | str | ❌ | Email of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia. | +| additional_customer_email | str | ❌ | Email of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. | +| customer_phone | str | ❌ | Phone number of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia | +| additional_customer_phone | str | ❌ | Phone number of an additional contact person. Should be specified for countries except the US, Canada, the UK & Australia. | +| street | str | ❌ | Street address, line 1 - street address, P.O. box, company name, c/o | +| street2 | str | ❌ | Street address, line 2 - apartment, suite, unit, building, floor, etc. | +| city | str | ❌ | City name | +| state | str | ❌ | State/province name | +| state_id | str | ❌ | Internal identifier of a state | +| state_iso_code | str | ❌ | ISO code of a state | +| state_name | str | ❌ | Full name of a state | +| country_id | str | ❌ | Internal identifier of a country | +| country_iso_code | str | ❌ | ISO code of a country | +| country | str | ❌ | Country name | +| country_name | str | ❌ | Full name of a country | +| zip | str | ❌ | Zip code | +| tax_id | str | ❌ | National taxpayer identification number. Should be specified for Brazil (CNPJ/CPF number) and Argentina (CUIT number). | + + diff --git a/documentation/models/ShippingInfo.md b/documentation/models/ShippingInfo.md new file mode 100644 index 00000000..7631cf27 --- /dev/null +++ b/documentation/models/ShippingInfo.md @@ -0,0 +1,17 @@ +# ShippingInfo + +Shipping information, according to which devices (in case of HardPhone) +or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered +to the customer + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| status | ShippingStatus | ❌ | Order item shipping status. It is set to `Initial` when the order is submitted. Then it is changed to `Accepted` when a distributor starts processing the order. Finally, it is changed to `Shipped` which means that the distributor has shipped the device. | +| carrier | str | ❌ | Shipping carrier name. Appears only if the device status is 'Shipped' | +| tracking_number | str | ❌ | Carrier-specific tracking number. Appears only if the device status is 'Shipped' | +| method | ShippingMethodInfo | ❌ | | +| address | ShippingAddressInfo | ❌ | Shipping address for the order. If it coincides with the Emergency Service Address, then can be omitted. By default, the same value as the emergencyServiceAddress. Multiple addresses can be specified; in case an order contains several devices, they can be delivered to different addresses | + + diff --git a/documentation/models/ShippingMethodInfo.md b/documentation/models/ShippingMethodInfo.md new file mode 100644 index 00000000..de86c811 --- /dev/null +++ b/documentation/models/ShippingMethodInfo.md @@ -0,0 +1,38 @@ +# ShippingMethodInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | +| id\_ | Id | ✅ | Shipping method ID: - "1" - Ground Shipping (5-7 business days) - "2" - Expedited Shipping (2-days) - "3" - Overnight Shipping | +| name | ShippingMethodInfoName | ❌ | Method name, corresponding to the identifier | + +# Id + +Shipping method ID: + +- "1" - Ground Shipping (5-7 business days) +- "2" - Expedited Shipping (2-days) +- "3" - Overnight Shipping + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| \_1 | str | ✅ | "1" | +| \_2 | str | ✅ | "2" | +| \_3 | str | ✅ | "3" | + +# ShippingMethodInfoName + +Method name, corresponding to the identifier + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| GROUND | str | ✅ | "Ground" | +| \_2_DAY | str | ✅ | "2 Day" | +| OVERNIGHT | str | ✅ | "Overnight" | + + diff --git a/documentation/models/ShippingStatus.md b/documentation/models/ShippingStatus.md new file mode 100644 index 00000000..b4138d96 --- /dev/null +++ b/documentation/models/ShippingStatus.md @@ -0,0 +1,15 @@ +# ShippingStatus + +Order item shipping status. It is set to `Initial` when the order is submitted. +Then it is changed to `Accepted` when a distributor starts processing the order. +Finally, it is changed to `Shipped` which means that the distributor has shipped the device. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INITIAL | str | ✅ | "Initial" | +| ACCEPTED | str | ✅ | "Accepted" | +| SHIPPED | str | ✅ | "Shipped" | + + diff --git a/documentation/models/ShortSiteInfo.md b/documentation/models/ShortSiteInfo.md new file mode 100644 index 00000000..5d80143e --- /dev/null +++ b/documentation/models/ShortSiteInfo.md @@ -0,0 +1,10 @@ +# ShortSiteInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a site extension | +| name | str | ❌ | Extension user first name | + + diff --git a/documentation/models/SignupInfoResource.md b/documentation/models/SignupInfoResource.md new file mode 100644 index 00000000..90d61db7 --- /dev/null +++ b/documentation/models/SignupInfoResource.md @@ -0,0 +1,50 @@ +# SignupInfoResource + +Account sign up data + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------------- | :------- | :--------------------------------------------------------- | +| tos_accepted | bool | ❌ | | +| signup_state | List[SignupState] | ❌ | | +| verification_reason | VerificationReason | ❌ | | +| marketing_accepted | bool | ❌ | Updates 'Send Marketing Information' flag on web interface | +| creation_time | str | ❌ | The timestamp of account creation | + +# SignupState + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :--- | :------- | :-------------------------- | +| ACCOUNTCREATED | str | ✅ | "AccountCreated" | +| BILLINGENTERED | str | ✅ | "BillingEntered" | +| CREDITCARDAPPROVED | str | ✅ | "CreditCardApproved" | +| ACCOUNTCONFIRMED | str | ✅ | "AccountConfirmed" | +| PHONEVERIFICATIONREQUIRED | str | ✅ | "PhoneVerificationRequired" | +| PHONEVERIFICATIONPASSED | str | ✅ | "PhoneVerificationPassed" | + +# VerificationReason + +**Properties** + +| Name | Type | Required | Description | +| :------------------------- | :--- | :------- | :--------------------------- | +| CC_FAILED | str | ✅ | "CC_Failed" | +| PHONE_SUSPICIOUS | str | ✅ | "Phone_Suspicious" | +| CC_PHONE_NOT_MATCH | str | ✅ | "CC_Phone_Not_Match" | +| AVS_NOT_AVAILABLE | str | ✅ | "AVS_Not_Available" | +| MAXMIND | str | ✅ | "MaxMind" | +| CC_BLACKLISTED | str | ✅ | "CC_Blacklisted" | +| EMAIL_BLACKLISTED | str | ✅ | "Email_Blacklisted" | +| PHONE_BLACKLISTED | str | ✅ | "Phone_Blacklisted" | +| COOKIE_BLACKLISTED | str | ✅ | "Cookie_Blacklisted" | +| DEVICE_BLACKLISTED | str | ✅ | "Device_Blacklisted" | +| IP_BLACKLISTED | str | ✅ | "IP_Blacklisted" | +| AGENT_INSTANCE_BLACKLISTED | str | ✅ | "Agent_Instance_Blacklisted" | +| CHARGE_LIMIT | str | ✅ | "Charge_Limit" | +| OTHER_COUNTRY | str | ✅ | "Other_Country" | +| UNKNOWN | str | ✅ | "Unknown" | + + diff --git a/documentation/models/SipFlagsResponse.md b/documentation/models/SipFlagsResponse.md new file mode 100644 index 00000000..ad244fca --- /dev/null +++ b/documentation/models/SipFlagsResponse.md @@ -0,0 +1,17 @@ +# SipFlagsResponse + +SIP flags information + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------- | +| voip_feature_enabled | bool | ❌ | Indicates that VoIP calling feature is enabled | +| voip_country_blocked | bool | ❌ | Indicates that the request is sent from IP address of a country where VoIP calling is disallowed | +| outbound_calls_enabled | bool | ❌ | Indicates that outbound calls are enabled | +| dscp_enabled | bool | ❌ | | +| dscp_signaling | int | ❌ | | +| dscp_voice | int | ❌ | | +| dscp_video | int | ❌ | | + + diff --git a/documentation/models/SipInfoRequest.md b/documentation/models/SipInfoRequest.md new file mode 100644 index 00000000..90888136 --- /dev/null +++ b/documentation/models/SipInfoRequest.md @@ -0,0 +1,22 @@ +# SipInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :---------------------- | :------- | :----------------------------------------------------------------------------- | +| transport | SipInfoRequestTransport | ❌ | Supported transport. SIP info will be returned for this transport if supported | + +# SipInfoRequestTransport + +Supported transport. SIP info will be returned for this transport if supported + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| UDP | str | ✅ | "UDP" | +| TCP | str | ✅ | "TCP" | +| TLS | str | ✅ | "TLS" | +| WSS | str | ✅ | "WSS" | + + diff --git a/documentation/models/SipInfoResource.md b/documentation/models/SipInfoResource.md new file mode 100644 index 00000000..3b29213c --- /dev/null +++ b/documentation/models/SipInfoResource.md @@ -0,0 +1,13 @@ +# SipInfoResource + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------- | :------- | :---------------------------------------- | +| domain | str | ❌ | SIP domain | +| outbound_proxies | List[OutboundProxyInfo] | ❌ | List of outbound proxies | +| user_name | str | ❌ | User credentials | +| password | str | ❌ | User password | +| authorization_id | str | ❌ | Internal identifier for SIP authorization | + + diff --git a/documentation/models/SipInfoResponse.md b/documentation/models/SipInfoResponse.md new file mode 100644 index 00000000..42b01a1d --- /dev/null +++ b/documentation/models/SipInfoResponse.md @@ -0,0 +1,34 @@ +# SipInfoResponse + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :----------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| username | str | ❌ | User credentials | +| password | str | ❌ | User password. Not returned if SipDigest is not enabled | +| authorization_types | List[AuthorizationType] | ❌ | Supported authorization types and their priority for clients | +| authorization_id | str | ❌ | Identifier for SIP authorization | +| domain | str | ❌ | SIP domain | +| outbound_proxy | str | ❌ | SIP outbound proxy server address (in the format ) | +| outbound_proxy_i_pv6 | str | ❌ | SIP outbound IPv6 proxy server address (in the format ) | +| outbound_proxy_backup | str | ❌ | SIP outbound proxy server backup address (in the format ) | +| outbound_proxy_i_pv6_backup | str | ❌ | SIP outbound IPv6 proxy server backup address (in the format ) | +| transport | SipInfoResponseTransport | ❌ | Preferred transport. SIP info will be returned for this transport if supported | +| certificate | str | ❌ | For TLS transport only, Base64 encoded certificate | +| switch_back_interval | int | ❌ | The interval in seconds after which the app must try to switch back to primary proxy if it was previously switched to backup. If this parameter is not returned, the app must stay on backup proxy and try to switch to primary proxy after the next SIP-provision call. | +| stun_servers | List[str] | ❌ | List of stun servers in the format | + +# SipInfoResponseTransport + +Preferred transport. SIP info will be returned for this transport if supported + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| UDP | str | ✅ | "UDP" | +| TCP | str | ✅ | "TCP" | +| TLS | str | ✅ | "TLS" | +| WSS | str | ✅ | "WSS" | + + diff --git a/documentation/models/SipRegistrationDeviceEmergencyInfo.md b/documentation/models/SipRegistrationDeviceEmergencyInfo.md new file mode 100644 index 00000000..d7b4617d --- /dev/null +++ b/documentation/models/SipRegistrationDeviceEmergencyInfo.md @@ -0,0 +1,72 @@ +# SipRegistrationDeviceEmergencyInfo + +Emergency response location settings of a device + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------- | +| address | Address | ❌ | | +| location | SipRegistrationDeviceLocationInfo | ❌ | Company emergency response location details | +| out_of_country | bool | ❌ | Specifies if emergency address is out of country | +| address_status | SipRegistrationDeviceEmergencyInfoAddressStatus | ❌ | Emergency address status | +| visibility | SipRegistrationDeviceEmergencyInfoVisibility | ❌ | Specifies whether to return only private or only public (company) ERLs (Emergency Response Locations) | +| sync_status | SipRegistrationDeviceEmergencyInfoSyncStatus | ❌ | Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` | +| address_editable_status | SipRegistrationDeviceEmergencyInfoAddressEditableStatus | ❌ | Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) | +| address_required | bool | ❌ | Indicates if emergency address is required for the country of a phone line | +| address_location_only | bool | ❌ | Indicates if out of country emergency address is not allowed for the country of a phone line | + +# Address + +# SipRegistrationDeviceEmergencyInfoAddressStatus + +Emergency address status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | +| PROCESSING | str | ✅ | "Processing" | + +# SipRegistrationDeviceEmergencyInfoVisibility + +Specifies whether to return only private or only public (company) ERLs (Emergency Response Locations) + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| PRIVATE | str | ✅ | "Private" | +| PUBLIC | str | ✅ | "Public" | + +# SipRegistrationDeviceEmergencyInfoSyncStatus + +Resulting status of emergency address synchronization. Returned +if `syncEmergencyAddress` parameter is set to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + +# SipRegistrationDeviceEmergencyInfoAddressEditableStatus + +Ability to register new emergency address for a phone line +using devices sharing this line or only main device (line owner) + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| MAINDEVICE | str | ✅ | "MainDevice" | +| ANYDEVICE | str | ✅ | "AnyDevice" | + + diff --git a/documentation/models/SipRegistrationDeviceInfo.md b/documentation/models/SipRegistrationDeviceInfo.md new file mode 100644 index 00000000..2d99c18a --- /dev/null +++ b/documentation/models/SipRegistrationDeviceInfo.md @@ -0,0 +1,52 @@ +# SipRegistrationDeviceInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------------ | :------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| uri | str | ❌ | Canonical URI of the resource | +| id\_ | str | ❌ | Internal identifier of a device | +| type\_ | SipRegistrationDeviceInfoType | ❌ | Device type | +| sku | str | ❌ | Device identification number (SKU, Stock Keeping Unit) in the format TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all other devices including soft phones); ID - device model ID; AT - add-on type ID; AC - add-on count (if any). For example 'HP-56-2-2' | +| status | SipRegistrationDeviceInfoStatus | ❌ | | +| name | str | ❌ | Device name. Mandatory if ordering SoftPhone or OtherPhone. Optional for HardPhone. If not specified for HardPhone, then device model name is used as device name | +| serial | str | ❌ | Serial number for HardPhone (is returned only when the phone is shipped and provisioned); endpoint_id for Softphone and mobile applications | +| computer_name | str | ❌ | Computer name (for devices of `SoftPhone` type only) | +| model | DeviceModelInfo | ❌ | HardPhone model information | +| extension | DeviceExtensionInfo | ❌ | | +| emergency_service_address | DeviceEmergencyServiceAddressResourceDefault | ❌ | Address for emergency cases. The same emergency address is assigned to all the numbers of one device | +| emergency | SipRegistrationDeviceEmergencyInfo | ❌ | Emergency response location settings of a device | +| shipping | ShippingInfo | ❌ | Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer | +| phone_lines | List[DevicePhoneLinesInfo] | ❌ | Phone lines information | +| box_billing_id | int | ❌ | Box billing identifier of a device. Applicable only for devices of `HardPhone` type. | +| use_as_common_phone | bool | ❌ | Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone. | +| line_pooling | LinePoolingEnum | ❌ | Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.) | +| in_company_net | bool | ❌ | Network location status. `true` if the device is located in the configured corporate network (On-Net); `false` for Off-Net location. Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not enabled for the account/user, or if device network location is not determined | +| site | DeviceSiteInfo | ❌ | Site data | +| last_location_report_time | str | ❌ | Timestamp of receiving last location report in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example \*2016-03-10T18:07:52.534Z | + +# SipRegistrationDeviceInfoType + +Device type + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| HARDPHONE | str | ✅ | "HardPhone" | +| SOFTPHONE | str | ✅ | "SoftPhone" | +| OTHERPHONE | str | ✅ | "OtherPhone" | +| PAGING | str | ✅ | "Paging" | +| WEBPHONE | str | ✅ | "WebPhone" | +| ROOM | str | ✅ | "Room" | + +# SipRegistrationDeviceInfoStatus + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| ONLINE | str | ✅ | "Online" | +| OFFLINE | str | ✅ | "Offline" | + + diff --git a/documentation/models/SipRegistrationDeviceLocationInfo.md b/documentation/models/SipRegistrationDeviceLocationInfo.md new file mode 100644 index 00000000..a779b207 --- /dev/null +++ b/documentation/models/SipRegistrationDeviceLocationInfo.md @@ -0,0 +1,13 @@ +# SipRegistrationDeviceLocationInfo + +Company emergency response location details + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :---------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an emergency response location | +| name | str | ❌ | Emergency response location name | +| address_format_id | str | ❌ | Address format ID | + + diff --git a/documentation/models/Site.md b/documentation/models/Site.md new file mode 100644 index 00000000..7b29ba5a --- /dev/null +++ b/documentation/models/Site.md @@ -0,0 +1,13 @@ +# Site + +Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. +The default is `main-site` value. + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a site | +| name | str | ❌ | Custom name of a site | + + diff --git a/documentation/models/SiteBasicInfo.md b/documentation/models/SiteBasicInfo.md new file mode 100644 index 00000000..567a4415 --- /dev/null +++ b/documentation/models/SiteBasicInfo.md @@ -0,0 +1,10 @@ +# SiteBasicInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------------------------------- | +| id\_ | str | ✅ | Site extension identifier or "main-site" for the main site | +| name | str | ✅ | Site name | + + diff --git a/documentation/models/SiteInfo.md b/documentation/models/SiteInfo.md new file mode 100644 index 00000000..f63219a7 --- /dev/null +++ b/documentation/models/SiteInfo.md @@ -0,0 +1,18 @@ +# SiteInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a site extension | +| uri | str | ❌ | Link to a site resource | +| name | str | ❌ | Extension user first name | +| extension_number | str | ❌ | Extension number | +| caller_id_name | str | ❌ | Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) | +| email | str | ❌ | Site extension contact email | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| operator | OperatorInfo | ❌ | Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled | +| code | str | ❌ | Site code value. Returned only if specified | + + diff --git a/documentation/models/SiteIvrActions.md b/documentation/models/SiteIvrActions.md new file mode 100644 index 00000000..2f2009c9 --- /dev/null +++ b/documentation/models/SiteIvrActions.md @@ -0,0 +1,45 @@ +# SiteIvrActions + +Keys handling settings + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :-------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| input | SiteIvrActionsInput | ❌ | | +| action | SiteIvrActionsAction | ❌ | Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput only; - Disconnect - end call, for NoInput only. | +| extension | SiteIvrActionsExtensionInfo | ❌ | Extension information | + +# SiteIvrActionsInput + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| STAR | str | ✅ | "Star" | +| HASH | str | ✅ | "Hash" | +| NOINPUT | str | ✅ | "NoInput" | + +# SiteIvrActionsAction + +Key handling action: + +- Repeat - repeat menu greeting, for Star and Hash only; +- ReturnToRoot - return to root IVR menu, for Star and Hash only; +- ReturnToPrevious - return to previous IVR menu, for Star and Hash only; +- Connect - connect to specific extension, for NoInput only; +- Disconnect - end call, for NoInput only. + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| REPEAT | str | ✅ | "Repeat" | +| RETURNTOROOT | str | ✅ | "ReturnToRoot" | +| RETURNTOPREVIOUS | str | ✅ | "ReturnToPrevious" | +| RETURNTOTOPLEVELMENU | str | ✅ | "ReturnToTopLevelMenu" | +| CONNECT | str | ✅ | "Connect" | +| DISCONNECT | str | ✅ | "Disconnect" | +| DONOTHING | str | ✅ | "DoNothing" | + + diff --git a/documentation/models/SiteIvrActionsExtensionInfo.md b/documentation/models/SiteIvrActionsExtensionInfo.md new file mode 100644 index 00000000..3526a879 --- /dev/null +++ b/documentation/models/SiteIvrActionsExtensionInfo.md @@ -0,0 +1,13 @@ +# SiteIvrActionsExtensionInfo + +Extension information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| name | str | ❌ | Name of an extension user | + + diff --git a/documentation/models/SiteIvrActionsExtensionInfoUpdate.md b/documentation/models/SiteIvrActionsExtensionInfoUpdate.md new file mode 100644 index 00000000..deeff036 --- /dev/null +++ b/documentation/models/SiteIvrActionsExtensionInfoUpdate.md @@ -0,0 +1,11 @@ +# SiteIvrActionsExtensionInfoUpdate + +Extension information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | + + diff --git a/documentation/models/SiteIvrActionsUpdate.md b/documentation/models/SiteIvrActionsUpdate.md new file mode 100644 index 00000000..e8309f0d --- /dev/null +++ b/documentation/models/SiteIvrActionsUpdate.md @@ -0,0 +1,47 @@ +# SiteIvrActionsUpdate + +Keys handling settings + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :-------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| input | SiteIvrActionsUpdateInput | ❌ | | +| action | SiteIvrActionsUpdateAction | ❌ | Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput and "0" (zero) only; - Disconnect - end call, for NoInput only. | +| extension | SiteIvrActionsExtensionInfoUpdate | ❌ | Extension information | + +# SiteIvrActionsUpdateInput + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| STAR | str | ✅ | "Star" | +| HASH | str | ✅ | "Hash" | +| NOINPUT | str | ✅ | "NoInput" | +| \_0 | str | ✅ | "0" | + +# SiteIvrActionsUpdateAction + +Key handling action: + +- Repeat - repeat menu greeting, for Star and Hash only; +- ReturnToRoot - return to root IVR menu, for Star and Hash only; +- ReturnToPrevious - return to previous IVR menu, for Star and Hash only; +- Connect - connect to specific extension, for NoInput and "0" (zero) only; +- Disconnect - end call, for NoInput only. + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| REPEAT | str | ✅ | "Repeat" | +| RETURNTOROOT | str | ✅ | "ReturnToRoot" | +| RETURNTOPREVIOUS | str | ✅ | "ReturnToPrevious" | +| RETURNTOTOPLEVELMENU | str | ✅ | "ReturnToTopLevelMenu" | +| CONNECT | str | ✅ | "Connect" | +| CONNECTTOOPERATOR | str | ✅ | "ConnectToOperator" | +| DISCONNECT | str | ✅ | "Disconnect" | +| DONOTHING | str | ✅ | "DoNothing" | + + diff --git a/documentation/models/SiteIvrSettings.md b/documentation/models/SiteIvrSettings.md new file mode 100644 index 00000000..00330d23 --- /dev/null +++ b/documentation/models/SiteIvrSettings.md @@ -0,0 +1,10 @@ +# SiteIvrSettings + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------- | :------- | :---------------------------------------------------- | +| top_menu | SiteIvrTopMenu | ❌ | Top IVR Menu extension. Mandatory for MultiLevel mode | +| actions | List[SiteIvrActions] | ❌ | | + + diff --git a/documentation/models/SiteIvrSettingsUpdate.md b/documentation/models/SiteIvrSettingsUpdate.md new file mode 100644 index 00000000..30a1d9aa --- /dev/null +++ b/documentation/models/SiteIvrSettingsUpdate.md @@ -0,0 +1,10 @@ +# SiteIvrSettingsUpdate + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------- | :------- | :--------------------- | +| top_menu | SiteIvrTopMenuUpdate | ❌ | Top IVR Menu extension | +| actions | List[SiteIvrActionsUpdate] | ❌ | | + + diff --git a/documentation/models/SiteIvrTopMenu.md b/documentation/models/SiteIvrTopMenu.md new file mode 100644 index 00000000..cf856ab4 --- /dev/null +++ b/documentation/models/SiteIvrTopMenu.md @@ -0,0 +1,13 @@ +# SiteIvrTopMenu + +Top IVR Menu extension. Mandatory for MultiLevel mode + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an IVR menu extension | +| uri | str | ❌ | Link to an IVR menu extension resource | +| name | str | ❌ | Full name of an IVR menu extension user | + + diff --git a/documentation/models/SiteIvrTopMenuUpdate.md b/documentation/models/SiteIvrTopMenuUpdate.md new file mode 100644 index 00000000..1655adf1 --- /dev/null +++ b/documentation/models/SiteIvrTopMenuUpdate.md @@ -0,0 +1,11 @@ +# SiteIvrTopMenuUpdate + +Top IVR Menu extension + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an IVR menu extension | + + diff --git a/documentation/models/SiteMemberInfo.md b/documentation/models/SiteMemberInfo.md new file mode 100644 index 00000000..cea939a2 --- /dev/null +++ b/documentation/models/SiteMemberInfo.md @@ -0,0 +1,13 @@ +# SiteMemberInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :---------- | +| id\_ | int | ❌ | | +| uri | str | ❌ | | +| extension_number | str | ❌ | | +| type\_ | str | ❌ | | +| name | str | ❌ | | + + diff --git a/documentation/models/SiteMembersBulkUpdate.md b/documentation/models/SiteMembersBulkUpdate.md new file mode 100644 index 00000000..584735ef --- /dev/null +++ b/documentation/models/SiteMembersBulkUpdate.md @@ -0,0 +1,10 @@ +# SiteMembersBulkUpdate + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :-------- | :------- | :------------------------- | +| removed_extension_ids | List[str] | ❌ | List of removed extensions | +| added_extension_ids | List[str] | ❌ | List of added extensions | + + diff --git a/documentation/models/SiteMembersList.md b/documentation/models/SiteMembersList.md new file mode 100644 index 00000000..5eaa65af --- /dev/null +++ b/documentation/models/SiteMembersList.md @@ -0,0 +1,12 @@ +# SiteMembersList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to a site members list resource | +| records | List[SiteMemberInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/SiteOperatorReference.md b/documentation/models/SiteOperatorReference.md new file mode 100644 index 00000000..5c053523 --- /dev/null +++ b/documentation/models/SiteOperatorReference.md @@ -0,0 +1,12 @@ +# SiteOperatorReference + +Site Fax/SMS recipient (operator) reference. Multi-level IVR should +be enabled + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an operator extension | + + diff --git a/documentation/models/SiteReference.md b/documentation/models/SiteReference.md new file mode 100644 index 00000000..868669c7 --- /dev/null +++ b/documentation/models/SiteReference.md @@ -0,0 +1,9 @@ +# SiteReference + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a site | + + diff --git a/documentation/models/SiteResource.md b/documentation/models/SiteResource.md new file mode 100644 index 00000000..3903fd09 --- /dev/null +++ b/documentation/models/SiteResource.md @@ -0,0 +1,12 @@ +# SiteResource + +Site extension information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------ | +| id\_ | str | ❌ | Site extension identifier | +| name | str | ❌ | Site extension name | + + diff --git a/documentation/models/SiteUpdateRequest.md b/documentation/models/SiteUpdateRequest.md new file mode 100644 index 00000000..afa0520b --- /dev/null +++ b/documentation/models/SiteUpdateRequest.md @@ -0,0 +1,15 @@ +# SiteUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------- | +| name | str | ✅ | Extension user first name | +| extension_number | str | ❌ | Extension number | +| caller_id_name | str | ❌ | Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) | +| email | str | ❌ | Site extension contact email | +| business_address | ContactBusinessAddressInfo | ❌ | User's business address. The default is Company (Auto-Receptionist) settings | +| regional_settings | RegionalSettings | ❌ | Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings | +| operator | OperatorInfo | ❌ | Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled | + + diff --git a/documentation/models/SitesList.md b/documentation/models/SitesList.md new file mode 100644 index 00000000..bc503362 --- /dev/null +++ b/documentation/models/SitesList.md @@ -0,0 +1,12 @@ +# SitesList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| uri | str | ❌ | Link to a sites resource | +| records | List[SiteInfo] | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/SmsDirectionEnum.md b/documentation/models/SmsDirectionEnum.md new file mode 100644 index 00000000..2f8ce97c --- /dev/null +++ b/documentation/models/SmsDirectionEnum.md @@ -0,0 +1,12 @@ +# SmsDirectionEnum + +Direction of the SMS message + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| INBOUND | str | ✅ | "Inbound" | +| OUTBOUND | str | ✅ | "Outbound" | + + diff --git a/documentation/models/SmsRequestCountryInfo.md b/documentation/models/SmsRequestCountryInfo.md new file mode 100644 index 00000000..281afcf3 --- /dev/null +++ b/documentation/models/SmsRequestCountryInfo.md @@ -0,0 +1,12 @@ +# SmsRequestCountryInfo + +Target number country information. Either `id` or `isoCode` can be specified. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :----------------------------------- | +| id\_ | str | ❌ | Internal identifier of a country | +| iso_code | str | ❌ | ISO 3166-1 alpha-2 code of a country | + + diff --git a/documentation/models/SmsStatusEnum.md b/documentation/models/SmsStatusEnum.md new file mode 100644 index 00000000..66461dab --- /dev/null +++ b/documentation/models/SmsStatusEnum.md @@ -0,0 +1,15 @@ +# SmsStatusEnum + +Current status of a message + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| QUEUED | str | ✅ | "Queued" | +| DELIVERED | str | ✅ | "Delivered" | +| SENT | str | ✅ | "Sent" | +| SENDINGFAILED | str | ✅ | "SendingFailed" | +| DELIVERYFAILED | str | ✅ | "DeliveryFailed" | + + diff --git a/documentation/models/SocMsgCreationTimeOrder.md b/documentation/models/SocMsgCreationTimeOrder.md new file mode 100644 index 00000000..425d5d1d --- /dev/null +++ b/documentation/models/SocMsgCreationTimeOrder.md @@ -0,0 +1,13 @@ +# SocMsgCreationTimeOrder + +Ordering by creationTime is descending by default. + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :-------------- | +| \_CREATIONTIME | str | ✅ | "-creationTime" | +| \_CREATIONTIME | str | ✅ | "+creationTime" | +| CREATIONTIME | str | ✅ | "creationTime" | + + diff --git a/documentation/models/SocMsgGender.md b/documentation/models/SocMsgGender.md new file mode 100644 index 00000000..3eb5add2 --- /dev/null +++ b/documentation/models/SocMsgGender.md @@ -0,0 +1,12 @@ +# SocMsgGender + +Gender. + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| MAN | str | ✅ | "Man" | +| WOMAN | str | ✅ | "Woman" | + + diff --git a/documentation/models/SortBy.md b/documentation/models/SortBy.md new file mode 100644 index 00000000..3fe6c52b --- /dev/null +++ b/documentation/models/SortBy.md @@ -0,0 +1,11 @@ +# SortBy + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| FIRSTNAME | str | ✅ | "FirstName" | +| LASTNAME | str | ✅ | "LastName" | +| COMPANY | str | ✅ | "Company" | + + diff --git a/documentation/models/SpeakerIdentificationObject.md b/documentation/models/SpeakerIdentificationObject.md new file mode 100644 index 00000000..d04fc728 --- /dev/null +++ b/documentation/models/SpeakerIdentificationObject.md @@ -0,0 +1,9 @@ +# SpeakerIdentificationObject + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------- | :------- | :---------- | +| utterances | List[DiarizeSegment] | ✅ | | + + diff --git a/documentation/models/SpeakerInsightsObject.md b/documentation/models/SpeakerInsightsObject.md new file mode 100644 index 00000000..c725271d --- /dev/null +++ b/documentation/models/SpeakerInsightsObject.md @@ -0,0 +1,10 @@ +# SpeakerInsightsObject + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :------------------------ | :------- | :---------- | +| speaker_count | int | ❌ | | +| insights | List[SpeakerInsightsUnit] | ❌ | | + + diff --git a/documentation/models/SpeakerInsightsUnit.md b/documentation/models/SpeakerInsightsUnit.md new file mode 100644 index 00000000..43905f3e --- /dev/null +++ b/documentation/models/SpeakerInsightsUnit.md @@ -0,0 +1,21 @@ +# SpeakerInsightsUnit + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------------------- | :------- | :---------- | +| name | SpeakerInsightsUnitName | ✅ | | +| values | List[SpeakerInsightsValuesItems] | ✅ | | + +# SpeakerInsightsUnitName + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| ENERGY | str | ✅ | "Energy" | +| PACE | str | ✅ | "Pace" | +| TALKTOLISTENRATIO | str | ✅ | "TalkToListenRatio" | +| QUESTIONSASKED | str | ✅ | "QuestionsAsked" | + + diff --git a/documentation/models/SpeakerInsightsValuesItems.md b/documentation/models/SpeakerInsightsValuesItems.md new file mode 100644 index 00000000..1470cf9f --- /dev/null +++ b/documentation/models/SpeakerInsightsValuesItems.md @@ -0,0 +1,10 @@ +# SpeakerInsightsValuesItems + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------- | +| speaker_id | str | ✅ | | +| value | str | ✅ | The value corresponding to the insight for the speaker | + + diff --git a/documentation/models/SpecificInfo.md b/documentation/models/SpecificInfo.md new file mode 100644 index 00000000..e5080e07 --- /dev/null +++ b/documentation/models/SpecificInfo.md @@ -0,0 +1,14 @@ +# SpecificInfo + +Information specified in request + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------------------ | :------- | :--------------------------------------------------------------------------------------------- | +| time_from | str | ❌ | Starting time for data collection | +| time_to | str | ❌ | Ending time for data collection | +| contacts | List[DataExportTaskContactInfo] | ❌ | | +| chat_ids | List[str] | ❌ | List of chats from which the data (posts, files, tasks, events, notes, etc.) will be collected | + + diff --git a/documentation/models/SpeechContextPhrasesInput.md b/documentation/models/SpeechContextPhrasesInput.md new file mode 100644 index 00000000..cb0c4ce2 --- /dev/null +++ b/documentation/models/SpeechContextPhrasesInput.md @@ -0,0 +1,9 @@ +# SpeechContextPhrasesInput + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------- | :------- | :------------------------ | +| phrases | List[str] | ✅ | Words or Phrases to boost | + + diff --git a/documentation/models/StatusGroup.md b/documentation/models/StatusGroup.md new file mode 100644 index 00000000..8fb3b7ef --- /dev/null +++ b/documentation/models/StatusGroup.md @@ -0,0 +1,10 @@ +# StatusGroup + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| MISSED | str | ✅ | "Missed" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/SubscriptionInfo.md b/documentation/models/SubscriptionInfo.md new file mode 100644 index 00000000..a1a7f57b --- /dev/null +++ b/documentation/models/SubscriptionInfo.md @@ -0,0 +1,40 @@ +# SubscriptionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :----------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ✅ | Canonical URI of a subscription resource | +| id\_ | str | ✅ | Internal identifier of a subscription | +| event_filters | List[str] | ✅ | The list of event filter names corresponding to events the user is subscribed to | +| expiration_time | str | ✅ | Subscription expiration time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example _2016-03-10T18:07:52.534Z_ | +| status | SubscriptionInfoStatus | ✅ | Subscription status | +| creation_time | str | ✅ | Subscription creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example _2016-03-10T18:07:52.534_ | +| delivery_mode | NotificationDeliveryMode | ✅ | Notification delivery transport information | +| disabled_filters | List[DisabledFilterInfo] | ❌ | The list of event filter names corresponding to events the user is not subscribed to due to certain limitations | +| expires_in | int | ❌ | Subscription lifetime in seconds | +| blacklisted_data | BlacklistedData | ❌ | Returned if a WebHook subscription is blacklisted | + +# SubscriptionInfoStatus + +Subscription status + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------ | +| ACTIVE | str | ✅ | "Active" | +| BLACKLISTED | str | ✅ | "Blacklisted" | + +# BlacklistedData + +Returned if a WebHook subscription is blacklisted + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| blacklisted_at | str | ❌ | Time of adding subscription to a black list in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example _2016-03-10T18:07:52.534Z_ | +| reason | str | ❌ | Reason of adding subscription to a black list | + + diff --git a/documentation/models/SubscriptionListResource.md b/documentation/models/SubscriptionListResource.md new file mode 100644 index 00000000..db06b458 --- /dev/null +++ b/documentation/models/SubscriptionListResource.md @@ -0,0 +1,10 @@ +# SubscriptionListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :-------------------------- | +| uri | str | ✅ | Canonical URI of a resource | +| records | List[SubscriptionInfo] | ✅ | | + + diff --git a/documentation/models/SummaryInput.md b/documentation/models/SummaryInput.md new file mode 100644 index 00000000..31efc3b7 --- /dev/null +++ b/documentation/models/SummaryInput.md @@ -0,0 +1,24 @@ +# SummaryInput + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :---------------- | :------- | :----------------------------- | +| summary_type | SummaryType | ✅ | Type of summary to be computed | +| utterances | List[SummaryUnit] | ✅ | | + +# SummaryType + +Type of summary to be computed + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| EXTRACTIVE | str | ✅ | "Extractive" | +| ABSTRACTIVESHORT | str | ✅ | "AbstractiveShort" | +| ABSTRACTIVELONG | str | ✅ | "AbstractiveLong" | +| ABSTRACTIVEALL | str | ✅ | "AbstractiveAll" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/SummaryOutput.md b/documentation/models/SummaryOutput.md new file mode 100644 index 00000000..d55df865 --- /dev/null +++ b/documentation/models/SummaryOutput.md @@ -0,0 +1,9 @@ +# SummaryOutput + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :---------------------- | :------- | :---------- | +| summaries | List[SummaryOutputUnit] | ❌ | | + + diff --git a/documentation/models/SummaryOutputUnit.md b/documentation/models/SummaryOutputUnit.md new file mode 100644 index 00000000..a616b7d0 --- /dev/null +++ b/documentation/models/SummaryOutputUnit.md @@ -0,0 +1,21 @@ +# SummaryOutputUnit + +**Properties** + +| Name | Type | Required | Description | +| :----- | :----------------------- | :------- | :------------------------------------------------------------------ | +| name | SummaryOutputUnitName | ❌ | | +| values | List[SummaryTimingsUnit] | ❌ | Summary output units sorted by their occurrence in the conversation | + +# SummaryOutputUnitName + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------- | +| EXTRACTIVE | str | ✅ | "Extractive" | +| ABSTRACTIVELONG | str | ✅ | "AbstractiveLong" | +| ABSTRACTIVESHORT | str | ✅ | "AbstractiveShort" | +| ALL | str | ✅ | "All" | + + diff --git a/documentation/models/SummaryTimingsUnit.md b/documentation/models/SummaryTimingsUnit.md new file mode 100644 index 00000000..90ab4b1e --- /dev/null +++ b/documentation/models/SummaryTimingsUnit.md @@ -0,0 +1,12 @@ +# SummaryTimingsUnit + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :---------- | +| value | str | ✅ | | +| confidence | float | ❌ | | +| start | float | ❌ | | +| end | float | ❌ | | + + diff --git a/documentation/models/SummaryUnit.md b/documentation/models/SummaryUnit.md new file mode 100644 index 00000000..d1d9e539 --- /dev/null +++ b/documentation/models/SummaryUnit.md @@ -0,0 +1,12 @@ +# SummaryUnit + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :---------- | +| speaker_id | str | ✅ | | +| text | str | ✅ | | +| start | float | ✅ | | +| end | float | ✅ | | + + diff --git a/documentation/models/SuperviseCallSessionRequest.md b/documentation/models/SuperviseCallSessionRequest.md new file mode 100644 index 00000000..9c62bef9 --- /dev/null +++ b/documentation/models/SuperviseCallSessionRequest.md @@ -0,0 +1,34 @@ +# SuperviseCallSessionRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| mode | SuperviseCallSessionRequestMode | ✅ | Supervising mode | +| supervisor_device_id | str | ✅ | Internal identifier of a supervisor's device which will be used for call session monitoring | +| agent_extension_id | str | ❌ | Extension identifier of the user that will be monitored | +| auto_answer | bool | ❌ | Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call | +| media_sdp | SuperviseCallSessionRequestMediaSdp | ❌ | Specifies session description protocol setting | + +# SuperviseCallSessionRequestMode + +Supervising mode + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| LISTEN | str | ✅ | "Listen" | + +# SuperviseCallSessionRequestMediaSdp + +Specifies session description protocol setting + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| SENDONLY | str | ✅ | "sendOnly" | +| SENDRECV | str | ✅ | "sendRecv" | + + diff --git a/documentation/models/SuperviseCallSessionResponse.md b/documentation/models/SuperviseCallSessionResponse.md new file mode 100644 index 00000000..15529e3e --- /dev/null +++ b/documentation/models/SuperviseCallSessionResponse.md @@ -0,0 +1,29 @@ +# SuperviseCallSessionResponse + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| from\_ | PartyInfo | ❌ | | +| to | PartyInfo | ❌ | | +| direction | SuperviseCallSessionResponseDirection | ❌ | Direction of a call | +| id\_ | str | ❌ | Internal identifier of a party that monitors a call | +| account_id | str | ❌ | Internal identifier of an account that monitors a call | +| extension_id | str | ❌ | Internal identifier of an extension that monitors a call | +| muted | bool | ❌ | Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces | +| owner | OwnerInfo | ❌ | Deprecated. Information on a call owner | +| stand_alone | bool | ❌ | If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session | +| status | CallStatusInfo | ❌ | Status data of a call session | + +# SuperviseCallSessionResponseDirection + +Direction of a call + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| OUTBOUND | str | ✅ | "Outbound" | +| INBOUND | str | ✅ | "Inbound" | + + diff --git a/documentation/models/SwapDeviceRequest.md b/documentation/models/SwapDeviceRequest.md new file mode 100644 index 00000000..c35cd831 --- /dev/null +++ b/documentation/models/SwapDeviceRequest.md @@ -0,0 +1,11 @@ +# SwapDeviceRequest + +Swap device request + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------------------------------------------------- | +| target_device_id | str | ❌ | Internal identifier of a target device, to which the current one will be swapped | + + diff --git a/documentation/models/SwitchInfo.md b/documentation/models/SwitchInfo.md new file mode 100644 index 00000000..a4f394ab --- /dev/null +++ b/documentation/models/SwitchInfo.md @@ -0,0 +1,16 @@ +# SwitchInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------- | :------- | :------------------------------------------------------------------------------------ | +| uri | str | ❌ | Link to the network switch resource | +| id\_ | str | ❌ | Internal identifier of a network switch | +| chassis_id | str | ❌ | Unique identifier of a network switch | +| port | str | ❌ | Switch entity extension for better diversity. Should be used together with chassisId. | +| name | str | ❌ | Name of a network switch | +| site | SwitchSiteInfo | ❌ | | +| emergency_address | EmergencyAddressInfo | ❌ | | +| emergency_location | EmergencyLocationInfo | ❌ | Emergency response location information | + + diff --git a/documentation/models/SwitchSiteInfo.md b/documentation/models/SwitchSiteInfo.md new file mode 100644 index 00000000..1ce43846 --- /dev/null +++ b/documentation/models/SwitchSiteInfo.md @@ -0,0 +1,10 @@ +# SwitchSiteInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a site. The company identifier value is 'main-site' | +| name | str | ❌ | Name of a site | + + diff --git a/documentation/models/SwitchValidated.md b/documentation/models/SwitchValidated.md new file mode 100644 index 00000000..499fd680 --- /dev/null +++ b/documentation/models/SwitchValidated.md @@ -0,0 +1,24 @@ +# SwitchValidated + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a switch | +| chassis_id | str | ❌ | Unique identifier of a network switch | +| port | str | ❌ | Switch entity extension for better diversity. Should be used together with chassisId. | +| status | SwitchValidatedStatus | ❌ | Validation result status | +| errors | List[ValidationError] | ❌ | | + +# SwitchValidatedStatus + +Validation result status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | + + diff --git a/documentation/models/SwitchesList.md b/documentation/models/SwitchesList.md new file mode 100644 index 00000000..57d1a0fd --- /dev/null +++ b/documentation/models/SwitchesList.md @@ -0,0 +1,11 @@ +# SwitchesList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| records | List[SwitchInfo] | ❌ | Switches map | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/SyncAccountCallLogSyncType.md b/documentation/models/SyncAccountCallLogSyncType.md new file mode 100644 index 00000000..5dc43cf3 --- /dev/null +++ b/documentation/models/SyncAccountCallLogSyncType.md @@ -0,0 +1,12 @@ +# SyncAccountCallLogSyncType + +Type of call log synchronization request: full or incremental sync + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FSYNC | str | ✅ | "FSync" | +| ISYNC | str | ✅ | "ISync" | + + diff --git a/documentation/models/SyncAddressBookSyncType.md b/documentation/models/SyncAddressBookSyncType.md new file mode 100644 index 00000000..a9218501 --- /dev/null +++ b/documentation/models/SyncAddressBookSyncType.md @@ -0,0 +1,10 @@ +# SyncAddressBookSyncType + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FSYNC | str | ✅ | "FSync" | +| ISYNC | str | ✅ | "ISync" | + + diff --git a/documentation/models/SyncInfo.md b/documentation/models/SyncInfo.md new file mode 100644 index 00000000..39a6f2a5 --- /dev/null +++ b/documentation/models/SyncInfo.md @@ -0,0 +1,21 @@ +# SyncInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--------------- | :------- | :---------- | +| sync_type | SyncInfoSyncType | ❌ | | +| sync_token | str | ❌ | | +| sync_time | str | ❌ | | +| older_records_exist | bool | ❌ | | + +# SyncInfoSyncType + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FSYNC | str | ✅ | "FSync" | +| ISYNC | str | ✅ | "ISync" | + + diff --git a/documentation/models/SyncInfoMessages.md b/documentation/models/SyncInfoMessages.md new file mode 100644 index 00000000..5af915b2 --- /dev/null +++ b/documentation/models/SyncInfoMessages.md @@ -0,0 +1,14 @@ +# SyncInfoMessages + +Sync type, token and time + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :----------- | :------- | :--------------------------------------------------------------------------------------------------------- | +| sync_type | SyncTypeEnum | ❌ | Type of message synchronization request: - FSync -- full sync - ISync -- incremental sync | +| sync_token | str | ❌ | Synchronization token | +| sync_time | str | ❌ | Last synchronization date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z | +| older_records_exist | bool | ❌ | | + + diff --git a/documentation/models/SyncStatus.md b/documentation/models/SyncStatus.md new file mode 100644 index 00000000..fc28b952 --- /dev/null +++ b/documentation/models/SyncStatus.md @@ -0,0 +1,18 @@ +# SyncStatus + +Resulting status of emergency address synchronization. Returned +if `syncEmergencyAddress` parameter is set to `true` + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :------------------ | +| VERIFIED | str | ✅ | "Verified" | +| UPDATED | str | ✅ | "Updated" | +| DELETED | str | ✅ | "Deleted" | +| ACTIVATIONPROCESS | str | ✅ | "ActivationProcess" | +| NOTREQUIRED | str | ✅ | "NotRequired" | +| UNSUPPORTED | str | ✅ | "Unsupported" | +| FAILED | str | ✅ | "Failed" | + + diff --git a/documentation/models/SyncTypeEnum.md b/documentation/models/SyncTypeEnum.md new file mode 100644 index 00000000..35ae7271 --- /dev/null +++ b/documentation/models/SyncTypeEnum.md @@ -0,0 +1,15 @@ +# SyncTypeEnum + +Type of message synchronization request: + +- FSync -- full sync +- ISync -- incremental sync + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FSYNC | str | ✅ | "FSync" | +| ISYNC | str | ✅ | "ISync" | + + diff --git a/documentation/models/SystemUserContactInfo.md b/documentation/models/SystemUserContactInfo.md new file mode 100644 index 00000000..29d540bd --- /dev/null +++ b/documentation/models/SystemUserContactInfo.md @@ -0,0 +1,14 @@ +# SystemUserContactInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :-------------------------------------------------------------------------------------------- | +| first_name | str | ✅ | Given name | +| last_name | str | ✅ | Family name | +| email | str | ✅ | Contact email | +| contact_phone | str | ✅ | Phone number in e.164 format (with '+' prefix) | +| id\_ | str | ✅ | Internal identifier of System user extension | +| extension_number | str | ✅ | Short number of an extension. Actual max length depends on system length limit for extension. | + + diff --git a/documentation/models/TargetServicePlanInfo.md b/documentation/models/TargetServicePlanInfo.md new file mode 100644 index 00000000..703da9bf --- /dev/null +++ b/documentation/models/TargetServicePlanInfo.md @@ -0,0 +1,23 @@ +# TargetServicePlanInfo + +Information on account target service plan + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------------------- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a target service plan | +| name | str | ❌ | Name of a target service plan | +| edition | str | ❌ | Edition of a service plan | +| freemium_product_type | TargetServicePlanInfoFreemiumProductType | ❌ | | + +# TargetServicePlanInfoFreemiumProductType + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| FREYJA | str | ✅ | "Freyja" | +| PHOENIX | str | ✅ | "Phoenix" | + + diff --git a/documentation/models/TaskAttachment.md b/documentation/models/TaskAttachment.md new file mode 100644 index 00000000..abc98754 --- /dev/null +++ b/documentation/models/TaskAttachment.md @@ -0,0 +1,22 @@ +# TaskAttachment + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :------------------------------------------------------------------------ | +| id\_ | str | ❌ | File ID. | +| type\_ | TaskAttachmentType | ❌ | Possible value - File. Attachment type (currently, only File is possible) | +| name | str | ❌ | Name of the attached file (incl. extension name) | +| content_uri | str | ❌ | URI | + +# TaskAttachmentType + +Possible value - File. Attachment type (currently, only File is possible) + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| FILE | str | ✅ | "File" | + + diff --git a/documentation/models/TaskRecurrenceInfo.md b/documentation/models/TaskRecurrenceInfo.md new file mode 100644 index 00000000..d4602e1c --- /dev/null +++ b/documentation/models/TaskRecurrenceInfo.md @@ -0,0 +1,41 @@ +# TaskRecurrenceInfo + +Task information + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------- | :------- | :------------------------------------------------------------------------------------------------------ | +| schedule | TaskRecurrenceInfoSchedule | ❌ | Recurrence settings of a task. None for non-periodic tasks | +| ending_condition | TaskRecurrenceInfoEndingCondition | ❌ | Ending condition of a task | +| ending_after | int | ❌ | Count of iterations of periodic tasks | +| ending_on | str | ❌ | End date of a periodic task in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, UTC time zone | + +# TaskRecurrenceInfoSchedule + +Recurrence settings of a task. None for non-periodic tasks + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| NONE | str | ✅ | "None" | +| DAILY | str | ✅ | "Daily" | +| WEEKDAYS | str | ✅ | "Weekdays" | +| WEEKLY | str | ✅ | "Weekly" | +| MONTHLY | str | ✅ | "Monthly" | +| YEARLY | str | ✅ | "Yearly" | + +# TaskRecurrenceInfoEndingCondition + +Ending condition of a task + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| NONE | str | ✅ | "None" | +| COUNT | str | ✅ | "Count" | +| DATE | str | ✅ | "Date" | + + diff --git a/documentation/models/TaskResultInfo.md b/documentation/models/TaskResultInfo.md new file mode 100644 index 00000000..db393a71 --- /dev/null +++ b/documentation/models/TaskResultInfo.md @@ -0,0 +1,11 @@ +# TaskResultInfo + +Task detailed result. Returned for failed and completed tasks + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :----------------------------------------------------- | +| records | List[TaskResultRecord] | ❌ | Detailed task results by elements from initial request | + + diff --git a/documentation/models/TaskResultRecord.md b/documentation/models/TaskResultRecord.md new file mode 100644 index 00000000..d1e4bc93 --- /dev/null +++ b/documentation/models/TaskResultRecord.md @@ -0,0 +1,14 @@ +# TaskResultRecord + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of the created/updated element - wireless point or network switch | +| bssid | str | ❌ | Unique 48-bit identifier of the wireless access point complying with MAC address conventions. Returned only for 'Wireless Points Bulk Create' tasks | +| chassis_id | str | ❌ | Unique identifier of a network switch. Returned only for 'Switches Bulk Create' tasks | +| port | str | ❌ | Switch entity extension for better diversity. Should be used together with chassisId. | +| status | str | ❌ | Operation status | +| errors | List[TaskResultRecordErrorsInfo] | ❌ | | + + diff --git a/documentation/models/TaskResultRecordErrorsInfo.md b/documentation/models/TaskResultRecordErrorsInfo.md new file mode 100644 index 00000000..0b63beb2 --- /dev/null +++ b/documentation/models/TaskResultRecordErrorsInfo.md @@ -0,0 +1,12 @@ +# TaskResultRecordErrorsInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :---------- | +| error_code | str | ❌ | | +| message | str | ❌ | | +| parameter_name | str | ❌ | | +| description | str | ❌ | | + + diff --git a/documentation/models/TelephonyUserMeetingSettings.md b/documentation/models/TelephonyUserMeetingSettings.md new file mode 100644 index 00000000..522de9dd --- /dev/null +++ b/documentation/models/TelephonyUserMeetingSettings.md @@ -0,0 +1,11 @@ +# TelephonyUserMeetingSettings + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :-------------------------------- | :------- | :-------------------------------------------------------------------------- | +| third_party_audio | bool | ❌ | ThirdParty audio option | +| audio_conference_info | bool | ❌ | Users can join the meeting using the existing 3rd party audio configuration | +| global_dial_countries | List[GlobalDialInCountryResponse] | ❌ | | + + diff --git a/documentation/models/TemplateInfo.md b/documentation/models/TemplateInfo.md new file mode 100644 index 00000000..ff0ce557 --- /dev/null +++ b/documentation/models/TemplateInfo.md @@ -0,0 +1,11 @@ +# TemplateInfo + +Text message template information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| text | str | ✅ | Text of the message template. Maximum length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus limiting the maximum message length up to 500 symbols | + + diff --git a/documentation/models/TemporaryNumberInfo.md b/documentation/models/TemporaryNumberInfo.md new file mode 100644 index 00000000..f85a6517 --- /dev/null +++ b/documentation/models/TemporaryNumberInfo.md @@ -0,0 +1,12 @@ +# TemporaryNumberInfo + +Temporary phone number, if any. Returned for phone numbers in `Pending` porting status only + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Temporary phone number identifier | +| phone_number | str | ❌ | Temporary phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format | + + diff --git a/documentation/models/TimeInterval.md b/documentation/models/TimeInterval.md new file mode 100644 index 00000000..bb9f3f52 --- /dev/null +++ b/documentation/models/TimeInterval.md @@ -0,0 +1,10 @@ +# TimeInterval + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :------------------- | +| from\_ | str | ❌ | Time in format hh:mm | +| to | str | ❌ | Time in format hh:mm | + + diff --git a/documentation/models/TimeRange.md b/documentation/models/TimeRange.md new file mode 100644 index 00000000..44e4b00e --- /dev/null +++ b/documentation/models/TimeRange.md @@ -0,0 +1,12 @@ +# TimeRange + +Time range for the request + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| time_from | str | ✅ | The start date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z | +| time_to | str | ✅ | The end date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z | + + diff --git a/documentation/models/TimeSettings.md b/documentation/models/TimeSettings.md new file mode 100644 index 00000000..17f6855e --- /dev/null +++ b/documentation/models/TimeSettings.md @@ -0,0 +1,13 @@ +# TimeSettings + +Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| time_zone | str | ✅ | Name of the timezone that will be used for `includeDays` and `includeHours` filters and aggregation intervals. For example 'America/Los_Angeles', 'Europe/Zurich'. See also _[Time Zones](https://www.iana.org/time-zones)_. Value in this field doesn't affect interpretation of time in `timeRange`, as it already includes offset from UTC | +| time_range | TimeRange | ✅ | Time range for the request | +| advanced_time_settings | AdvancedTimeSettings | ❌ | Allows more granular control over time included in the report | + + diff --git a/documentation/models/TimeSpentFilter.md b/documentation/models/TimeSpentFilter.md new file mode 100644 index 00000000..b90a5815 --- /dev/null +++ b/documentation/models/TimeSpentFilter.md @@ -0,0 +1,12 @@ +# TimeSpentFilter + +Filtering of calls based on the time spent by specified mailbox(es) on call + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------- | +| min_seconds | int | ❌ | Minimum duration in seconds | +| max_seconds | int | ❌ | Maximum duration in seconds | + + diff --git a/documentation/models/TimelineRequest.md b/documentation/models/TimelineRequest.md new file mode 100644 index 00000000..f91c723f --- /dev/null +++ b/documentation/models/TimelineRequest.md @@ -0,0 +1,12 @@ +# TimelineRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :---------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grouping | Grouping | ✅ | This field specifies the dimensions by which the response should be grouped and specific keys to narrow the response. See also [Call Aggregate reports](https://developers.ringcentral.com/guide/analytics/aggregate) or [Call Timeline reports](https://developers.ringcentral.com/guide/analytics/timeline) pages in the developer guide for more information | +| time_settings | TimeSettings | ✅ | Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive | +| response_options | TimelineResponseOptions | ✅ | Counters and timers options for calls breakdown | +| call_filters | CallFilters | ❌ | Optional filters that limit the scope of calls (joined via AND) | + + diff --git a/documentation/models/TimelineResponse.md b/documentation/models/TimelineResponse.md new file mode 100644 index 00000000..9ba50a05 --- /dev/null +++ b/documentation/models/TimelineResponse.md @@ -0,0 +1,10 @@ +# TimelineResponse + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------- | :------- | :---------------------------------------------------------------------------------------------------------- | +| paging | ResponsePaging | ✅ | Paging information | +| data | TimelineResponseData | ✅ | A list of time-value points of call data as per the grouping and filtering options specified in the request | + + diff --git a/documentation/models/TimelineResponseData.md b/documentation/models/TimelineResponseData.md new file mode 100644 index 00000000..f7ceb205 --- /dev/null +++ b/documentation/models/TimelineResponseData.md @@ -0,0 +1,12 @@ +# TimelineResponseData + +A list of time-value points of call data as per the grouping and filtering options specified in the request + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------------------- | :------- | :----------------------------------------------------------------------------------- | +| grouped_by | GroupingOptions | ✅ | The selected grouping option | +| records | List[TimelineResponseRecord] | ❌ | List of call data as per the grouping and filtering options specified in the request | + + diff --git a/documentation/models/TimelineResponseOptions.md b/documentation/models/TimelineResponseOptions.md new file mode 100644 index 00000000..11dc5e17 --- /dev/null +++ b/documentation/models/TimelineResponseOptions.md @@ -0,0 +1,12 @@ +# TimelineResponseOptions + +Counters and timers options for calls breakdown + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------------------------ | :------- | :------------------------------------------------- | +| counters | TimelineResponseOptionsCounters | ❌ | Options for selecting breakdown for calls count | +| timers | TimelineResponseOptionsTimers | ❌ | Options for selecting breakdown for calls duration | + + diff --git a/documentation/models/TimelineResponseOptionsCounters.md b/documentation/models/TimelineResponseOptionsCounters.md new file mode 100644 index 00000000..dd3961f5 --- /dev/null +++ b/documentation/models/TimelineResponseOptionsCounters.md @@ -0,0 +1,21 @@ +# TimelineResponseOptionsCounters + +Options for selecting breakdown for calls count + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| all_calls | bool | ❌ | Include data for total calls count | +| calls_by_direction | bool | ❌ | Include breakdown of calls count by direction (Inbound, Outbound) | +| calls_by_origin | bool | ❌ | Include breakdown of calls count by origin (Internal, External) | +| calls_by_response | bool | ❌ | Include breakdown of calls count by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments | bool | ❌ | Include breakdown of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_by_result | bool | ❌ | Include breakdown of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_by_company_hours | bool | ❌ | Include breakdown of calls count by company hours (BusinessHours, AfterHours) | +| calls_by_queue_sla | bool | ❌ | Include breakdown of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping | +| calls_by_actions | bool | ❌ | Include breakdown of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) | +| calls_by_type | bool | ❌ | Include breakdown of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | +| queue_opportunities | bool | ❌ | Include breakdown of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External) | + + diff --git a/documentation/models/TimelineResponseOptionsTimers.md b/documentation/models/TimelineResponseOptionsTimers.md new file mode 100644 index 00000000..ec03db34 --- /dev/null +++ b/documentation/models/TimelineResponseOptionsTimers.md @@ -0,0 +1,19 @@ +# TimelineResponseOptionsTimers + +Options for selecting breakdown for calls duration + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| all_calls_duration | bool | ❌ | Include data for all calls duration | +| calls_duration_by_direction | bool | ❌ | Include breakdown of calls duration by direction (Inbound, Outbound) | +| calls_duration_by_origin | bool | ❌ | Include breakdown of calls duration by origin (Internal, External) | +| calls_duration_by_response | bool | ❌ | Include breakdown of calls duration by response (Answered, NotAnswered, Connected, NotConnected) | +| calls_segments_duration | bool | ❌ | Include breakdown of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) | +| calls_duration_by_result | bool | ❌ | Include breakdown of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) | +| calls_duration_by_company_hours | bool | ❌ | Include breakdown of calls duration by company hours (BusinessHours, AfterHours) | +| calls_duration_by_queue_sla | bool | ❌ | Include breakdown of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping | +| calls_duration_by_type | bool | ❌ | Include breakdown of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) | + + diff --git a/documentation/models/TimelineResponsePoint.md b/documentation/models/TimelineResponsePoint.md new file mode 100644 index 00000000..581a1c6c --- /dev/null +++ b/documentation/models/TimelineResponsePoint.md @@ -0,0 +1,11 @@ +# TimelineResponsePoint + +**Properties** + +| Name | Type | Required | Description | +| :------- | :------------ | :------- | :------------------------------------------ | +| time | str | ✅ | Time point in RFC 3339 format | +| timers | CallsTimers | ❌ | Call length data for the specified grouping | +| counters | CallsCounters | ❌ | Call volume data for the specified grouping | + + diff --git a/documentation/models/TimelineResponseRecord.md b/documentation/models/TimelineResponseRecord.md new file mode 100644 index 00000000..5655b3ef --- /dev/null +++ b/documentation/models/TimelineResponseRecord.md @@ -0,0 +1,11 @@ +# TimelineResponseRecord + +**Properties** + +| Name | Type | Required | Description | +| :----- | :-------------------------- | :------- | :-------------------------------------------- | +| key | str | ✅ | Grouping key | +| info | KeyInfo | ❌ | Additional info about the key | +| points | List[TimelineResponsePoint] | ❌ | List of requested call data time-value points | + + diff --git a/documentation/models/TimezoneInfo.md b/documentation/models/TimezoneInfo.md new file mode 100644 index 00000000..a1efae8e --- /dev/null +++ b/documentation/models/TimezoneInfo.md @@ -0,0 +1,15 @@ +# TimezoneInfo + +Extension timezone information + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a timezone | +| uri | str | ❌ | Canonical URI of a timezone | +| name | str | ❌ | Short name of a timezone | +| description | str | ❌ | Meaningful description of the timezone | +| bias | str | ❌ | | + + diff --git a/documentation/models/TmAddFileRequest.md b/documentation/models/TmAddFileRequest.md new file mode 100644 index 00000000..f22bb4b5 --- /dev/null +++ b/documentation/models/TmAddFileRequest.md @@ -0,0 +1,11 @@ +# TmAddFileRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------------------------- | +| id\_ | str | ✅ | Internal identifier of a file | +| content_uri | str | ✅ | Link to binary content | +| name | str | ❌ | Name of a file | + + diff --git a/documentation/models/TmAddTeamMembersRequest.md b/documentation/models/TmAddTeamMembersRequest.md new file mode 100644 index 00000000..690d7f6e --- /dev/null +++ b/documentation/models/TmAddTeamMembersRequest.md @@ -0,0 +1,20 @@ +# TmAddTeamMembersRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------------------- | :------- | :------------------------------ | +| members | List[TmAddTeamMembersRequestMembers] | ✅ | Identifier(s) of chat member(s) | + +# TmAddTeamMembersRequestMembers + +Conversation is opened + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a person | +| email | str | ❌ | Email of a person | + + diff --git a/documentation/models/TmAttachmentAuthorInfo.md b/documentation/models/TmAttachmentAuthorInfo.md new file mode 100644 index 00000000..e549fb1b --- /dev/null +++ b/documentation/models/TmAttachmentAuthorInfo.md @@ -0,0 +1,11 @@ +# TmAttachmentAuthorInfo + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :------------------------------------------------------------------------ | +| name | str | ❌ | Name of a message author | +| uri | str | ❌ | Link to an author's name | +| icon_uri | str | ❌ | Link to an image displayed to the left of an author's name; sized 82x82px | + + diff --git a/documentation/models/TmAttachmentFieldsInfo.md b/documentation/models/TmAttachmentFieldsInfo.md new file mode 100644 index 00000000..6528f241 --- /dev/null +++ b/documentation/models/TmAttachmentFieldsInfo.md @@ -0,0 +1,22 @@ +# TmAttachmentFieldsInfo + +**Properties** + +| Name | Type | Required | Description | +| :---- | :---- | :------- | :----------------------------------------------- | +| title | str | ❌ | Title of an individual field | +| value | str | ❌ | Value of an individual field (supports Markdown) | +| style | Style | ❌ | Style of width span applied to a field | + +# Style + +Style of width span applied to a field + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| SHORT | str | ✅ | "Short" | +| LONG | str | ✅ | "Long" | + + diff --git a/documentation/models/TmAttachmentFootnoteInfo.md b/documentation/models/TmAttachmentFootnoteInfo.md new file mode 100644 index 00000000..0cba2b43 --- /dev/null +++ b/documentation/models/TmAttachmentFootnoteInfo.md @@ -0,0 +1,11 @@ +# TmAttachmentFootnoteInfo + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :--------------------------------------------------------------- | +| text | str | ❌ | Text of a footer | +| icon_uri | str | ❌ | Link to an icon displayed to the left of a footer; sized 32x32px | +| time | str | ❌ | Message creation datetime in ISO 8601 format including timezone | + + diff --git a/documentation/models/TmAttachmentInfo.md b/documentation/models/TmAttachmentInfo.md new file mode 100644 index 00000000..3a40ff6c --- /dev/null +++ b/documentation/models/TmAttachmentInfo.md @@ -0,0 +1,23 @@ +# TmAttachmentInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :------------------- | :------- | :----------------------------------- | +| id\_ | str | ❌ | Internal identifier of an attachment | +| type\_ | TmAttachmentInfoType | ❌ | Type of an attachment | + +# TmAttachmentInfoType + +Type of an attachment + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FILE | str | ✅ | "File" | +| NOTE | str | ✅ | "Note" | +| EVENT | str | ✅ | "Event" | +| CARD | str | ✅ | "Card" | + + diff --git a/documentation/models/TmChatInfo.md b/documentation/models/TmChatInfo.md new file mode 100644 index 00000000..c457584e --- /dev/null +++ b/documentation/models/TmChatInfo.md @@ -0,0 +1,42 @@ +# TmChatInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------- | :------- | :-------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a chat | +| type\_ | TmChatInfoType | ❌ | Type of chat | +| public | bool | ❌ | For 'Team' chat type only. Team access level. | +| name | str | ❌ | For 'Team','Everyone' chats types only. Chat name. | +| description | str | ❌ | For 'Team','Everyone' chats types only. Chat description. | +| status | TmChatInfoStatus | ❌ | For 'Team' chat type only. Team status. | +| creation_time | str | ❌ | Chat creation datetime in ISO 8601 format | +| last_modified_time | str | ❌ | Chat last change datetime in ISO 8601 format | +| members | List[TmChatMemberInfo] | ❌ | | + +# TmChatInfoType + +Type of chat + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| EVERYONE | str | ✅ | "Everyone" | +| TEAM | str | ✅ | "Team" | +| GROUP | str | ✅ | "Group" | +| DIRECT | str | ✅ | "Direct" | +| PERSONAL | str | ✅ | "Personal" | + +# TmChatInfoStatus + +For 'Team' chat type only. Team status. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| ARCHIVED | str | ✅ | "Archived" | + + diff --git a/documentation/models/TmChatList.md b/documentation/models/TmChatList.md new file mode 100644 index 00000000..5a6395d5 --- /dev/null +++ b/documentation/models/TmChatList.md @@ -0,0 +1,10 @@ +# TmChatList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :------------ | +| records | List[TmChatInfo] | ✅ | List of chats | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmChatListWithoutNavigation.md b/documentation/models/TmChatListWithoutNavigation.md new file mode 100644 index 00000000..27b6ef98 --- /dev/null +++ b/documentation/models/TmChatListWithoutNavigation.md @@ -0,0 +1,9 @@ +# TmChatListWithoutNavigation + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------- | :------- | :------------ | +| records | List[TmChatInfo] | ✅ | List of chats | + + diff --git a/documentation/models/TmChatMemberInfo.md b/documentation/models/TmChatMemberInfo.md new file mode 100644 index 00000000..2d2a485c --- /dev/null +++ b/documentation/models/TmChatMemberInfo.md @@ -0,0 +1,9 @@ +# TmChatMemberInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a user | + + diff --git a/documentation/models/TmCompanyInfo.md b/documentation/models/TmCompanyInfo.md new file mode 100644 index 00000000..28f6f055 --- /dev/null +++ b/documentation/models/TmCompanyInfo.md @@ -0,0 +1,13 @@ +# TmCompanyInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :---------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a company (RingCentral account ID) | +| creation_time | str | ✅ | Datetime of creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) | +| last_modified_time | str | ✅ | Datetime of last modification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) | +| name | str | ❌ | Name of a company | +| domain | str | ❌ | Domain name of a company | + + diff --git a/documentation/models/TmCompleteTaskRequest.md b/documentation/models/TmCompleteTaskRequest.md new file mode 100644 index 00000000..b6b216f5 --- /dev/null +++ b/documentation/models/TmCompleteTaskRequest.md @@ -0,0 +1,30 @@ +# TmCompleteTaskRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :----------------------------------- | :------- | :------------------ | +| status | TmCompleteTaskRequestStatus | ❌ | Completeness status | +| assignees | List[TmCompleteTaskRequestAssignees] | ❌ | | +| completeness_percentage | int | ❌ | | + +# TmCompleteTaskRequestStatus + +Completeness status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| INCOMPLETE | str | ✅ | "Incomplete" | +| COMPLETE | str | ✅ | "Complete" | + +# TmCompleteTaskRequestAssignees + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------- | +| id\_ | str | ❌ | Internal identifier of an assignee | + + diff --git a/documentation/models/TmConversationInfo.md b/documentation/models/TmConversationInfo.md new file mode 100644 index 00000000..ad787460 --- /dev/null +++ b/documentation/models/TmConversationInfo.md @@ -0,0 +1,25 @@ +# TmConversationInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------------- | :------- | :--------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a conversation | +| type\_ | TmConversationInfoType | ❌ | Type of conversation | +| creation_time | str | ❌ | Conversation creation datetime in ISO 8601 format | +| last_modified_time | str | ❌ | Conversation last change datetime in ISO 8601 format | +| members | List[TmChatMemberInfo] | ❌ | | + +# TmConversationInfoType + +Type of conversation + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| DIRECT | str | ✅ | "Direct" | +| PERSONAL | str | ✅ | "Personal" | +| GROUP | str | ✅ | "Group" | + + diff --git a/documentation/models/TmConversationList.md b/documentation/models/TmConversationList.md new file mode 100644 index 00000000..f2292c24 --- /dev/null +++ b/documentation/models/TmConversationList.md @@ -0,0 +1,10 @@ +# TmConversationList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :----------------------- | :------- | :-------------------- | +| records | List[TmConversationInfo] | ✅ | List of conversations | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmCreateEventRequest.md b/documentation/models/TmCreateEventRequest.md new file mode 100644 index 00000000..32d4f278 --- /dev/null +++ b/documentation/models/TmCreateEventRequest.md @@ -0,0 +1,35 @@ +# TmCreateEventRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------ | :------- | :---------------------------------------------------------------------------- | +| title | str | ✅ | Event title | +| start_time | str | ✅ | Datetime of starting an event | +| end_time | str | ✅ | Datetime of ending an event | +| id\_ | str | ❌ | Internal identifier of an event | +| creator_id | str | ❌ | Internal identifier of a person created an event | +| all_day | bool | ❌ | Indicates whether event has some specific time slot or lasts for whole day(s) | +| recurrence | EventRecurrenceInfo | ❌ | | +| color | TmCreateEventRequestColor | ❌ | Color of Event title (including its presentation in Calendar) | +| location | str | ❌ | Event location | +| description | str | ❌ | Event details | + +# TmCreateEventRequestColor + +Color of Event title (including its presentation in Calendar) + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmCreateNoteRequest.md b/documentation/models/TmCreateNoteRequest.md new file mode 100644 index 00000000..bb13202e --- /dev/null +++ b/documentation/models/TmCreateNoteRequest.md @@ -0,0 +1,10 @@ +# TmCreateNoteRequest + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------------------------------------------------------------- | +| title | str | ✅ | Title of a note. Max allowed length is 250 characters | +| body | str | ❌ | Contents of a note; HTML markup text. Max allowed length is 1048576 characters (1 Mb). | + + diff --git a/documentation/models/TmCreatePostRequest.md b/documentation/models/TmCreatePostRequest.md new file mode 100644 index 00000000..7989dbd5 --- /dev/null +++ b/documentation/models/TmCreatePostRequest.md @@ -0,0 +1,12 @@ +# TmCreatePostRequest + +Post data. At least one attribute should be provided (text or attachments) + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--------------------- | :------- | :-------------------------------------------------------------------------------------------------- | +| text | str | ❌ | Text of a post. Maximum length is 10000 symbols. Mentions can be added in .md format `![:Type](id)` | +| attachments | List[TmAttachmentInfo] | ❌ | Identifier(s) of attachments. Maximum number of attachments is 25 | + + diff --git a/documentation/models/TmCreateTaskRequest.md b/documentation/models/TmCreateTaskRequest.md new file mode 100644 index 00000000..465c06d9 --- /dev/null +++ b/documentation/models/TmCreateTaskRequest.md @@ -0,0 +1,51 @@ +# TmCreateTaskRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--------------------------------------- | :------- | :----------------------------------------------------------------------- | +| subject | str | ✅ | Task name/subject. Max allowed length is 250 characters | +| assignees | List[TmCreateTaskRequestAssignees] | ✅ | | +| completeness_condition | TmCreateTaskRequestCompletenessCondition | ❌ | | +| start_date | str | ❌ | Task start date in UTC time zone. | +| due_date | str | ❌ | Task due date/time in UTC time zone. | +| color | TmCreateTaskRequestColor | ❌ | | +| section | str | ❌ | Task section to group / search by. Max allowed length is 100 characters. | +| description | str | ❌ | Task details. Max allowed length is 102400 characters (100kB). | +| recurrence | TaskRecurrenceInfo | ❌ | Task information | +| attachments | List[TmAttachmentInfo] | ❌ | | + +# TmCreateTaskRequestAssignees + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------- | +| id\_ | str | ❌ | Internal identifier of an assignee | + +# TmCreateTaskRequestCompletenessCondition + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| SIMPLE | str | ✅ | "Simple" | +| ALLASSIGNEES | str | ✅ | "AllAssignees" | +| PERCENTAGE | str | ✅ | "Percentage" | + +# TmCreateTaskRequestColor + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmCreateTeamRequest.md b/documentation/models/TmCreateTeamRequest.md new file mode 100644 index 00000000..946df27d --- /dev/null +++ b/documentation/models/TmCreateTeamRequest.md @@ -0,0 +1,21 @@ +# TmCreateTeamRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------------------- | :------- | :----------------------------- | +| name | str | ✅ | Team name. | +| public | bool | ❌ | Team access level. | +| description | str | ❌ | Team description. | +| members | List[TmCreateTeamRequestMembers] | ❌ | Identifier(s) of team members. | + +# TmCreateTeamRequestMembers + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a person | +| email | str | ❌ | Email of a person | + + diff --git a/documentation/models/TmCreatorInfo.md b/documentation/models/TmCreatorInfo.md new file mode 100644 index 00000000..36d231d7 --- /dev/null +++ b/documentation/models/TmCreatorInfo.md @@ -0,0 +1,11 @@ +# TmCreatorInfo + +Note creator information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a user who created a note/task | + + diff --git a/documentation/models/TmEventInfo.md b/documentation/models/TmEventInfo.md new file mode 100644 index 00000000..f3eaae7d --- /dev/null +++ b/documentation/models/TmEventInfo.md @@ -0,0 +1,35 @@ +# TmEventInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------ | :------- | :----------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an event | +| creator_id | str | ❌ | Internal identifier of a person created an event | +| title | str | ❌ | Event title | +| start_time | str | ❌ | Datetime of starting an event | +| end_time | str | ❌ | Datetime of ending an event | +| all_day | bool | ❌ | Indicates whether an event has some specific time slot or lasts for the whole day(s) | +| recurrence | EventRecurrenceInfo | ❌ | | +| color | TmEventInfoColor | ❌ | Color of Event title (including its presentation in Calendar) | +| location | str | ❌ | Event location | +| description | str | ❌ | Event details | + +# TmEventInfoColor + +Color of Event title (including its presentation in Calendar) + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmEventList.md b/documentation/models/TmEventList.md new file mode 100644 index 00000000..6861214e --- /dev/null +++ b/documentation/models/TmEventList.md @@ -0,0 +1,10 @@ +# TmEventList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------- | :------- | :----------------------------------------- | +| records | List[TmEventInfo] | ❌ | List of events created by the current user | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmMentionsInfo.md b/documentation/models/TmMentionsInfo.md new file mode 100644 index 00000000..7f0ccacc --- /dev/null +++ b/documentation/models/TmMentionsInfo.md @@ -0,0 +1,28 @@ +# TmMentionsInfo + +**Properties** + +| Name | Type | Required | Description | +| :----- | :----------------- | :------- | :---------------------------- | +| id\_ | str | ❌ | Internal identifier of a user | +| type\_ | TmMentionsInfoType | ❌ | Type of mention | +| name | str | ❌ | Name of a user | + +# TmMentionsInfoType + +Type of mention + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| PERSON | str | ✅ | "Person" | +| TEAM | str | ✅ | "Team" | +| FILE | str | ✅ | "File" | +| LINK | str | ✅ | "Link" | +| EVENT | str | ✅ | "Event" | +| TASK | str | ✅ | "Task" | +| NOTE | str | ✅ | "Note" | +| CARD | str | ✅ | "Card" | + + diff --git a/documentation/models/TmMessageAttachmentInfo.md b/documentation/models/TmMessageAttachmentInfo.md new file mode 100644 index 00000000..e7a38032 --- /dev/null +++ b/documentation/models/TmMessageAttachmentInfo.md @@ -0,0 +1,58 @@ +# TmMessageAttachmentInfo + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an attachment | +| type\_ | TmMessageAttachmentInfoType | ❌ | Type of an attachment | +| fallback | str | ❌ | A string of default text that will be rendered in the case that the client does not support Interactive Messages | +| intro | str | ❌ | A pretext to the message | +| author | TmAttachmentAuthorInfo | ❌ | | +| title | str | ❌ | Message title | +| text | str | ❌ | A large string field (up to 1000 chars) to be displayed as the body of a message (Supports GlipDown) | +| image_uri | str | ❌ | Link to an image displayed at the bottom of a message | +| thumbnail_uri | str | ❌ | Link to an image preview displayed to the right of a message (82x82) | +| fields | List[TmAttachmentFieldsInfo] | ❌ | Information on navigation | +| footnote | TmAttachmentFootnoteInfo | ❌ | | +| creator_id | str | ❌ | Internal identifier of a person created an event | +| start_time | str | ❌ | Datetime of starting an event | +| end_time | str | ❌ | Datetime of ending an event | +| all_day | bool | ❌ | Indicates whether an event has some specific time slot or lasts for the whole day(s) | +| recurrence | EventRecurrenceInfo | ❌ | | +| color | TmMessageAttachmentInfoColor | ❌ | Color of Event title, including its presentation in Calendar; or the color of the side border of an interactive message of a Card | +| location | str | ❌ | Event location | +| description | str | ❌ | Event details | + +# TmMessageAttachmentInfoType + +Type of an attachment + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| CARD | str | ✅ | "Card" | +| EVENT | str | ✅ | "Event" | +| FILE | str | ✅ | "File" | +| NOTE | str | ✅ | "Note" | +| TASK | str | ✅ | "Task" | + +# TmMessageAttachmentInfoColor + +Color of Event title, including its presentation in Calendar; or the color of the side border of an interactive message of a Card + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmNavigationInfo.md b/documentation/models/TmNavigationInfo.md new file mode 100644 index 00000000..90acfd10 --- /dev/null +++ b/documentation/models/TmNavigationInfo.md @@ -0,0 +1,10 @@ +# TmNavigationInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| prev_page_token | str | ❌ | Previous page token. To get previous page, user should pass one of returned token in next request and, in turn, required page will be returned with new tokens | +| next_page_token | str | ❌ | Next page token. To get next page, user should pass one of returned token in next request and, in turn, required page will be returned with new tokens | + + diff --git a/documentation/models/TmNoteInfo.md b/documentation/models/TmNoteInfo.md new file mode 100644 index 00000000..726c7257 --- /dev/null +++ b/documentation/models/TmNoteInfo.md @@ -0,0 +1,38 @@ +# TmNoteInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------- | :------- | :---------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a note | +| title | str | ❌ | Title of a note | +| chat_ids | List[str] | ❌ | Internal identifiers of the chat(s) where the note is posted or shared. | +| preview | str | ❌ | Preview of a note (first 150 characters of a body) | +| creator | TmCreatorInfo | ❌ | Note creator information | +| last_modified_by | LastModifiedByInfo | ❌ | Note last modification information | +| locked_by | LockedByInfo | ❌ | Returned for the note being edited (locked) at the current moment. Information on the user editing the note | +| status | TmNoteInfoStatus | ❌ | Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' | +| creation_time | str | ❌ | Creation time | +| last_modified_time | str | ❌ | Datetime of the note last update | +| type\_ | TmNoteInfoType | ❌ | | + +# TmNoteInfoStatus + +Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| DRAFT | str | ✅ | "Draft" | + +# TmNoteInfoType + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| NOTE | str | ✅ | "Note" | + + diff --git a/documentation/models/TmNoteList.md b/documentation/models/TmNoteList.md new file mode 100644 index 00000000..da2a3320 --- /dev/null +++ b/documentation/models/TmNoteList.md @@ -0,0 +1,10 @@ +# TmNoteList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :---------- | +| records | List[TmNoteInfo] | ❌ | | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmNoteWithBodyInfo.md b/documentation/models/TmNoteWithBodyInfo.md new file mode 100644 index 00000000..5c5391cb --- /dev/null +++ b/documentation/models/TmNoteWithBodyInfo.md @@ -0,0 +1,39 @@ +# TmNoteWithBodyInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :----------------------- | :------- | :---------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a note | +| title | str | ❌ | Title of a note | +| chat_ids | List[str] | ❌ | Internal identifiers of the chat(s) where the note is posted or shared. | +| preview | str | ❌ | Preview of a note (first 150 characters of a body) | +| creator | TmCreatorInfo | ❌ | Note creator information | +| last_modified_by | LastModifiedByInfo | ❌ | Note last modification information | +| locked_by | LockedByInfo | ❌ | Returned for the note being edited (locked) at the current moment. Information on the user editing the note | +| status | TmNoteWithBodyInfoStatus | ❌ | Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' | +| creation_time | str | ❌ | Creation time | +| last_modified_time | str | ❌ | Datetime of the note last update | +| type\_ | TmNoteWithBodyInfoType | ❌ | | +| body | str | ❌ | Text of a note | + +# TmNoteWithBodyInfoStatus + +Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active' + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| DRAFT | str | ✅ | "Draft" | + +# TmNoteWithBodyInfoType + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| NOTE | str | ✅ | "Note" | + + diff --git a/documentation/models/TmPersonInfo.md b/documentation/models/TmPersonInfo.md new file mode 100644 index 00000000..9bbc8cf3 --- /dev/null +++ b/documentation/models/TmPersonInfo.md @@ -0,0 +1,16 @@ +# TmPersonInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :----------------------------------------------------------------------------------------- | +| id\_ | str | ✅ | Internal identifier of a user | +| first_name | str | ❌ | First name of a user | +| last_name | str | ❌ | Last name of a user | +| email | str | ❌ | Email of a user | +| avatar | str | ❌ | Photo of a user | +| company_id | str | ❌ | Internal identifier of a company | +| creation_time | str | ❌ | Time of creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| last_modified_time | str | ❌ | Time of the last modification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | + + diff --git a/documentation/models/TmPostInfo.md b/documentation/models/TmPostInfo.md new file mode 100644 index 00000000..e20b67b2 --- /dev/null +++ b/documentation/models/TmPostInfo.md @@ -0,0 +1,34 @@ +# TmPostInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :---------------------------- | :------- | :------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a post | +| group_id | str | ❌ | Internal identifier of a group a post belongs to | +| type\_ | TmPostInfoType | ❌ | Type of post | +| text | str | ❌ | For 'TextMessage' post type only. Text of a message | +| creator_id | str | ❌ | Internal identifier of a user - author of a post | +| added_person_ids | List[str] | ❌ | For 'PersonsAdded' post type only. Identifiers of persons added to a group | +| creation_time | str | ❌ | Post creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| last_modified_time | str | ❌ | Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| attachments | List[TmMessageAttachmentInfo] | ❌ | List of posted attachments | +| mentions | List[TmMentionsInfo] | ❌ | | +| activity | str | ❌ | Label of activity type | +| title | str | ❌ | Title of a message. (Can be set for bot's messages only) | +| icon_uri | str | ❌ | Link to an image used as an icon for this message | +| icon_emoji | str | ❌ | Emoji used as an icon for this message | + +# TmPostInfoType + +Type of post + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| TEXTMESSAGE | str | ✅ | "TextMessage" | +| PERSONJOINED | str | ✅ | "PersonJoined" | +| PERSONSADDED | str | ✅ | "PersonsAdded" | + + diff --git a/documentation/models/TmPostsList.md b/documentation/models/TmPostsList.md new file mode 100644 index 00000000..90a9a043 --- /dev/null +++ b/documentation/models/TmPostsList.md @@ -0,0 +1,10 @@ +# TmPostsList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :------------ | +| records | List[TmPostInfo] | ✅ | List of posts | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmRemoveTeamMembersRequest.md b/documentation/models/TmRemoveTeamMembersRequest.md new file mode 100644 index 00000000..f50084a1 --- /dev/null +++ b/documentation/models/TmRemoveTeamMembersRequest.md @@ -0,0 +1,17 @@ +# TmRemoveTeamMembersRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------------------------- | :------- | :----------------------------- | +| members | List[TmRemoveTeamMembersRequestMembers] | ✅ | Identifier(s) of chat members. | + +# TmRemoveTeamMembersRequestMembers + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------ | +| id\_ | str | ❌ | Internal identifier of a person | + + diff --git a/documentation/models/TmTaskInfo.md b/documentation/models/TmTaskInfo.md new file mode 100644 index 00000000..8971f04b --- /dev/null +++ b/documentation/models/TmTaskInfo.md @@ -0,0 +1,105 @@ +# TmTaskInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a task | +| creation_time | str | ❌ | Task creation date/time in UTC time zone | +| last_modified_time | str | ❌ | Task the last modified time in UTC time zone | +| type\_ | TmTaskInfoType | ❌ | Task type | +| creator | Creator | ❌ | | +| chat_ids | List[str] | ❌ | Internal identifiers of the chats where the task is posted or shared | +| status | TmTaskInfoStatus | ❌ | Task execution status | +| subject | str | ❌ | Task name/subject | +| assignees | List[TmTaskInfoAssignees] | ❌ | Task name/subject | +| completeness_condition | TmTaskInfoCompletenessCondition | ❌ | How the task completeness should be determined | +| completeness_percentage | int | ❌ | Current completeness percentage of the task with the specified percentage completeness condition | +| start_date | str | ❌ | Task start date | +| due_date | str | ❌ | Task due date/time | +| color | TmTaskInfoColor | ❌ | Font color of a post with the current task | +| section | str | ❌ | Task section to group / search by | +| description | str | ❌ | Task details | +| recurrence | TaskRecurrenceInfo | ❌ | Task information | +| attachments | List[TaskAttachment] | ❌ | | + +# TmTaskInfoType + +Task type + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| TASK | str | ✅ | "Task" | + +# Creator + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a task creator | + +# TmTaskInfoStatus + +Task execution status + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| PENDING | str | ✅ | "Pending" | +| INPROGRESS | str | ✅ | "InProgress" | +| COMPLETED | str | ✅ | "Completed" | + +# TmTaskInfoAssignees + +**Properties** + +| Name | Type | Required | Description | +| :----- | :-------------- | :------- | :--------------------------------- | +| id\_ | str | ❌ | Internal identifier of an assignee | +| status | AssigneesStatus | ❌ | Task execution status by assignee | + +# AssigneesStatus + +Task execution status by assignee + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| PENDING | str | ✅ | "Pending" | +| COMPLETED | str | ✅ | "Completed" | + +# TmTaskInfoCompletenessCondition + +How the task completeness should be determined + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| SIMPLE | str | ✅ | "Simple" | +| ALLASSIGNEES | str | ✅ | "AllAssignees" | +| PERCENTAGE | str | ✅ | "Percentage" | + +# TmTaskInfoColor + +Font color of a post with the current task + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmTaskList.md b/documentation/models/TmTaskList.md new file mode 100644 index 00000000..80072d2d --- /dev/null +++ b/documentation/models/TmTaskList.md @@ -0,0 +1,10 @@ +# TmTaskList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :---------- | +| records | List[TmTaskInfo] | ❌ | | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmTeamInfo.md b/documentation/models/TmTeamInfo.md new file mode 100644 index 00000000..79512108 --- /dev/null +++ b/documentation/models/TmTeamInfo.md @@ -0,0 +1,37 @@ +# TmTeamInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--------------- | :------- | :------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a team | +| type\_ | TmTeamInfoType | ❌ | Type of chat | +| public | bool | ❌ | Team access level | +| name | str | ❌ | Team name | +| description | str | ❌ | Team description | +| status | TmTeamInfoStatus | ❌ | Team status | +| creation_time | str | ❌ | Team creation datetime in ISO 8601 format | +| last_modified_time | str | ❌ | Team last change datetime in ISO 8601 format | + +# TmTeamInfoType + +Type of chat + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| TEAM | str | ✅ | "Team" | + +# TmTeamInfoStatus + +Team status + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| ARCHIVED | str | ✅ | "Archived" | + + diff --git a/documentation/models/TmTeamList.md b/documentation/models/TmTeamList.md new file mode 100644 index 00000000..f9ddd446 --- /dev/null +++ b/documentation/models/TmTeamList.md @@ -0,0 +1,10 @@ +# TmTeamList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--------------- | :------- | :------------ | +| records | List[TmTeamInfo] | ✅ | List of teams | +| navigation | TmNavigationInfo | ❌ | | + + diff --git a/documentation/models/TmUpdatePostRequest.md b/documentation/models/TmUpdatePostRequest.md new file mode 100644 index 00000000..8ff15ab2 --- /dev/null +++ b/documentation/models/TmUpdatePostRequest.md @@ -0,0 +1,9 @@ +# TmUpdatePostRequest + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| text | str | ❌ | Post text. | + + diff --git a/documentation/models/TmUpdateTaskRequest.md b/documentation/models/TmUpdateTaskRequest.md new file mode 100644 index 00000000..7ef548ef --- /dev/null +++ b/documentation/models/TmUpdateTaskRequest.md @@ -0,0 +1,51 @@ +# TmUpdateTaskRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--------------------------------------- | :------- | :----------------------------------------------------------------------- | +| subject | str | ❌ | Task name/subject. Max allowed length is 250 characters. | +| assignees | List[TmUpdateTaskRequestAssignees] | ❌ | | +| completeness_condition | TmUpdateTaskRequestCompletenessCondition | ❌ | | +| start_date | str | ❌ | Task start date in UTC time zone | +| due_date | str | ❌ | Task due date/time in UTC time zone | +| color | TmUpdateTaskRequestColor | ❌ | | +| section | str | ❌ | Task section to group / search by. Max allowed length is 100 characters. | +| description | str | ❌ | Task details. Max allowed length is 102400 characters (100kB) | +| recurrence | TaskRecurrenceInfo | ❌ | Task information | +| attachments | List[TmAttachmentInfo] | ❌ | | + +# TmUpdateTaskRequestAssignees + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :--------------------------------- | +| id\_ | str | ❌ | Internal identifier of an assignee | + +# TmUpdateTaskRequestCompletenessCondition + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------- | +| SIMPLE | str | ✅ | "Simple" | +| ALLASSIGNEES | str | ✅ | "AllAssignees" | +| PERCENTAGE | str | ✅ | "Percentage" | + +# TmUpdateTaskRequestColor + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| BLACK | str | ✅ | "Black" | +| RED | str | ✅ | "Red" | +| ORANGE | str | ✅ | "Orange" | +| YELLOW | str | ✅ | "Yellow" | +| GREEN | str | ✅ | "Green" | +| BLUE | str | ✅ | "Blue" | +| PURPLE | str | ✅ | "Purple" | +| MAGENTA | str | ✅ | "Magenta" | + + diff --git a/documentation/models/TmUpdateTeamRequest.md b/documentation/models/TmUpdateTeamRequest.md new file mode 100644 index 00000000..173efcb9 --- /dev/null +++ b/documentation/models/TmUpdateTeamRequest.md @@ -0,0 +1,11 @@ +# TmUpdateTeamRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :--------------------------------------------------------------- | +| public | bool | ❌ | Team access level | +| name | str | ❌ | Team name. Maximum number of characters supported is 250 | +| description | str | ❌ | Team description. Maximum number of characters supported is 1000 | + + diff --git a/documentation/models/TmWebhookInfo.md b/documentation/models/TmWebhookInfo.md new file mode 100644 index 00000000..d6d828e3 --- /dev/null +++ b/documentation/models/TmWebhookInfo.md @@ -0,0 +1,27 @@ +# TmWebhookInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------ | :------- | :------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a webhook | +| creator_id | str | ❌ | Internal identifier of the user who created a webhook | +| group_ids | List[str] | ❌ | Internal identifiers of groups where a webhook has been created | +| creation_time | str | ❌ | Webhook creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| last_modified_time | str | ❌ | Webhook last update time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format | +| uri | str | ❌ | Public link to send a webhook payload | +| status | TmWebhookInfoStatus | ❌ | Current status of a webhook | + +# TmWebhookInfoStatus + +Current status of a webhook + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| SUSPENDED | str | ✅ | "Suspended" | +| DELETED | str | ✅ | "Deleted" | + + diff --git a/documentation/models/TmWebhookList.md b/documentation/models/TmWebhookList.md new file mode 100644 index 00000000..8b94ba9e --- /dev/null +++ b/documentation/models/TmWebhookList.md @@ -0,0 +1,9 @@ +# TmWebhookList + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------ | :------- | :---------- | +| records | List[TmWebhookInfo] | ❌ | | + + diff --git a/documentation/models/TokenInfo.md b/documentation/models/TokenInfo.md new file mode 100644 index 00000000..aa12edbc --- /dev/null +++ b/documentation/models/TokenInfo.md @@ -0,0 +1,31 @@ +# TokenInfo + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :-------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| access_token | str | ✅ | OAuth access token to pass to subsequent API requests | +| expires_in | int | ✅ | Access token TTL (time-to-live) in seconds | +| scope | str | ✅ | The list of space separated application permissions (OAuth scopes) | +| token_type | TokenType | ✅ | Type of the token. The only supported value is `bearer`. This value should be used when specifying access token in `Authorization` header of subsequent API requests | +| refresh_token | str | ❌ | OAuth refresh token (if issued) | +| refresh_token_expires_in | int | ❌ | Refresh token TTL (time-to-live) in seconds | +| owner_id | str | ❌ | Token owner's identifier. Contains RingCentral user (extension) ID | +| endpoint_id | str | ❌ | Client application instance identifier that matches the value provided by the client, or generated by the server if a client has not provided this value | +| id_token | str | ❌ | OpenID Connect ID token (if OpenID Connect flow was activated during authorization) | +| session_expires_in | int | ❌ | Remaining time in seconds until session expiration due to absolute timeout. Returned only if absolute session timeout is enforced | +| session_expiration_time | str | ❌ | Absolute value of session expiration time in ISO date formatted string. Returned only if absolute session timeout is enforced | +| session_id | str | ❌ | OAuth session ID | +| session_idle_timeout | int | ❌ | Nominal value of session idle timeout in seconds. Returned only if idle session timeout is enforced | + +# TokenType + +Type of the token. The only supported value is `bearer`. This value should be used when specifying access token in `Authorization` header of subsequent API requests + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| BEARER | str | ✅ | "bearer" | + + diff --git a/documentation/models/TranscribedObject.md b/documentation/models/TranscribedObject.md new file mode 100644 index 00000000..e9168e1a --- /dev/null +++ b/documentation/models/TranscribedObject.md @@ -0,0 +1,13 @@ +# TranscribedObject + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------------------- | :------- | :---------------------------------------------------------------------------------------- | +| words | List[WordSegment] | ✅ | | +| transcript | str | ✅ | The entire transcript with/without punctuations according to the input. | +| speaker_count | int | ❌ | The number of speakers detected. Field is set only when enableSpeakerDiarization is true. | +| utterances | List[UtteranceObject] | ❌ | Speaker wise utterances. Field is set only when enableSpeakerDiarization is true. | +| confidence | float | ❌ | Overall transcription confidence. | + + diff --git a/documentation/models/TransferExtensionInfo.md b/documentation/models/TransferExtensionInfo.md new file mode 100644 index 00000000..9a57d0e1 --- /dev/null +++ b/documentation/models/TransferExtensionInfo.md @@ -0,0 +1,12 @@ +# TransferExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension resource | +| name | str | ❌ | Extension name | +| extension_number | str | ❌ | Extension number | + + diff --git a/documentation/models/TransferInfo.md b/documentation/models/TransferInfo.md new file mode 100644 index 00000000..6e7a8017 --- /dev/null +++ b/documentation/models/TransferInfo.md @@ -0,0 +1,22 @@ +# TransferInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :-------------------- | :------- | :----------------------------------------------------------- | +| extension | TransferExtensionInfo | ❌ | | +| action | TransferInfoAction | ❌ | Event that initiates transferring to the specified extension | + +# TransferInfoAction + +Event that initiates transferring to the specified extension + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| HOLDTIMEEXPIRATION | str | ✅ | "HoldTimeExpiration" | +| MAXCALLERS | str | ✅ | "MaxCallers" | +| NOANSWER | str | ✅ | "NoAnswer" | + + diff --git a/documentation/models/TransferTarget.md b/documentation/models/TransferTarget.md new file mode 100644 index 00000000..9f118aff --- /dev/null +++ b/documentation/models/TransferTarget.md @@ -0,0 +1,14 @@ +# TransferTarget + +Identifier of a call party the call will be transferred to. Only **one of** these parameters: `phoneNumber`, `voicemail`, `extensionNumber` or `parkOrbit` must be specified, otherwise an error is returned. + +**Properties** + +| Name | Type | Required | Description | +| :--------------- | :--- | :------- | :----------------------------------- | +| phone_number | str | ❌ | Phone number | +| voicemail | str | ❌ | Voicemail owner extension identifier | +| park_orbit | str | ❌ | Park orbit identifier | +| extension_number | str | ❌ | Extension short number | + + diff --git a/documentation/models/TransferredExtension.md b/documentation/models/TransferredExtension.md new file mode 100644 index 00000000..6317a6ac --- /dev/null +++ b/documentation/models/TransferredExtension.md @@ -0,0 +1,12 @@ +# TransferredExtension + +Transfer extension settings, set/returned if `callHandlingAction` is specified as `TransferToExtension` + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------- | +| id\_ | str | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension resource | + + diff --git a/documentation/models/TransferredExtensionInfo.md b/documentation/models/TransferredExtensionInfo.md new file mode 100644 index 00000000..03e4b4a3 --- /dev/null +++ b/documentation/models/TransferredExtensionInfo.md @@ -0,0 +1,9 @@ +# TransferredExtensionInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------------- | :------- | :------------------------------------------------------------------------------------------------------ | +| extension | TransferredExtension | ❌ | Transfer extension settings, set/returned if `callHandlingAction` is specified as `TransferToExtension` | + + diff --git a/documentation/models/TypeGroup.md b/documentation/models/TypeGroup.md new file mode 100644 index 00000000..0845b079 --- /dev/null +++ b/documentation/models/TypeGroup.md @@ -0,0 +1,10 @@ +# TypeGroup + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| USER | str | ✅ | "User" | +| NONUSER | str | ✅ | "NonUser" | + + diff --git a/documentation/models/UBrandInfo.md b/documentation/models/UBrandInfo.md new file mode 100644 index 00000000..d562b8b9 --- /dev/null +++ b/documentation/models/UBrandInfo.md @@ -0,0 +1,12 @@ +# UBrandInfo + +Account sub-brand information + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------ | +| id\_ | str | ❌ | Sub-brand unique ID | +| name | str | ❌ | Sub-brand name | + + diff --git a/documentation/models/UnconditionalForwardingInfo.md b/documentation/models/UnconditionalForwardingInfo.md new file mode 100644 index 00000000..31c12afe --- /dev/null +++ b/documentation/models/UnconditionalForwardingInfo.md @@ -0,0 +1,25 @@ +# UnconditionalForwardingInfo + +Unconditional forwarding parameters. +Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Phone number to which the call is forwarded. In addition to common e.164 format, the following number patterns are supported: 11xxxxxxxxxxx, 444xxxxxxxxxxx, 616xxxxxxxxxxx, 1700yyyy; where xxxxxxxxxxx is a phone number in e.164 format (without '+' sign) and yyyy is an external short extension number. Max number of digits is 15 | +| action | UnconditionalForwardingInfoAction | ❌ | Event that initiates forwarding to the specified phone number | + +# UnconditionalForwardingInfoAction + +Event that initiates forwarding to the specified phone number + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------- | +| HOLDTIMEEXPIRATION | str | ✅ | "HoldTimeExpiration" | +| MAXCALLERS | str | ✅ | "MaxCallers" | +| NOANSWER | str | ✅ | "NoAnswer" | + + diff --git a/documentation/models/UnifiedPresence.md b/documentation/models/UnifiedPresence.md new file mode 100644 index 00000000..2b0ffa6e --- /dev/null +++ b/documentation/models/UnifiedPresence.md @@ -0,0 +1,25 @@ +# UnifiedPresence + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :----------------------- | :------- | :-------------------------------------------- | +| status | UnifiedPresenceStatus | ❌ | Aggregated presence status of the user | +| glip | UnifiedPresenceGlip | ❌ | Returned if _Glip_ feature is switched on | +| telephony | UnifiedPresenceTelephony | ❌ | Returned if _BLF_ feature is switched on | +| meeting | UnifiedPresenceMeeting | ❌ | Returned if _Meetings_ feature is switched on | + +# UnifiedPresenceStatus + +Aggregated presence status of the user + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AVAILABLE | str | ✅ | "Available" | +| OFFLINE | str | ✅ | "Offline" | +| DND | str | ✅ | "DND" | +| BUSY | str | ✅ | "Busy" | + + diff --git a/documentation/models/UnifiedPresenceGlip.md b/documentation/models/UnifiedPresenceGlip.md new file mode 100644 index 00000000..09412648 --- /dev/null +++ b/documentation/models/UnifiedPresenceGlip.md @@ -0,0 +1,46 @@ +# UnifiedPresenceGlip + +Returned if _Glip_ feature is switched on + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| status | UnifiedPresenceGlipStatus | ❌ | Glip connection status calculated from all user's apps. Returned always for the requester's extension; returned for another users if their glip visibility is set to 'Visible' | +| visibility | UnifiedPresenceGlipVisibility | ❌ | Visibility setting allowing other users to see the user's Glip presence status; returned only for requester's extension | +| availability | UnifiedPresenceGlipAvailability | ❌ | Shows whether user wants to receive Glip notifications or not. | + +# UnifiedPresenceGlipStatus + +Glip connection status calculated from all user's apps. Returned always for the requester's extension; returned for another users if their glip visibility is set to 'Visible' + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| OFFLINE | str | ✅ | "Offline" | +| ONLINE | str | ✅ | "Online" | + +# UnifiedPresenceGlipVisibility + +Visibility setting allowing other users to see the user's Glip presence status; returned only for requester's extension + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VISIBLE | str | ✅ | "Visible" | +| INVISIBLE | str | ✅ | "Invisible" | + +# UnifiedPresenceGlipAvailability + +Shows whether user wants to receive Glip notifications or not. + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AVAILABLE | str | ✅ | "Available" | +| DND | str | ✅ | "DND" | + + diff --git a/documentation/models/UnifiedPresenceListEntry.md b/documentation/models/UnifiedPresenceListEntry.md new file mode 100644 index 00000000..c27aa2b4 --- /dev/null +++ b/documentation/models/UnifiedPresenceListEntry.md @@ -0,0 +1,11 @@ +# UnifiedPresenceListEntry + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------- | :------- | :---------------------------------- | +| resource_id | str | ❌ | Internal identifier of the resource | +| status | int | ❌ | Status code of resource retrieval | +| body | UnifiedPresence | ❌ | | + + diff --git a/documentation/models/UnifiedPresenceMeeting.md b/documentation/models/UnifiedPresenceMeeting.md new file mode 100644 index 00000000..ecbb7c64 --- /dev/null +++ b/documentation/models/UnifiedPresenceMeeting.md @@ -0,0 +1,22 @@ +# UnifiedPresenceMeeting + +Returned if _Meetings_ feature is switched on + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------------------------- | :------- | :------------------------------------------------- | +| status | UnifiedPresenceMeetingStatus | ❌ | Meeting status calculated from all user`s meetings | + +# UnifiedPresenceMeetingStatus + +Meeting status calculated from all user`s meetings + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NOMEETING | str | ✅ | "NoMeeting" | +| INMEETING | str | ✅ | "InMeeting" | + + diff --git a/documentation/models/UnifiedPresenceTelephony.md b/documentation/models/UnifiedPresenceTelephony.md new file mode 100644 index 00000000..f0d2e844 --- /dev/null +++ b/documentation/models/UnifiedPresenceTelephony.md @@ -0,0 +1,50 @@ +# UnifiedPresenceTelephony + +Returned if _BLF_ feature is switched on + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| status | UnifiedPresenceTelephonyStatus | ❌ | Telephony status calculated from all user's phone numbers. Returned always for the requester's extension; returned for another users if their telephony visibility is set to 'Visible' | +| visibility | UnifiedPresenceTelephonyVisibility | ❌ | Specifies if the user's phone presence status is visible to other users; returned only for requester's extension | +| availability | UnifiedPresenceTelephonyAvailability | ❌ | Telephony DND status. Returned if _DND_ feature is switched on | + +# UnifiedPresenceTelephonyStatus + +Telephony status calculated from all user's phone numbers. Returned always for the requester's extension; returned for another users if their telephony visibility is set to 'Visible' + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| NOCALL | str | ✅ | "NoCall" | +| RINGING | str | ✅ | "Ringing" | +| CALLCONNECTED | str | ✅ | "CallConnected" | +| ONHOLD | str | ✅ | "OnHold" | +| PARKEDCALL | str | ✅ | "ParkedCall" | + +# UnifiedPresenceTelephonyVisibility + +Specifies if the user's phone presence status is visible to other users; returned only for requester's extension + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VISIBLE | str | ✅ | "Visible" | +| INVISIBLE | str | ✅ | "Invisible" | + +# UnifiedPresenceTelephonyAvailability + +Telephony DND status. Returned if _DND_ feature is switched on + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| TAKEALLCALLS | str | ✅ | "TakeAllCalls" | +| DONOTACCEPTANYCALLS | str | ✅ | "DoNotAcceptAnyCalls" | +| DONOTACCEPTQUEUECALLS | str | ✅ | "DoNotAcceptQueueCalls" | + + diff --git a/documentation/models/UpdateAnsweringRuleRequest.md b/documentation/models/UpdateAnsweringRuleRequest.md new file mode 100644 index 00000000..f589cf01 --- /dev/null +++ b/documentation/models/UpdateAnsweringRuleRequest.md @@ -0,0 +1,72 @@ +# UpdateAnsweringRuleRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------------- | :------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Identifier of an answering rule | +| forwarding | ForwardingInfoCreateRuleRequest | ❌ | Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded | +| enabled | bool | ❌ | Specifies if the rule is active or inactive. The default value is `true` | +| name | str | ❌ | Name of an answering rule specified by user | +| callers | List[CallersInfoRequest] | ❌ | Answering rule will be applied when calls are received from the specified caller(s) | +| called_numbers | List[CalledNumberInfo] | ❌ | Answering rules are applied when calling to selected number(s) | +| schedule | ScheduleInfo | ❌ | Schedule when an answering rule should be applied | +| call_handling_action | UpdateAnsweringRuleRequestCallHandlingAction | ❌ | Specifies how incoming calls are forwarded | +| type\_ | UpdateAnsweringRuleRequestType | ❌ | Type of an answering rule | +| unconditional_forwarding | UnconditionalForwardingInfo | ❌ | Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter | +| queue | QueueInfo | ❌ | Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action | +| voicemail | VoicemailInfo | ❌ | Specifies whether to take a voicemail and who should do it | +| missed_call | MissedCallInfo | ❌ | Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' | +| greetings | List[GreetingInfo] | ❌ | Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List | +| screening | UpdateAnsweringRuleRequestScreening | ❌ | Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' | +| show_inactive_numbers | bool | ❌ | Indicates whether inactive numbers should be returned or not | +| transfer | TransferredExtensionInfo | ❌ | | + +# UpdateAnsweringRuleRequestCallHandlingAction + +Specifies how incoming calls are forwarded + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :--- | :------- | :------------------------ | +| FORWARDCALLS | str | ✅ | "ForwardCalls" | +| UNCONDITIONALFORWARDING | str | ✅ | "UnconditionalForwarding" | +| AGENTQUEUE | str | ✅ | "AgentQueue" | +| TRANSFERTOEXTENSION | str | ✅ | "TransferToExtension" | +| TAKEMESSAGESONLY | str | ✅ | "TakeMessagesOnly" | +| PLAYANNOUNCEMENTONLY | str | ✅ | "PlayAnnouncementOnly" | +| SHAREDLINES | str | ✅ | "SharedLines" | + +# UpdateAnsweringRuleRequestType + +Type of an answering rule + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------- | +| BUSINESSHOURS | str | ✅ | "BusinessHours" | +| AFTERHOURS | str | ✅ | "AfterHours" | +| CUSTOM | str | ✅ | "Custom" | + +# UpdateAnsweringRuleRequestScreening + +Call screening status. 'Off' - no call screening; 'NoCallerId' + +- if caller ID is missing, then callers are asked to say their name before + connecting; 'UnknownCallerId' - if caller ID is not in contact list, then + callers are asked to say their name before connecting; 'Always' - the + callers are always asked to say their name before connecting. The default + value is 'Off' + +**Properties** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :---------------- | +| OFF | str | ✅ | "Off" | +| NOCALLERID | str | ✅ | "NoCallerId" | +| UNKNOWNCALLERID | str | ✅ | "UnknownCallerId" | +| ALWAYS | str | ✅ | "Always" | + + diff --git a/documentation/models/UpdateBridgeRequest.md b/documentation/models/UpdateBridgeRequest.md new file mode 100644 index 00000000..c4fd3406 --- /dev/null +++ b/documentation/models/UpdateBridgeRequest.md @@ -0,0 +1,12 @@ +# UpdateBridgeRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------------- | :------- | :---------------------- | +| name | str | ❌ | Custom name of a bridge | +| pins | BridgePinsWithoutPstn | ❌ | | +| security | BridgeRequestSecurity | ❌ | | +| preferences | BridgePreferences | ❌ | | + + diff --git a/documentation/models/UpdateConferencingInfoRequest.md b/documentation/models/UpdateConferencingInfoRequest.md new file mode 100644 index 00000000..cea440c2 --- /dev/null +++ b/documentation/models/UpdateConferencingInfoRequest.md @@ -0,0 +1,10 @@ +# UpdateConferencingInfoRequest + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| phone_numbers | List[ConferencePhoneNumberInfo] | ❌ | Multiple dial-in phone numbers to connect to audio conference service, relevant for user's brand. Each number is given with the country and location information, in order to let the user choose the less expensive way to connect to a conference. The first number in the list is the primary conference number, that is default and domestic | +| allow_join_before_host | bool | ❌ | Determines if host user allows conference participants to join before the host | + + diff --git a/documentation/models/UpdateDevicePhoneInfo.md b/documentation/models/UpdateDevicePhoneInfo.md new file mode 100644 index 00000000..6584e849 --- /dev/null +++ b/documentation/models/UpdateDevicePhoneInfo.md @@ -0,0 +1,9 @@ +# UpdateDevicePhoneInfo + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a phone number | + + diff --git a/documentation/models/UpdateEveryoneTeamRequest.md b/documentation/models/UpdateEveryoneTeamRequest.md new file mode 100644 index 00000000..bd92fda8 --- /dev/null +++ b/documentation/models/UpdateEveryoneTeamRequest.md @@ -0,0 +1,10 @@ +# UpdateEveryoneTeamRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------------------------------------------ | +| name | str | ❌ | Everyone chat name. Maximum number of characters supported is 250 | +| description | str | ❌ | Everyone chat description. Maximum number of characters supported is 1000 | + + diff --git a/documentation/models/UpdateForwardingNumberRequest.md b/documentation/models/UpdateForwardingNumberRequest.md new file mode 100644 index 00000000..56355152 --- /dev/null +++ b/documentation/models/UpdateForwardingNumberRequest.md @@ -0,0 +1,29 @@ +# UpdateForwardingNumberRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :------------------------------------------------------------------------------------- | +| phone_number | str | ❌ | Forwarding/Call flip phone number | +| label | str | ❌ | Forwarding/Call flip number title | +| flip_number | str | ❌ | Number assigned to the call flip phone number, corresponds to the shortcut dial number | +| type\_ | UpdateForwardingNumberRequestType | ❌ | Forwarding phone number type | + +# UpdateForwardingNumberRequestType + +Forwarding phone number type + +**Properties** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------- | +| HOME | str | ✅ | "Home" | +| MOBILE | str | ✅ | "Mobile" | +| WORK | str | ✅ | "Work" | +| PHONELINE | str | ✅ | "PhoneLine" | +| OUTAGE | str | ✅ | "Outage" | +| OTHER | str | ✅ | "Other" | +| BUSINESSMOBILEPHONE | str | ✅ | "BusinessMobilePhone" | +| EXTERNALCARRIER | str | ✅ | "ExternalCarrier" | + + diff --git a/documentation/models/UpdateInviteeRequest.md b/documentation/models/UpdateInviteeRequest.md new file mode 100644 index 00000000..d4c1ec56 --- /dev/null +++ b/documentation/models/UpdateInviteeRequest.md @@ -0,0 +1,15 @@ +# UpdateInviteeRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role | RcwRoleEnum | ✅ | The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) | +| first_name | str | ❌ | First (given) name | +| last_name | str | ❌ | Last (family) name | +| email | str | ❌ | User's contact email | +| job_title | str | ❌ | Job title | +| type\_ | RcwInviteeTypeEnum | ❌ | The type of the webinar invitee | +| send_invite | bool | ❌ | Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. | + + diff --git a/documentation/models/UpdateIvrPromptRequest.md b/documentation/models/UpdateIvrPromptRequest.md new file mode 100644 index 00000000..2fb2efbf --- /dev/null +++ b/documentation/models/UpdateIvrPromptRequest.md @@ -0,0 +1,9 @@ +# UpdateIvrPromptRequest + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------------------------------------- | +| filename | str | ❌ | Name of a file to be uploaded as a prompt | + + diff --git a/documentation/models/UpdateMessageBulkRequest.md b/documentation/models/UpdateMessageBulkRequest.md new file mode 100644 index 00000000..9da59cc5 --- /dev/null +++ b/documentation/models/UpdateMessageBulkRequest.md @@ -0,0 +1,10 @@ +# UpdateMessageBulkRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :------------------- | :------- | :------------------------------------------------------------------------------------- | +| body | UpdateMessageRequest | ✅ | | +| resource_id | str | ❌ | Internal identifier of a resource (required when alternative syntax with '\*' is used) | + + diff --git a/documentation/models/UpdateMessageRequest.md b/documentation/models/UpdateMessageRequest.md new file mode 100644 index 00000000..1f29099b --- /dev/null +++ b/documentation/models/UpdateMessageRequest.md @@ -0,0 +1,9 @@ +# UpdateMessageRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------------------- | :------- | :------------------ | +| read_status | MessageReadStatusEnum | ✅ | Message read status | + + diff --git a/documentation/models/UpdateMultipleSwitchesRequest.md b/documentation/models/UpdateMultipleSwitchesRequest.md new file mode 100644 index 00000000..0164086a --- /dev/null +++ b/documentation/models/UpdateMultipleSwitchesRequest.md @@ -0,0 +1,9 @@ +# UpdateMultipleSwitchesRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------- | :------- | :---------- | +| records | List[UpdateSwitchInfo] | ❌ | | + + diff --git a/documentation/models/UpdateMultipleSwitchesResponse.md b/documentation/models/UpdateMultipleSwitchesResponse.md new file mode 100644 index 00000000..d4e7fce4 --- /dev/null +++ b/documentation/models/UpdateMultipleSwitchesResponse.md @@ -0,0 +1,9 @@ +# UpdateMultipleSwitchesResponse + +**Properties** + +| Name | Type | Required | Description | +| :--- | :----------- | :------- | :---------- | +| task | BulkTaskInfo | ❌ | | + + diff --git a/documentation/models/UpdateMultipleWirelessPointsRequest.md b/documentation/models/UpdateMultipleWirelessPointsRequest.md new file mode 100644 index 00000000..65600bd4 --- /dev/null +++ b/documentation/models/UpdateMultipleWirelessPointsRequest.md @@ -0,0 +1,9 @@ +# UpdateMultipleWirelessPointsRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :------------------------ | :------- | :---------- | +| records | List[UpdateWirelessPoint] | ❌ | | + + diff --git a/documentation/models/UpdateMultipleWirelessPointsResponse.md b/documentation/models/UpdateMultipleWirelessPointsResponse.md new file mode 100644 index 00000000..7b10cfaf --- /dev/null +++ b/documentation/models/UpdateMultipleWirelessPointsResponse.md @@ -0,0 +1,9 @@ +# UpdateMultipleWirelessPointsResponse + +**Properties** + +| Name | Type | Required | Description | +| :--- | :----------- | :------- | :---------- | +| task | BulkTaskInfo | ❌ | | + + diff --git a/documentation/models/UpdateNetworkRequest.md b/documentation/models/UpdateNetworkRequest.md new file mode 100644 index 00000000..25f15160 --- /dev/null +++ b/documentation/models/UpdateNetworkRequest.md @@ -0,0 +1,13 @@ +# UpdateNetworkRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| name | str | ✅ | | +| public_ip_ranges | List[PublicIpRangeInfo] | ✅ | | +| private_ip_ranges | List[PrivateIpRangeInfoRequest] | ✅ | | +| id\_ | str | ❌ | Internal identifier of a network | +| site | AutomaticLocationUpdatesSiteInfo | ❌ | Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` | + + diff --git a/documentation/models/UpdateSubscriptionRequest.md b/documentation/models/UpdateSubscriptionRequest.md new file mode 100644 index 00000000..e7eb2b97 --- /dev/null +++ b/documentation/models/UpdateSubscriptionRequest.md @@ -0,0 +1,10 @@ +# UpdateSubscriptionRequest + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| event_filters | List[str] | ✅ | The list of event filters corresponding to events the user is subscribed to | +| expires_in | int | ❌ | Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| | + + diff --git a/documentation/models/UpdateSwitchInfo.md b/documentation/models/UpdateSwitchInfo.md new file mode 100644 index 00000000..835c4494 --- /dev/null +++ b/documentation/models/UpdateSwitchInfo.md @@ -0,0 +1,14 @@ +# UpdateSwitchInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a switch | +| chassis_id | str | ❌ | Unique identifier of a network switch. The supported formats are: XX:XX:XX:XX:XX:XX (symbols 0-9 and A-F) for MAC address and X.X.X.X for IP address (symbols 0-255) | +| port | str | ❌ | Switch entity extension for better diversity. Should be used together with chassisId. | +| name | str | ❌ | Name of a network switch | +| site | SwitchSiteInfo | ❌ | | +| emergency_address | EmergencyAddressInfo | ❌ | | + + diff --git a/documentation/models/UpdateUnifiedPresence.md b/documentation/models/UpdateUnifiedPresence.md new file mode 100644 index 00000000..4e535557 --- /dev/null +++ b/documentation/models/UpdateUnifiedPresence.md @@ -0,0 +1,10 @@ +# UpdateUnifiedPresence + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :----------------------------- | :------- | :---------- | +| glip | UpdateUnifiedPresenceGlip | ❌ | | +| telephony | UpdateUnifiedPresenceTelephony | ❌ | | + + diff --git a/documentation/models/UpdateUnifiedPresenceGlip.md b/documentation/models/UpdateUnifiedPresenceGlip.md new file mode 100644 index 00000000..2d117eb7 --- /dev/null +++ b/documentation/models/UpdateUnifiedPresenceGlip.md @@ -0,0 +1,32 @@ +# UpdateUnifiedPresenceGlip + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------ | :------- | :--------------------------------------------------------------------------- | +| visibility | UpdateUnifiedPresenceGlipVisibility | ❌ | Visibility setting allowing other users to see Glip presence status | +| availability | UpdateUnifiedPresenceGlipAvailability | ❌ | Availability setting specifying whether to receive Glip notifications or not | + +# UpdateUnifiedPresenceGlipVisibility + +Visibility setting allowing other users to see Glip presence status + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VISIBLE | str | ✅ | "Visible" | +| INVISIBLE | str | ✅ | "Invisible" | + +# UpdateUnifiedPresenceGlipAvailability + +Availability setting specifying whether to receive Glip notifications or not + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| AVAILABLE | str | ✅ | "Available" | +| DND | str | ✅ | "DND" | + + diff --git a/documentation/models/UpdateUnifiedPresenceTelephony.md b/documentation/models/UpdateUnifiedPresenceTelephony.md new file mode 100644 index 00000000..98844097 --- /dev/null +++ b/documentation/models/UpdateUnifiedPresenceTelephony.md @@ -0,0 +1,21 @@ +# UpdateUnifiedPresenceTelephony + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :----------------------------------------- | :------- | :------------------- | +| availability | UpdateUnifiedPresenceTelephonyAvailability | ❌ | Telephony DND status | + +# UpdateUnifiedPresenceTelephonyAvailability + +Telephony DND status + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| TAKEALLCALLS | str | ✅ | "TakeAllCalls" | +| DONOTACCEPTANYCALLS | str | ✅ | "DoNotAcceptAnyCalls" | +| DONOTACCEPTQUEUECALLS | str | ✅ | "DoNotAcceptQueueCalls" | + + diff --git a/documentation/models/UpdateUserProfileImageRequest.md b/documentation/models/UpdateUserProfileImageRequest.md new file mode 100644 index 00000000..c4101c88 --- /dev/null +++ b/documentation/models/UpdateUserProfileImageRequest.md @@ -0,0 +1,9 @@ +# UpdateUserProfileImageRequest + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| image | any | ❌ | | + + diff --git a/documentation/models/UpdateWirelessPoint.md b/documentation/models/UpdateWirelessPoint.md new file mode 100644 index 00000000..6d5ed24c --- /dev/null +++ b/documentation/models/UpdateWirelessPoint.md @@ -0,0 +1,13 @@ +# UpdateWirelessPoint + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id\_ | str | ❌ | Internal identifier of a wireless point | +| bssid | str | ❌ | Unique 48-bit identifier of wireless access point that follows MAC address conventions. Mask: XX:XX:XX:XX:XX:XX, where X can be a symbol in the range of 0-9 or A-F | +| name | str | ❌ | Name of a wireless access point | +| site | EmergencyAddressAutoUpdateSiteInfo | ❌ | | +| emergency_address | EmergencyAddressInfo | ❌ | | + + diff --git a/documentation/models/UsageStatus.md b/documentation/models/UsageStatus.md new file mode 100644 index 00000000..51bb6f7a --- /dev/null +++ b/documentation/models/UsageStatus.md @@ -0,0 +1,12 @@ +# UsageStatus + +Status of emergency response location usage. + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| ACTIVE | str | ✅ | "Active" | +| INACTIVE | str | ✅ | "Inactive" | + + diff --git a/documentation/models/User.md b/documentation/models/User.md new file mode 100644 index 00000000..3685ff23 --- /dev/null +++ b/documentation/models/User.md @@ -0,0 +1,10 @@ +# User + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------ | +| account_id | str | ✅ | User account identifier | +| extension_id | str | ✅ | User extension identifier | + + diff --git a/documentation/models/UserAnsweringRuleList.md b/documentation/models/UserAnsweringRuleList.md new file mode 100644 index 00000000..a3614f88 --- /dev/null +++ b/documentation/models/UserAnsweringRuleList.md @@ -0,0 +1,12 @@ +# UserAnsweringRuleList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------- | :------- | :----------------------------------------------- | +| uri | str | ❌ | Canonical URI of an answering rule list resource | +| records | List[AnsweringRuleInfo] | ❌ | List of answering rules | +| paging | EnumeratedPagingModel | ❌ | | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | + + diff --git a/documentation/models/UserBusinessHoursScheduleInfo.md b/documentation/models/UserBusinessHoursScheduleInfo.md new file mode 100644 index 00000000..2a999830 --- /dev/null +++ b/documentation/models/UserBusinessHoursScheduleInfo.md @@ -0,0 +1,11 @@ +# UserBusinessHoursScheduleInfo + +Schedule when an answering rule is applied + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :----------------- | :------- | :-------------- | +| weekly_ranges | WeeklyScheduleInfo | ❌ | Weekly schedule | + + diff --git a/documentation/models/UserBusinessHoursUpdateRequest.md b/documentation/models/UserBusinessHoursUpdateRequest.md new file mode 100644 index 00000000..0c13f130 --- /dev/null +++ b/documentation/models/UserBusinessHoursUpdateRequest.md @@ -0,0 +1,9 @@ +# UserBusinessHoursUpdateRequest + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------------- | :------- | :----------------------------------------- | +| schedule | UserBusinessHoursScheduleInfo | ✅ | Schedule when an answering rule is applied | + + diff --git a/documentation/models/UserBusinessHoursUpdateResponse.md b/documentation/models/UserBusinessHoursUpdateResponse.md new file mode 100644 index 00000000..37052646 --- /dev/null +++ b/documentation/models/UserBusinessHoursUpdateResponse.md @@ -0,0 +1,10 @@ +# UserBusinessHoursUpdateResponse + +**Properties** + +| Name | Type | Required | Description | +| :------- | :---------------------------- | :------- | :----------------------------------------- | +| uri | str | ❌ | Canonical URI of a business-hours resource | +| schedule | UserBusinessHoursScheduleInfo | ❌ | Schedule when an answering rule is applied | + + diff --git a/documentation/models/UserCallQueues.md b/documentation/models/UserCallQueues.md new file mode 100644 index 00000000..561cd8db --- /dev/null +++ b/documentation/models/UserCallQueues.md @@ -0,0 +1,9 @@ +# UserCallQueues + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------- | :------- | :-------------------------------------------- | +| records | List[QueueShortInfoResource] | ❌ | List of queues where an extension is an agent | + + diff --git a/documentation/models/UserContactsGroupsInfo.md b/documentation/models/UserContactsGroupsInfo.md new file mode 100644 index 00000000..87a4f7da --- /dev/null +++ b/documentation/models/UserContactsGroupsInfo.md @@ -0,0 +1,11 @@ +# UserContactsGroupsInfo + +Information on address book groups + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :-------------------------------------- | +| uri | str | ❌ | Link to the list of address book groups | + + diff --git a/documentation/models/UserContactsNavigationInfo.md b/documentation/models/UserContactsNavigationInfo.md new file mode 100644 index 00000000..a4d1b092 --- /dev/null +++ b/documentation/models/UserContactsNavigationInfo.md @@ -0,0 +1,14 @@ +# UserContactsNavigationInfo + +Information on navigation + +**Properties** + +| Name | Type | Required | Description | +| :------------ | :---------------------------- | :------- | :----------------------------------------------- | +| first_page | UserContactsNavigationInfoUri | ❌ | Canonical URI for a corresponding page of a list | +| next_page | UserContactsNavigationInfoUri | ❌ | Canonical URI for a corresponding page of a list | +| previous_page | UserContactsNavigationInfoUri | ❌ | Canonical URI for a corresponding page of a list | +| last_page | UserContactsNavigationInfoUri | ❌ | Canonical URI for a corresponding page of a list | + + diff --git a/documentation/models/UserContactsNavigationInfoUri.md b/documentation/models/UserContactsNavigationInfoUri.md new file mode 100644 index 00000000..ef9b76d4 --- /dev/null +++ b/documentation/models/UserContactsNavigationInfoUri.md @@ -0,0 +1,11 @@ +# UserContactsNavigationInfoUri + +Canonical URI for a corresponding page of a list + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ❌ | | + + diff --git a/documentation/models/UserContactsPagingInfo.md b/documentation/models/UserContactsPagingInfo.md new file mode 100644 index 00000000..551cce5d --- /dev/null +++ b/documentation/models/UserContactsPagingInfo.md @@ -0,0 +1,16 @@ +# UserContactsPagingInfo + +Information on paging + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | Current page number. 1-indexed, so the first page is 1 by default. May be omitted if the result is empty (because non-existent page was specified or perPage=0 was requested) | +| per_page | int | ❌ | Current page size, describes how many items each page contains. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied | +| page_start | int | ❌ | Zero-based number of the first element on the current page. Omitted if a page is omitted or the result is empty | +| page_end | int | ❌ | Zero-based index of the last element on the current page. Omitted if a page is omitted or the result is empty | +| total_pages | int | ❌ | Total number of pages in a dataset. May be omitted for some resources due to performance reasons | +| total_elements | int | ❌ | Total number of elements in a dataset. May be omitted for some resource due to performance reasons | + + diff --git a/documentation/models/UserInMeetingResponse.md b/documentation/models/UserInMeetingResponse.md new file mode 100644 index 00000000..7a719530 --- /dev/null +++ b/documentation/models/UserInMeetingResponse.md @@ -0,0 +1,16 @@ +# UserInMeetingResponse + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :--- | :------- | :---------- | +| enable_waiting_room | bool | ❌ | | +| breakout_room | bool | ❌ | | +| chat | bool | ❌ | | +| polling | bool | ❌ | | +| annotation | bool | ❌ | | +| virtual_background | bool | ❌ | | +| screen_sharing | bool | ❌ | | +| request_permission_to_unmute | bool | ❌ | | + + diff --git a/documentation/models/UserMeetingRecordingSetting.md b/documentation/models/UserMeetingRecordingSetting.md new file mode 100644 index 00000000..17357a0c --- /dev/null +++ b/documentation/models/UserMeetingRecordingSetting.md @@ -0,0 +1,32 @@ +# UserMeetingRecordingSetting + +Meeting recording settings locked on account level + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :------------ | :------- | :--------------------------------------------------------------------------------------------- | +| local_recording | bool | ❌ | Allows hosts and participants to record a meeting to a local file | +| cloud_recording | bool | ❌ | Allows hosts to record and save a meeting/webinar in the cloud | +| record_speaker_view | bool | ❌ | Allows to record active speaker with the shared screen | +| record_gallery_view | bool | ❌ | Allows to record gallery view with the shared screen | +| record_audio_file | bool | ❌ | Allows to record an audio-only file | +| save_chat_text | bool | ❌ | Allows to save chat text from a meeting | +| show_timestamp | bool | ❌ | Allows to show timestamp on video | +| auto_recording | AutoRecording | ❌ | Automatic recording (local/cloud/none) of meetings as they start | +| auto_delete_cmr | str | ❌ | Automatic deletion of cloud recordings | +| auto_delete_cmr_days | int | ❌ | A specified number of days for automatic deletion of cloud recordings, the value range is 1-60 | + +# AutoRecording + +Automatic recording (local/cloud/none) of meetings as they start + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| LOCAL | str | ✅ | "local" | +| CLOUD | str | ✅ | "cloud" | +| NONE | str | ✅ | "none" | + + diff --git a/documentation/models/UserPhoneNumberExtensionInfo.md b/documentation/models/UserPhoneNumberExtensionInfo.md new file mode 100644 index 00000000..d1419494 --- /dev/null +++ b/documentation/models/UserPhoneNumberExtensionInfo.md @@ -0,0 +1,41 @@ +# UserPhoneNumberExtensionInfo + +Information on the extension, to which the phone number is assigned. +Returned only for the request of Account phone number list + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id\_ | int | ❌ | Internal identifier of an extension | +| uri | str | ❌ | Canonical URI of an extension | +| extension_number | str | ❌ | Extension short number | +| partner_id | str | ❌ | For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension | +| type\_ | UserPhoneNumberExtensionInfoType | ❌ | Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| contact_center_provider | ContactCenterProvider | ❌ | CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' | +| name | str | ❌ | Extension name. For user extension types the value is a combination of the specified first name and last name | + +# UserPhoneNumberExtensionInfoType + +Extension type. Please note that legacy 'Department' extension type +corresponds to 'Call Queue' extensions in modern RingCentral product terminology + +**Properties** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :--------------------- | +| USER | str | ✅ | "User" | +| FAXUSER | str | ✅ | "FaxUser" | +| VIRTUALUSER | str | ✅ | "VirtualUser" | +| DIGITALUSER | str | ✅ | "DigitalUser" | +| DEPARTMENT | str | ✅ | "Department" | +| ANNOUNCEMENT | str | ✅ | "Announcement" | +| VOICEMAIL | str | ✅ | "Voicemail" | +| SHAREDLINESGROUP | str | ✅ | "SharedLinesGroup" | +| PAGINGONLY | str | ✅ | "PagingOnly" | +| IVRMENU | str | ✅ | "IvrMenu" | +| APPLICATIONEXTENSION | str | ✅ | "ApplicationExtension" | +| PARKLOCATION | str | ✅ | "ParkLocation" | +| SITE | str | ✅ | "Site" | + + diff --git a/documentation/models/UserPhoneNumberInfo.md b/documentation/models/UserPhoneNumberInfo.md new file mode 100644 index 00000000..0aede84e --- /dev/null +++ b/documentation/models/UserPhoneNumberInfo.md @@ -0,0 +1,99 @@ +# UserPhoneNumberInfo + +**Properties** + +| Name | Type | Required | Description | +| :---------------------- | :-------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uri | str | ❌ | Link to the user phone number resource | +| id\_ | int | ❌ | Internal identifier of a phone number | +| country | CountryInfoBasicModel | ❌ | | +| contact_center_provider | ContactCenterProvider | ❌ | CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' | +| extension | UserPhoneNumberExtensionInfo | ❌ | Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list | +| label | str | ❌ | Custom user-defined name of a phone number, if any | +| location | str | ❌ | Location (City, State). Filled for local US numbers | +| payment_type | PlatformPaymentType | ❌ | Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system | +| phone_number | str | ❌ | Phone number | +| primary | bool | ❌ | Indicates if a phone number is primary, i.e. displayed as 'main number' and called by default | +| status | UserPhoneNumberInfoStatus | ❌ | Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral | +| type\_ | UserPhoneNumberInfoType | ❌ | Phone number type | +| sub_type | UserPhoneNumberInfoSubType | ❌ | Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned | +| usage_type | UserPhoneNumberInfoUsageType | ❌ | Usage type of phone number. Numbers of 'NumberPool' type will not be returned for phone number list requests | +| features | List[UserPhoneNumberInfoFeatures] | ❌ | List of features of a phone number | + +# UserPhoneNumberInfoStatus + +Status of a phone number. If the value is 'Normal', the phone +number is ready to be used. Otherwise, it is an external number not yet +ported to RingCentral + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| NORMAL | str | ✅ | "Normal" | +| PENDING | str | ✅ | "Pending" | +| PORTEDIN | str | ✅ | "PortedIn" | +| TEMPORARY | str | ✅ | "Temporary" | + +# UserPhoneNumberInfoType + +Phone number type + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| VOICEFAX | str | ✅ | "VoiceFax" | +| FAXONLY | str | ✅ | "FaxOnly" | +| VOICEONLY | str | ✅ | "VoiceOnly" | + +# UserPhoneNumberInfoSubType + +Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :--------------- | +| VIDEOPRO | str | ✅ | "VideoPro" | +| VIDEOPROPLUS | str | ✅ | "VideoProPlus" | +| DIGITALSIGNAGE | str | ✅ | "DigitalSignage" | +| UNKNOWN | str | ✅ | "Unknown" | +| EMERGENCY | str | ✅ | "Emergency" | + +# UserPhoneNumberInfoUsageType + +Usage type of phone number. Numbers of 'NumberPool' type will not be returned for phone number list requests + +**Properties** + +| Name | Type | Required | Description | +| :-------------------------- | :--- | :------- | :---------------------------- | +| MAINCOMPANYNUMBER | str | ✅ | "MainCompanyNumber" | +| ADDITIONALCOMPANYNUMBER | str | ✅ | "AdditionalCompanyNumber" | +| COMPANYNUMBER | str | ✅ | "CompanyNumber" | +| DIRECTNUMBER | str | ✅ | "DirectNumber" | +| COMPANYFAXNUMBER | str | ✅ | "CompanyFaxNumber" | +| FORWARDEDNUMBER | str | ✅ | "ForwardedNumber" | +| FORWARDEDCOMPANYNUMBER | str | ✅ | "ForwardedCompanyNumber" | +| CONTACTCENTERNUMBER | str | ✅ | "ContactCenterNumber" | +| CONFERENCINGNUMBER | str | ✅ | "ConferencingNumber" | +| NUMBERPOOL | str | ✅ | "NumberPool" | +| BUSINESSMOBILENUMBER | str | ✅ | "BusinessMobileNumber" | +| PARTNERBUSINESSMOBILENUMBER | str | ✅ | "PartnerBusinessMobileNumber" | +| INTEGRATIONNUMBER | str | ✅ | "IntegrationNumber" | + +# UserPhoneNumberInfoFeatures + +**Properties** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------- | +| CALLERID | str | ✅ | "CallerId" | +| SMSSENDER | str | ✅ | "SmsSender" | +| A2PSMSSENDER | str | ✅ | "A2PSmsSender" | +| MMSSENDER | str | ✅ | "MmsSender" | +| INTERNATIONALSMSSENDER | str | ✅ | "InternationalSmsSender" | +| DELEGATED | str | ✅ | "Delegated" | + + diff --git a/documentation/models/UserTemplates.md b/documentation/models/UserTemplates.md new file mode 100644 index 00000000..7250b489 --- /dev/null +++ b/documentation/models/UserTemplates.md @@ -0,0 +1,12 @@ +# UserTemplates + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :-------------------- | :------- | :--------------------------------------------- | +| records | List[TemplateInfo] | ✅ | List of user templates | +| navigation | PageNavigationModel | ✅ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ✅ | | +| uri | str | ❌ | Link to user templates resource | + + diff --git a/documentation/models/UserTransitionInfo.md b/documentation/models/UserTransitionInfo.md new file mode 100644 index 00000000..0c453a15 --- /dev/null +++ b/documentation/models/UserTransitionInfo.md @@ -0,0 +1,12 @@ +# UserTransitionInfo + +For NotActivated extensions only. Welcome email settings + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| send_welcome_emails_to_users | bool | ❌ | Specifies if a welcome/activation email is sent to the existing users during account confirmation | +| send_welcome_email | bool | ❌ | Specifies if a welcome/activation email is sent to the new users (within extension status changing from 'Unassigned' to 'NotActivated/Disabled') | + + diff --git a/documentation/models/UserVideoConfiguration.md b/documentation/models/UserVideoConfiguration.md new file mode 100644 index 00000000..fad4ed79 --- /dev/null +++ b/documentation/models/UserVideoConfiguration.md @@ -0,0 +1,33 @@ +# UserVideoConfiguration + +**Properties** + +| Name | Type | Required | Description | +| :---------------- | :-------------- | :------- | :------------------------------------------------------------------------------------ | +| provider | Provider | ❌ | Video provider of the user | +| user_license_type | UserLicenseType | ❌ | Specifies if the user is 'paid' (has meeting license) or 'free' (w/o meeting license) | + +# Provider + +Video provider of the user + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------- | +| RCMEETINGS | str | ✅ | "RCMeetings" | +| RCVIDEO | str | ✅ | "RCVideo" | +| NONE | str | ✅ | "None" | + +# UserLicenseType + +Specifies if the user is 'paid' (has meeting license) or 'free' (w/o meeting license) + +**Properties** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| PAID | str | ✅ | "Paid" | +| FREE | str | ✅ | "Free" | + + diff --git a/documentation/models/UtteranceInsightsObject.md b/documentation/models/UtteranceInsightsObject.md new file mode 100644 index 00000000..30785c82 --- /dev/null +++ b/documentation/models/UtteranceInsightsObject.md @@ -0,0 +1,15 @@ +# UtteranceInsightsObject + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------------- | :------- | :---------- | +| start | float | ✅ | | +| end | float | ✅ | | +| text | str | ✅ | | +| confidence | float | ❌ | | +| speaker_id | str | ❌ | | +| word_timings | List[WordTimingsUnit] | ❌ | | +| insights | List[UtteranceInsightsUnit] | ❌ | | + + diff --git a/documentation/models/UtteranceInsightsUnit.md b/documentation/models/UtteranceInsightsUnit.md new file mode 100644 index 00000000..835c1cf4 --- /dev/null +++ b/documentation/models/UtteranceInsightsUnit.md @@ -0,0 +1,19 @@ +# UtteranceInsightsUnit + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :------------------------ | :------- | :---------- | +| name | UtteranceInsightsUnitName | ✅ | | +| value | str | ✅ | | +| confidence | float | ❌ | | + +# UtteranceInsightsUnitName + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| EMOTION | str | ✅ | "Emotion" | + + diff --git a/documentation/models/UtteranceObject.md b/documentation/models/UtteranceObject.md new file mode 100644 index 00000000..10453c65 --- /dev/null +++ b/documentation/models/UtteranceObject.md @@ -0,0 +1,14 @@ +# UtteranceObject + +**Properties** + +| Name | Type | Required | Description | +| :----------- | :-------------------- | :------- | :---------- | +| start | float | ✅ | | +| end | float | ✅ | | +| text | str | ✅ | | +| confidence | float | ❌ | | +| speaker_id | str | ❌ | | +| word_timings | List[WordTimingsUnit] | ❌ | | + + diff --git a/documentation/models/ValidateMultipleSwitchesRequest.md b/documentation/models/ValidateMultipleSwitchesRequest.md new file mode 100644 index 00000000..418a1201 --- /dev/null +++ b/documentation/models/ValidateMultipleSwitchesRequest.md @@ -0,0 +1,9 @@ +# ValidateMultipleSwitchesRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------- | :------- | :---------- | +| records | List[SwitchInfo] | ❌ | | + + diff --git a/documentation/models/ValidateMultipleSwitchesResponse.md b/documentation/models/ValidateMultipleSwitchesResponse.md new file mode 100644 index 00000000..05feeff8 --- /dev/null +++ b/documentation/models/ValidateMultipleSwitchesResponse.md @@ -0,0 +1,9 @@ +# ValidateMultipleSwitchesResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------- | :------- | :---------- | +| records | List[SwitchValidated] | ❌ | | + + diff --git a/documentation/models/ValidateMultipleWirelessPointsRequest.md b/documentation/models/ValidateMultipleWirelessPointsRequest.md new file mode 100644 index 00000000..1cd31f0c --- /dev/null +++ b/documentation/models/ValidateMultipleWirelessPointsRequest.md @@ -0,0 +1,9 @@ +# ValidateMultipleWirelessPointsRequest + +**Properties** + +| Name | Type | Required | Description | +| :------ | :---------------------- | :------- | :---------- | +| records | List[WirelessPointInfo] | ❌ | | + + diff --git a/documentation/models/ValidateMultipleWirelessPointsResponse.md b/documentation/models/ValidateMultipleWirelessPointsResponse.md new file mode 100644 index 00000000..628134bc --- /dev/null +++ b/documentation/models/ValidateMultipleWirelessPointsResponse.md @@ -0,0 +1,9 @@ +# ValidateMultipleWirelessPointsResponse + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------- | :------- | :---------- | +| records | List[WirelessPointValidated] | ❌ | | + + diff --git a/documentation/models/ValidationError.md b/documentation/models/ValidationError.md new file mode 100644 index 00000000..8b1ea637 --- /dev/null +++ b/documentation/models/ValidationError.md @@ -0,0 +1,11 @@ +# ValidationError + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--- | :------- | :------------------------ | +| error_code | str | ❌ | Error code | +| message | str | ❌ | Error message | +| parameter_name | str | ❌ | Name of invalid parameter | + + diff --git a/documentation/models/ValueType.md b/documentation/models/ValueType.md new file mode 100644 index 00000000..a6423140 --- /dev/null +++ b/documentation/models/ValueType.md @@ -0,0 +1,13 @@ +# ValueType + +Unit of the result value + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| PERCENT | str | ✅ | "Percent" | +| SECONDS | str | ✅ | "Seconds" | +| INSTANCES | str | ✅ | "Instances" | + + diff --git a/documentation/models/VariableAnswerModel.md b/documentation/models/VariableAnswerModel.md new file mode 100644 index 00000000..25e7635c --- /dev/null +++ b/documentation/models/VariableAnswerModel.md @@ -0,0 +1,10 @@ +# VariableAnswerModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------ | +| question_id | str | ✅ | ID of the custom question | +| answer_text | str | ✅ | Answer text | + + diff --git a/documentation/models/VerticalAlignment.md b/documentation/models/VerticalAlignment.md new file mode 100644 index 00000000..ea9ed9b4 --- /dev/null +++ b/documentation/models/VerticalAlignment.md @@ -0,0 +1,15 @@ +# VerticalAlignment + +Describes how the image should be aligned if it must be cropped or if using repeat fill mode + +# VerticalAlignment_1 + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| TOP | str | ✅ | "top" | +| CENTER | str | ✅ | "center" | +| BOTTOM | str | ✅ | "bottom" | + + diff --git a/documentation/models/VerticalContentAlignment.md b/documentation/models/VerticalContentAlignment.md new file mode 100644 index 00000000..cf5583ae --- /dev/null +++ b/documentation/models/VerticalContentAlignment.md @@ -0,0 +1,15 @@ +# VerticalContentAlignment + +Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified + +# VerticalContentAlignment_1 + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :---------- | +| TOP | str | ✅ | "top" | +| CENTER | str | ✅ | "center" | +| BOTTOM | str | ✅ | "bottom" | + + diff --git a/documentation/models/Visibility.md b/documentation/models/Visibility.md new file mode 100644 index 00000000..44c0d7c3 --- /dev/null +++ b/documentation/models/Visibility.md @@ -0,0 +1,14 @@ +# Visibility + +Visibility of an emergency response location. If `Private` +is set, then location is visible only for the restricted number of users, +specified in `owners` array + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| PRIVATE | str | ✅ | "Private" | +| PUBLIC | str | ✅ | "Public" | + + diff --git a/documentation/models/VisibilityType.md b/documentation/models/VisibilityType.md new file mode 100644 index 00000000..6bbb87bb --- /dev/null +++ b/documentation/models/VisibilityType.md @@ -0,0 +1,12 @@ +# VisibilityType + +Specifies if a template is available on a user (Personal) or a company (Company) level + +**Properties** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| COMPANY | str | ✅ | "Company" | +| PERSONAL | str | ✅ | "Personal" | + + diff --git a/documentation/models/VoicemailInfo.md b/documentation/models/VoicemailInfo.md new file mode 100644 index 00000000..41f90e4d --- /dev/null +++ b/documentation/models/VoicemailInfo.md @@ -0,0 +1,12 @@ +# VoicemailInfo + +Specifies whether to take a voicemail and who should do it + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :------------ | :------- | :--------------------------------------------------- | +| enabled | bool | ❌ | If `true` then voicemails are allowed to be received | +| recipient | RecipientInfo | ❌ | Recipient data | + + diff --git a/documentation/models/VoicemailsInfo.md b/documentation/models/VoicemailsInfo.md new file mode 100644 index 00000000..ea722770 --- /dev/null +++ b/documentation/models/VoicemailsInfo.md @@ -0,0 +1,15 @@ +# VoicemailsInfo + +**Properties** + +| Name | Type | Required | Description | +| :--------------------------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | +| notify_by_email | bool | ❌ | Email notification flag | +| notify_by_sms | bool | ❌ | SMS notification flag | +| advanced_email_addresses | List[str] | ❌ | List of recipient email addresses for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| advanced_sms_email_addresses | List[str] | ❌ | List of recipient phone numbers for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only | +| include_attachment | bool | ❌ | Indicates whether voicemail should be attached to email | +| include_transcription | bool | ❌ | Specifies whether to add voicemail transcription or not | +| mark_as_read | bool | ❌ | Indicates whether a voicemail should be automatically marked as read | + + diff --git a/documentation/models/WcsHostModel.md b/documentation/models/WcsHostModel.md new file mode 100644 index 00000000..f0e28d07 --- /dev/null +++ b/documentation/models/WcsHostModel.md @@ -0,0 +1,11 @@ +# WcsHostModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :---------- | +| user_id | str | ✅ | User ID | +| account_id | str | ✅ | Account ID | +| linked_user | RcwDomainUserModel | ❌ | | + + diff --git a/documentation/models/WcsInviteeListResource.md b/documentation/models/WcsInviteeListResource.md new file mode 100644 index 00000000..5cbd9c7b --- /dev/null +++ b/documentation/models/WcsInviteeListResource.md @@ -0,0 +1,10 @@ +# WcsInviteeListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :-------------------- | :------- | :---------- | +| records | List[InviteeResource] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/WcsSessionGlobalListResource.md b/documentation/models/WcsSessionGlobalListResource.md new file mode 100644 index 00000000..45d84a92 --- /dev/null +++ b/documentation/models/WcsSessionGlobalListResource.md @@ -0,0 +1,10 @@ +# WcsSessionGlobalListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--------------------------- | :------- | :---------- | +| records | List[SessionGlobalListEntry] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/WcsSessionResource.md b/documentation/models/WcsSessionResource.md new file mode 100644 index 00000000..6d1efca6 --- /dev/null +++ b/documentation/models/WcsSessionResource.md @@ -0,0 +1,26 @@ +# WcsSessionResource + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :-------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| scheduled_start_time | str | ✅ | Session scheduled start time. | +| scheduled_duration | int | ✅ | The duration of the Session in seconds. | +| time_zone | str | ✅ | IANA-compatible time zone name (see https://www.iana.org/time-zones). | +| id\_ | str | ❌ | Internal object ID | +| localized_time_zone_description | str | ❌ | Localized time zone description. | +| panel_join_time_offset | int | ❌ | The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync | +| title | str | ❌ | Session title. Can be left blank - then Webinar title should be used for presentation. | +| description | str | ❌ | User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation. | +| status | WcsSessionStatusModel | ❌ | Session status (for the purposes of Configuration service) | +| host_join_uri | str | ❌ | The URI to join the webinar as a host | +| locale_code | str | ❌ | Session locale code. Can't be blank or null | +| video_bridge_id | str | ❌ | The RCV bridge id | +| video_bridge_password | str | ❌ | The RCV bridge password. Returned only if requested by Host/Co-host/Panelist and a password for the bridge is set. | +| video_bridge_pstn_password | str | ❌ | The RCV bridge PSTN password. Returned only if requested by Host/Co-host/Panelist and a PSTN password for the bridge is set. | +| attendee_join_uri | str | ❌ | The URI for attendees to join the Webinar (if it is a public webinar) | +| has_unsent_invites | bool | ❌ | Calculated attribute indicating if there are any unsent/deferred invites to session participants | + + diff --git a/documentation/models/WcsSessionStatusModel.md b/documentation/models/WcsSessionStatusModel.md new file mode 100644 index 00000000..c8be1cf4 --- /dev/null +++ b/documentation/models/WcsSessionStatusModel.md @@ -0,0 +1,13 @@ +# WcsSessionStatusModel + +Session status (for the purposes of Configuration service) + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| SCHEDULED | str | ✅ | "Scheduled" | +| ACTIVE | str | ✅ | "Active" | +| FINISHED | str | ✅ | "Finished" | + + diff --git a/documentation/models/WcsSessionWithLocaleCodeModel.md b/documentation/models/WcsSessionWithLocaleCodeModel.md new file mode 100644 index 00000000..428f0b02 --- /dev/null +++ b/documentation/models/WcsSessionWithLocaleCodeModel.md @@ -0,0 +1,18 @@ +# WcsSessionWithLocaleCodeModel + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :-------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| scheduled_start_time | str | ✅ | Session scheduled start time. | +| scheduled_duration | int | ✅ | The duration of the Session in seconds. | +| time_zone | str | ✅ | IANA-compatible time zone name (see https://www.iana.org/time-zones). | +| localized_time_zone_description | str | ❌ | Localized time zone description. | +| panel_join_time_offset | int | ❌ | The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync | +| title | str | ❌ | Session title. Can be left blank - then Webinar title should be used for presentation. | +| description | str | ❌ | User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation. | +| status | WcsSessionStatusModel | ❌ | Session status (for the purposes of Configuration service) | +| host_join_uri | str | ❌ | The URI to join the webinar as a host | +| locale_code | str | ❌ | Session locale code. Can't be blank or null | + + diff --git a/documentation/models/WcsWebinarRefModel.md b/documentation/models/WcsWebinarRefModel.md new file mode 100644 index 00000000..efa9148b --- /dev/null +++ b/documentation/models/WcsWebinarRefModel.md @@ -0,0 +1,12 @@ +# WcsWebinarRefModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :----------------- | :------- | :------------------------------------------ | +| title | str | ✅ | Webinar title | +| id\_ | str | ❌ | Internal object ID | +| description | str | ❌ | User-friendly description of the Webinar | +| host | RcwLinkedUserModel | ❌ | The internal IDs of RC-authenticated users. | + + diff --git a/documentation/models/WcsWebinarResource.md b/documentation/models/WcsWebinarResource.md new file mode 100644 index 00000000..b40fa2c4 --- /dev/null +++ b/documentation/models/WcsWebinarResource.md @@ -0,0 +1,15 @@ +# WcsWebinarResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :---------------------- | :------- | :---------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| host | WcsHostModel | ✅ | | +| id\_ | str | ❌ | Internal object ID | +| title | str | ❌ | Webinar title | +| description | str | ❌ | User-friendly description of the Webinar | +| settings | WcsWebinarSettingsModel | ❌ | Various settings which define behavior of this Webinar's Sessions | + + diff --git a/documentation/models/WcsWebinarSettingsModel.md b/documentation/models/WcsWebinarSettingsModel.md new file mode 100644 index 00000000..ace75ba8 --- /dev/null +++ b/documentation/models/WcsWebinarSettingsModel.md @@ -0,0 +1,70 @@ +# WcsWebinarSettingsModel + +Various settings which define behavior of this Webinar's Sessions + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :--------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | +| recording_enabled | bool | ❌ | Indicates if recording is enabled (if false all other recording settings cannot be enabled) | +| auto_record | bool | ❌ | Indicates if recording should start automatically when a Webinar goes live | +| recording_sharing_enabled | bool | ❌ | Indicates if recording can be shared (this setting is read-only at webinar level) | +| recording_download_enabled | bool | ❌ | Indicates if recording can be downloaded (this setting is read-only at webinar level) | +| recording_deletion_enabled | bool | ❌ | DEPRECATED AND REPLACED BY 'pastSessionDeletionEnabled' setting. Indicates if recording can be deleted (this setting is read-only at webinar level) | +| past_session_deletion_enabled | bool | ❌ | Indicates if deletion of past session along with its artifacts is enabled for Host. This setting is read-only at webinar level | +| panelist_waiting_room | bool | ❌ | Indicates if Panelists should be places to waiting room after joining | +| panelist_video_enabled | bool | ❌ | Indicates if Panelists' video should be 'on' by default | +| panelist_screen_sharing_enabled | bool | ❌ | Indicates if Panelists' screen sharing should be 'on' by default | +| panelist_mute_control_enabled | bool | ❌ | Indicates if Panelists can mute/unmute themselves by default | +| panelist_authentication | WcsWebinarSettingsModelPanelistAuthentication | ❌ | Indicates if Panelists have to be authenticated users | +| attendee_authentication | WcsWebinarSettingsModelAttendeeAuthentication | ❌ | Indicates if attendees have to be authenticated users | +| artifacts_access_authentication | WcsWebinarSettingsModelArtifactsAccessAuthentication | ❌ | Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. | +| pstn_enabled | bool | ❌ | Indicates if dial-in PSTN audio option is enabled for Panelists | +| password | str | ❌ | Webinar password. If company-level "passwordEnabled" is true and "password" is null / omitted, the backend generates the password | +| qna_enabled | bool | ❌ | Indicates if Q&A is enabled for the webinar (if false all other Q&A settings cannot be enabled) | +| qna_anonymous_enabled | bool | ❌ | Indicates if anonymous Q&A is enabled for the webinar | +| polls_enabled | bool | ❌ | Indicates if polls are enabled for the webinar (if false all other polls settings cannot be enabled) | +| polls_anonymous_enabled | bool | ❌ | Indicates if anonymous poll answers are enabled for the webinar | +| registration_enabled | bool | ❌ | Indicates if a registration is enabled for the webinar (if false all other registration settings are ignored) | +| post_webinar_redirect_uri | str | ❌ | URI to redirect users after the webinar | +| external_livestream_enabled | bool | ❌ | Indicates if livestreaming to external streaming provider is enabled | +| moderated_qna_enabled | bool | ❌ | Indicate if the moderated Q&A enabled for webinar | + +# WcsWebinarSettingsModelPanelistAuthentication + +Indicates if Panelists have to be authenticated users + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + +# WcsWebinarSettingsModelAttendeeAuthentication + +Indicates if attendees have to be authenticated users + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + +# WcsWebinarSettingsModelArtifactsAccessAuthentication + +Indicates who can access webinar artifacts. Applies to recordings at present. +Applicable to other artifacts such as Q&A, Polls in the future. + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + + diff --git a/documentation/models/WebSocketDeliveryMode.md b/documentation/models/WebSocketDeliveryMode.md new file mode 100644 index 00000000..546627c3 --- /dev/null +++ b/documentation/models/WebSocketDeliveryMode.md @@ -0,0 +1,19 @@ +# WebSocketDeliveryMode + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------ | +| transport_type | WebSocketDeliveryModeTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | + +# WebSocketDeliveryModeTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| WEBSOCKET | str | ✅ | "WebSocket" | + + diff --git a/documentation/models/WebhookDeliveryMode.md b/documentation/models/WebhookDeliveryMode.md new file mode 100644 index 00000000..cdc1e834 --- /dev/null +++ b/documentation/models/WebhookDeliveryMode.md @@ -0,0 +1,31 @@ +# WebhookDeliveryMode + +**Properties** + +| Name | Type | Required | Description | +| :------------- | :------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| transport_type | WebhookDeliveryModeTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| address | str | ✅ | The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. | +| encryption | WebhookDeliveryModeEncryption | ✅ | Specifies if notification messages will be encrypted or not. | + +# WebhookDeliveryModeTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| WEBHOOK | str | ✅ | "WebHook" | + +# WebhookDeliveryModeEncryption + +Specifies if notification messages will be encrypted or not. + +**Properties** + +| Name | Type | Required | Description | +| :---- | :--- | :------- | :---------- | +| FALSE | str | ✅ | "false" | + + diff --git a/documentation/models/WebhookDeliveryModeRequest.md b/documentation/models/WebhookDeliveryModeRequest.md new file mode 100644 index 00000000..19bbda0f --- /dev/null +++ b/documentation/models/WebhookDeliveryModeRequest.md @@ -0,0 +1,21 @@ +# WebhookDeliveryModeRequest + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| transport_type | WebhookDeliveryModeRequestTransportType | ✅ | The transport type for this subscription, or the channel by which an app should be notified of an event | +| address | str | ✅ | The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. | +| verification_token | str | ❌ | An optional validation token used to verify the authenticity of the incoming webhook. Applicable only for the `WebHook` transport type. | + +# WebhookDeliveryModeRequestTransportType + +The transport type for this subscription, or the channel by which an app should be notified of an event + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| WEBHOOK | str | ✅ | "WebHook" | + + diff --git a/documentation/models/WebinarBaseModel.md b/documentation/models/WebinarBaseModel.md new file mode 100644 index 00000000..fd7893db --- /dev/null +++ b/documentation/models/WebinarBaseModel.md @@ -0,0 +1,11 @@ +# WebinarBaseModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---------------------- | :------- | :---------------------------------------------------------------- | +| title | str | ❌ | Webinar title | +| description | str | ❌ | User-friendly description of the Webinar | +| settings | WcsWebinarSettingsModel | ❌ | Various settings which define behavior of this Webinar's Sessions | + + diff --git a/documentation/models/WebinarCreationRequest.md b/documentation/models/WebinarCreationRequest.md new file mode 100644 index 00000000..88b0c00b --- /dev/null +++ b/documentation/models/WebinarCreationRequest.md @@ -0,0 +1,12 @@ +# WebinarCreationRequest + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :---------------------- | :------- | :---------------------------------------------------------------- | +| title | str | ✅ | Webinar title | +| description | str | ❌ | User-friendly description of the Webinar | +| settings | WcsWebinarSettingsModel | ❌ | Various settings which define behavior of this Webinar's Sessions | +| host | RcwLinkedUserModel | ❌ | The internal IDs of RC-authenticated users. | + + diff --git a/documentation/models/WebinarListResource.md b/documentation/models/WebinarListResource.md new file mode 100644 index 00000000..bfd74124 --- /dev/null +++ b/documentation/models/WebinarListResource.md @@ -0,0 +1,10 @@ +# WebinarListResource + +**Properties** + +| Name | Type | Required | Description | +| :------ | :----------------------- | :------- | :---------- | +| records | List[WcsWebinarResource] | ✅ | | +| paging | RcwPagingModel | ✅ | | + + diff --git a/documentation/models/WebinarRefModel.md b/documentation/models/WebinarRefModel.md new file mode 100644 index 00000000..5e844f7b --- /dev/null +++ b/documentation/models/WebinarRefModel.md @@ -0,0 +1,12 @@ +# WebinarRefModel + +**Properties** + +| Name | Type | Required | Description | +| :---------- | :-------- | :------- | :--------------------------------------- | +| title | str | ✅ | Webinar title | +| host | HostModel | ✅ | | +| id\_ | str | ❌ | Internal object ID | +| description | str | ❌ | User-friendly description of the Webinar | + + diff --git a/documentation/models/WebinarResource.md b/documentation/models/WebinarResource.md new file mode 100644 index 00000000..4758fe9b --- /dev/null +++ b/documentation/models/WebinarResource.md @@ -0,0 +1,15 @@ +# WebinarResource + +**Properties** + +| Name | Type | Required | Description | +| :----------------- | :------------------- | :------- | :---------------------------------------------------------------- | +| creation_time | str | ✅ | Object creation time | +| last_modified_time | str | ✅ | Object last modification time | +| title | str | ✅ | Webinar title | +| host | HostModel | ✅ | | +| id\_ | str | ❌ | Internal object ID | +| description | str | ❌ | User-friendly description of the Webinar | +| settings | WebinarSettingsModel | ❌ | Various settings which define behavior of this Webinar's Sessions | + + diff --git a/documentation/models/WebinarSettingsModel.md b/documentation/models/WebinarSettingsModel.md new file mode 100644 index 00000000..f6bc9bad --- /dev/null +++ b/documentation/models/WebinarSettingsModel.md @@ -0,0 +1,70 @@ +# WebinarSettingsModel + +Various settings which define behavior of this Webinar's Sessions + +**Properties** + +| Name | Type | Required | Description | +| :------------------------------ | :------------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| recording_enabled | bool | ❌ | Indicates if recording is enabled (if false all other recording settings cannot be enabled) | +| auto_record | bool | ❌ | Indicates if recording should start automatically when a Webinar goes live | +| recording_sharing_enabled | bool | ❌ | Indicates if recording can be shared | +| recording_download_enabled | bool | ❌ | Indicates if recording can be downloaded | +| recording_deletion_enabled | bool | ❌ | DEPRECATED AND REPLACED BY 'pastSessionDeletionEnabled' setting. Indicates if recording can be deleted (this setting is read-only at webinar/session level) | +| past_session_deletion_enabled | bool | ❌ | Indicates if deletion of past session along with its artifacts is enabled for host. This setting is read-only at webinar level | +| panelist_waiting_room | bool | ❌ | Indicates if Panelists should be places to waiting room after joining | +| panelist_video_enabled | bool | ❌ | Indicates if Panelists' video should be 'on' by default | +| panelist_screen_sharing_enabled | bool | ❌ | Indicates if Panelists' screen sharing should be 'on' by default | +| panelist_mute_control_enabled | bool | ❌ | Indicates if Panelists can mute/unmute themselves by default | +| panelist_authentication | WebinarSettingsModelPanelistAuthentication | ❌ | Indicates if Panelists have to be authenticated users | +| attendee_authentication | WebinarSettingsModelAttendeeAuthentication | ❌ | Indicates if attendees have to be authenticated users | +| artifacts_access_authentication | WebinarSettingsModelArtifactsAccessAuthentication | ❌ | Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. | +| pstn_enabled | bool | ❌ | Indicates if dial-in PSTN audio option is enabled by default | +| password | str | ❌ | Webinar password | +| qna_enabled | bool | ❌ | Indicates if Q&A is enabled for the webinar (if false all other Q&A settings cannot be enabled) | +| qna_anonymous_enabled | bool | ❌ | Indicates if anonymous Q&A is enabled for the webinar | +| moderated_qna_enabled | bool | ❌ | Indicate if the moderated Q&A enabled for webinar | +| polls_enabled | bool | ❌ | Indicates if polls are enabled for the webinar (if false all other polls settings cannot be enabled) | +| polls_anonymous_enabled | bool | ❌ | Indicates if anonymous poll answers are enabled for the webinar | +| registration_enabled | bool | ❌ | Indicates if a registration is enabled for the webinar (if false all other registration settings are ignored) | +| post_webinar_redirect_uri | str | ❌ | URI to redirect users after the webinar | +| external_livestream_enabled | bool | ❌ | Indicates if livestreaming to external streaming provider is enabled | + +# WebinarSettingsModelPanelistAuthentication + +Indicates if Panelists have to be authenticated users + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + +# WebinarSettingsModelAttendeeAuthentication + +Indicates if attendees have to be authenticated users + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + +# WebinarSettingsModelArtifactsAccessAuthentication + +Indicates who can access webinar artifacts. Applies to recordings at present. +Applicable to other artifacts such as Q&A, Polls in the future. + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------- | +| GUEST | str | ✅ | "Guest" | +| AUTHENTICATEDUSER | str | ✅ | "AuthenticatedUser" | +| AUTHENTICATEDCOWORKER | str | ✅ | "AuthenticatedCoworker" | + + diff --git a/documentation/models/WeekDay.md b/documentation/models/WeekDay.md new file mode 100644 index 00000000..3a487eef --- /dev/null +++ b/documentation/models/WeekDay.md @@ -0,0 +1,17 @@ +# WeekDay + +This field is used only if you're scheduling a recurring meeting of type `3` to state a specific day in a week when the monthly meeting should recur; it works together with `MonthlyByWeek` field. The values are: 1 - Sunday; 2 - Monday; 3 - Tuesday; 4 - Wednesday; 5 - Thursday; 6 - Friday; 7- Saturday + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------- | +| SUNDAY | str | ✅ | "Sunday" | +| MONDAY | str | ✅ | "Monday" | +| TUESDAY | str | ✅ | "Tuesday" | +| WEDNESDAY | str | ✅ | "Wednesday" | +| THURSDAY | str | ✅ | "Thursday" | +| FRIDAY | str | ✅ | "Friday" | +| SATURDAY | str | ✅ | "Saturday" | + + diff --git a/documentation/models/WeeklyScheduleInfo.md b/documentation/models/WeeklyScheduleInfo.md new file mode 100644 index 00000000..70cb5670 --- /dev/null +++ b/documentation/models/WeeklyScheduleInfo.md @@ -0,0 +1,17 @@ +# WeeklyScheduleInfo + +Weekly schedule + +**Properties** + +| Name | Type | Required | Description | +| :-------- | :----------------- | :------- | :---------------------------------- | +| monday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| tuesday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| wednesday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| thursday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| friday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| saturday | List[TimeInterval] | ❌ | Time intervals for a particular day | +| sunday | List[TimeInterval] | ❌ | Time intervals for a particular day | + + diff --git a/documentation/models/WirelessPointInfo.md b/documentation/models/WirelessPointInfo.md new file mode 100644 index 00000000..197ae7e9 --- /dev/null +++ b/documentation/models/WirelessPointInfo.md @@ -0,0 +1,16 @@ +# WirelessPointInfo + +**Properties** + +| Name | Type | Required | Description | +| :-------------------- | :--------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| bssid | str | ✅ | Unique 48-bit identifier of the wireless access point that follows MAC address conventions | +| name | str | ✅ | Wireless access point name | +| emergency_address | EmergencyAddressInfo | ✅ | | +| uri | str | ❌ | Link to the wireless point resource | +| id\_ | str | ❌ | Internal identifier of a wireless point | +| site | EmergencyAddressAutoUpdateSiteInfo | ❌ | | +| emergency_location | ErlLocationInfo | ❌ | Emergency response location information | +| emergency_location_id | str | ❌ | Deprecated. Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned | + + diff --git a/documentation/models/WirelessPointValidated.md b/documentation/models/WirelessPointValidated.md new file mode 100644 index 00000000..b11e2a4f --- /dev/null +++ b/documentation/models/WirelessPointValidated.md @@ -0,0 +1,23 @@ +# WirelessPointValidated + +**Properties** + +| Name | Type | Required | Description | +| :----- | :--------------------------- | :------- | :----------------------------------------------------------------------------------------- | +| id\_ | str | ❌ | Internal identifier of a wireless point | +| bssid | str | ❌ | Unique 48-bit identifier of the wireless access point that follows MAC address conventions | +| status | WirelessPointValidatedStatus | ❌ | Validation result status | +| errors | List[ValidationError] | ❌ | | + +# WirelessPointValidatedStatus + +Validation result status + +**Properties** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------- | +| VALID | str | ✅ | "Valid" | +| INVALID | str | ✅ | "Invalid" | + + diff --git a/documentation/models/WirelessPointsList.md b/documentation/models/WirelessPointsList.md new file mode 100644 index 00000000..1f32f84f --- /dev/null +++ b/documentation/models/WirelessPointsList.md @@ -0,0 +1,12 @@ +# WirelessPointsList + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---------------------- | :------- | :-------------------------------------------------------- | +| uri | str | ❌ | Link to a wireless points resource | +| records | List[WirelessPointInfo] | ❌ | List of wireless points with assigned emergency addresses | +| navigation | PageNavigationModel | ❌ | Links to other pages of the current result set | +| paging | EnumeratedPagingModel | ❌ | | + + diff --git a/documentation/models/WordSegment.md b/documentation/models/WordSegment.md new file mode 100644 index 00000000..5952ccb4 --- /dev/null +++ b/documentation/models/WordSegment.md @@ -0,0 +1,13 @@ +# WordSegment + +**Properties** + +| Name | Type | Required | Description | +| :--------- | :---- | :------- | :---------- | +| start | float | ✅ | | +| end | float | ✅ | | +| word | str | ✅ | | +| speaker_id | str | ❌ | | +| confidence | float | ❌ | | + + diff --git a/documentation/models/WordTimingsUnit.md b/documentation/models/WordTimingsUnit.md new file mode 100644 index 00000000..eb0caefc --- /dev/null +++ b/documentation/models/WordTimingsUnit.md @@ -0,0 +1,11 @@ +# WordTimingsUnit + +**Properties** + +| Name | Type | Required | Description | +| :---- | :---- | :------- | :---------- | +| start | float | ❌ | | +| end | float | ❌ | | +| word | str | ❌ | | + + diff --git a/documentation/services/AdaptiveCardsService.md b/documentation/services/AdaptiveCardsService.md new file mode 100644 index 00000000..c2b1aac4 --- /dev/null +++ b/documentation/services/AdaptiveCardsService.md @@ -0,0 +1,275 @@ +# AdaptiveCardsService + +A list of all methods in the `AdaptiveCardsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------- | :--------------------------------------------------------- | +| [create_glip_adaptive_card_new](#create_glip_adaptive_card_new) | Creates a new adaptive card in the chat specified in path. | +| [get_glip_adaptive_card_new](#get_glip_adaptive_card_new) | Returns adaptive card(s) with given id(s). | +| [update_glip_adaptive_card_new](#update_glip_adaptive_card_new) | Updates an adaptive card. | +| [delete_glip_adaptive_card_new](#delete_glip_adaptive_card_new) | Deletes an adaptive card by ID. | + +## create_glip_adaptive_card_new + +Creates a new adaptive card in the chat specified in path. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/adaptive-cards` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :---------------------------- | +| request_body | [AdaptiveCardRequest](../models/AdaptiveCardRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a chat | + +**Return Type** + +`AdaptiveCardShortInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AdaptiveCardRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AdaptiveCardRequest( + type_="AdaptiveCard", + version="version", + body=[ + { + "type_": "Container", + "items": [ + { + "type_": "TextBlock", + "text": "text", + "weight": "weight", + "size": "size", + "columns": [ + { + "type_": "type", + "width": "width", + "items": [ + { + "type_": "type", + "url": "url", + "size": "size", + "style": "style", + "wrap": False, + "spacing": "spacing", + "text": "text", + "is_subtle": False + } + ] + } + ] + } + ] + } + ], + actions=[ + { + "type_": "Action.ShowCard", + "title": "title", + "card": { + "type_": "AdaptiveCard", + "body": [ + { + "type_": "Input.Text", + "id_": "id", + "is_multiline": False, + "placeholder": "placeholder" + } + ] + }, + "url": "url" + } + ], + select_action={ + "type_": "Action.Submit" + }, + fallback_text="fallbackText", + background_image="proiden", + min_height="50px", + speak="speak", + lang="en", + vertical_content_alignment="top" +) + +result = sdk.adaptive_cards.create_glip_adaptive_card_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + +## get_glip_adaptive_card_new + +Returns adaptive card(s) with given id(s). + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/adaptive-cards/{cardId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :-------- | :------- | :-------------------------------------------------------------------------------------- | +| card_id | List[str] | ✅ | Internal identifier of an adaptive card, or comma separated list of adaptive cards IDs. | + +**Return Type** + +`AdaptiveCardInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +card_id=[ + "cardId" +] + +result = sdk.adaptive_cards.get_glip_adaptive_card_new(card_id=card_id) + +print(result) +``` + +## update_glip_adaptive_card_new + +Updates an adaptive card. + +- HTTP Method: `PUT` +- Endpoint: `/team-messaging/v1/adaptive-cards/{cardId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :-------------------------------------- | +| request_body | [AdaptiveCardRequest](../models/AdaptiveCardRequest.md) | ✅ | The request body. | +| card_id | str | ✅ | Internal identifier of an adaptive card | + +**Return Type** + +`AdaptiveCardShortInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AdaptiveCardRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AdaptiveCardRequest( + type_="AdaptiveCard", + version="version", + body=[ + { + "type_": "Container", + "items": [ + { + "type_": "TextBlock", + "text": "text", + "weight": "weight", + "size": "size", + "columns": [ + { + "type_": "type", + "width": "width", + "items": [ + { + "type_": "type", + "url": "url", + "size": "size", + "style": "style", + "wrap": False, + "spacing": "spacing", + "text": "text", + "is_subtle": False + } + ] + } + ] + } + ] + } + ], + actions=[ + { + "type_": "Action.ShowCard", + "title": "title", + "card": { + "type_": "AdaptiveCard", + "body": [ + { + "type_": "Input.Text", + "id_": "id", + "is_multiline": False, + "placeholder": "placeholder" + } + ] + }, + "url": "url" + } + ], + select_action={ + "type_": "Action.Submit" + }, + fallback_text="fallbackText", + background_image="proiden", + min_height="50px", + speak="speak", + lang="en", + vertical_content_alignment="top" +) + +result = sdk.adaptive_cards.update_glip_adaptive_card_new( + request_body=request_body, + card_id="cardId" +) + +print(result) +``` + +## delete_glip_adaptive_card_new + +Deletes an adaptive card by ID. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/adaptive-cards/{cardId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------ | +| card_id | str | ✅ | Adaptive Card ID to be deleted. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.adaptive_cards.delete_glip_adaptive_card_new(card_id="cardId") + +print(result) +``` + + diff --git a/documentation/services/ApiInfoService.md b/documentation/services/ApiInfoService.md new file mode 100644 index 00000000..14dc0f99 --- /dev/null +++ b/documentation/services/ApiInfoService.md @@ -0,0 +1,68 @@ +# ApiInfoService + +A list of all methods in the `ApiInfoService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------- | :---------------------------------------------- | +| [read_api_versions](#read_api_versions) | Returns current API version(s) and server info. | +| [read_api_version](#read_api_version) | Returns current API version info by apiVersion. | + +## read_api_versions + +Returns current API version(s) and server info. + +- HTTP Method: `GET` +- Endpoint: `/restapi` + +**Return Type** + +`ApiVersionsList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.api_info.read_api_versions() + +print(result) +``` + +## read_api_version + +Returns current API version info by apiVersion. + +- HTTP Method: `GET` +- Endpoint: `/restapi/{apiVersion}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :---------------------------------------------- | +| api_version | str | ✅ | API version to be requested, for example 'v1.0' | + +**Return Type** + +`ApiVersionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.api_info.read_api_version(api_version="apiVersion") + +print(result) +``` + + diff --git a/documentation/services/AudioService.md b/documentation/services/AudioService.md new file mode 100644 index 00000000..1ca8c019 --- /dev/null +++ b/documentation/services/AudioService.md @@ -0,0 +1,357 @@ +# AudioService + +A list of all methods in the `AudioService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| [cai_enrollments_list](#cai_enrollments_list) | Returns the List of Enrolled Speakers | +| [cai_enrollments_create](#cai_enrollments_create) | Creates Enrollment for the provided Speaker. | +| [cai_enrollments_get](#cai_enrollments_get) | Get The Status of Enrollment for the provided Speaker. | +| [cai_enrollments_update](#cai_enrollments_update) | Add newer audio data to improve an existing speaker enrollment | +| [cai_enrollments_delete](#cai_enrollments_delete) | Delete The Enrollment for the provided Speaker. | +| [cai_speech_to_text](#cai_speech_to_text) | Returns Speech to Text Conversion to the provided webhook URI. | +| [cai_speaker_diarize](#cai_speaker_diarize) | Identifies who said what. Speaker diarization will identify the speaker for each segment so you can tell who spoke the sentence, paragraph, or phrase. | +| [cai_speaker_identify](#cai_speaker_identify) | Returns Speaker Identification to the provided webhook URI. | + +## cai_enrollments_list + +Returns the List of Enrolled Speakers + +- HTTP Method: `GET` +- Endpoint: `/ai/audio/v1/enrollments` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------------------------------------------------------- | +| partial | bool | ✅ | Indicates if partially enrolled speakers should be returned | +| per_page | int | ✅ | Number of enrollments to be returned per page | +| page | int | ✅ | Page number to be returned | + +**Return Type** + +`ListEnrolledSpeakers` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.audio.cai_enrollments_list( + partial=True, + per_page=7, + page=7 +) + +print(result) +``` + +## cai_enrollments_create + +Creates Enrollment for the provided Speaker. + +- HTTP Method: `POST` +- Endpoint: `/ai/audio/v1/enrollments` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------- | :------- | :---------------- | +| request_body | [EnrollmentInput](../models/EnrollmentInput.md) | ✅ | The request body. | + +**Return Type** + +`EnrollmentStatus` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EnrollmentInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EnrollmentInput( + encoding="Mpeg", + language_code="en-US", + content="base64EncodedAudioInput", + speaker_id="JohnDoe" +) + +result = sdk.audio.cai_enrollments_create(request_body=request_body) + +print(result) +``` + +## cai_enrollments_get + +Get The Status of Enrollment for the provided Speaker. + +- HTTP Method: `GET` +- Endpoint: `/ai/audio/v1/enrollments/{speakerId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------------- | +| speaker_id | str | ✅ | Speaker identifier of enrolled speaker | + +**Return Type** + +`EnrollmentStatus` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.audio.cai_enrollments_get(speaker_id="speakerId") + +print(result) +``` + +## cai_enrollments_update + +Add newer audio data to improve an existing speaker enrollment + +- HTTP Method: `PATCH` +- Endpoint: `/ai/audio/v1/enrollments/{speakerId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :------------------------------------- | +| request_body | [EnrollmentPatchInput](../models/EnrollmentPatchInput.md) | ✅ | The request body. | +| speaker_id | str | ✅ | Speaker identifier of enrolled speaker | + +**Return Type** + +`EnrollmentStatus` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EnrollmentPatchInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EnrollmentPatchInput( + encoding="Mpeg", + language_code="en-US", + content="base64EncodedAudioInput" +) + +result = sdk.audio.cai_enrollments_update( + request_body=request_body, + speaker_id="speakerId" +) + +print(result) +``` + +## cai_enrollments_delete + +Delete The Enrollment for the provided Speaker. + +- HTTP Method: `DELETE` +- Endpoint: `/ai/audio/v1/enrollments/{speakerId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------------- | +| speaker_id | str | ✅ | Speaker identifier of enrolled speaker | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.audio.cai_enrollments_delete(speaker_id="speakerId") + +print(result) +``` + +## cai_speech_to_text + +Returns Speech to Text Conversion to the provided webhook URI. + +- HTTP Method: `POST` +- Endpoint: `/ai/audio/v1/async/speech-to-text` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :--------------------------------------------------------- | +| request_body | [AsrInput](../models/AsrInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AsrInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AsrInput( + content_uri="contentUri", + encoding="Mpeg", + language_code="en-US", + source="RingCentral", + audio_type="CallCenter", + separate_speaker_per_channel=False, + speaker_count=2, + speaker_ids=[ + "speakerIds" + ], + enable_voice_activity_detection=False, + enable_punctuation=True, + enable_speaker_diarization=True, + speech_contexts=[ + { + "phrases": [ + "phrases" + ] + } + ] +) + +result = sdk.audio.cai_speech_to_text( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + +## cai_speaker_diarize + +Identifies who said what. Speaker diarization will identify the speaker for each segment so you can tell who spoke the sentence, paragraph, or phrase. + +- HTTP Method: `POST` +- Endpoint: `/ai/audio/v1/async/speaker-diarize` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------- | :------- | :--------------------------------------------------------- | +| request_body | [DiarizeInput](../models/DiarizeInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DiarizeInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = DiarizeInput( + content_uri="contentUri", + encoding="Mpeg", + language_code="en-US", + source="RingCentral", + audio_type="CallCenter", + separate_speaker_per_channel=False, + speaker_count=2, + speaker_ids=[ + "speakerIds" + ], + enable_voice_activity_detection=True +) + +result = sdk.audio.cai_speaker_diarize( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + +## cai_speaker_identify + +Returns Speaker Identification to the provided webhook URI. + +- HTTP Method: `POST` +- Endpoint: `/ai/audio/v1/async/speaker-identify` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------ | :------- | :--------------------------------------------------------- | +| request_body | [IdentifyInput](../models/IdentifyInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import IdentifyInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = IdentifyInput( + content_uri="contentUri", + encoding="Mpeg", + language_code="en-US", + source="RingCentral", + audio_type="CallCenter", + speaker_ids=[ + "speakerIds" + ], + enable_voice_activity_detection=False +) + +result = sdk.audio.cai_speaker_identify( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + + diff --git a/documentation/services/AuditTrailService.md b/documentation/services/AuditTrailService.md new file mode 100644 index 00000000..9bba1ba0 --- /dev/null +++ b/documentation/services/AuditTrailService.md @@ -0,0 +1,67 @@ +# AuditTrailService + +A list of all methods in the `AuditTrailService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [audit_trail_search](#audit_trail_search) | Returns the audit trail data with specific filters applied. Audit trail searching is limited to the last 10,000 records or last 180 days, whichever comes first. | + +## audit_trail_search + +Returns the audit trail data with specific filters applied. Audit trail searching is limited to the last 10,000 records or last 180 days, whichever comes first. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/audit-trail/search` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AccountHistorySearchPublicRequest](../models/AccountHistorySearchPublicRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AccountHistorySearchPublicResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AccountHistorySearchPublicRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AccountHistorySearchPublicRequest( + event_time_from="eventTimeFrom", + event_time_to="eventTimeTo", + initiator_ids=[ + "initiatorIds" + ], + page=1, + per_page=25, + target_ids=[ + "targetIds" + ], + site_id="871836004", + action_ids=[ + "CHANGE_SECRET_INFO" + ], + search_string="542617", + exclude_action_ids=[ + "CHANGE_SECRET_INFO" + ] +) + +result = sdk.audit_trail.audit_trail_search( + request_body=request_body, + account_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/AutomaticLocationUpdatesService.md b/documentation/services/AutomaticLocationUpdatesService.md new file mode 100644 index 00000000..f3247379 --- /dev/null +++ b/documentation/services/AutomaticLocationUpdatesService.md @@ -0,0 +1,2017 @@ +# AutomaticLocationUpdatesService + +A list of all methods in the `AutomaticLocationUpdatesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_emergency_locations](#list_emergency_locations) | Returns emergency response locations for the current account. | +| [create_emergency_location](#create_emergency_location) | Creates a new emergency response location for a company. | +| [read_emergency_location](#read_emergency_location) | Returns emergency response location by ID. Available for Admin users only. | +| [update_emergency_location](#update_emergency_location) | Updates the specified emergency response location. | +| [delete_emergency_location](#delete_emergency_location) | Deletes the specified emergency response location. | +| [get_extension_emergency_locations](#get_extension_emergency_locations) | Returns a list of emergency response locations available for the particular extension. | +| [create_extension_emergency_location](#create_extension_emergency_location) | Creates a personal emergency response location for the current user. | +| [get_extension_emergency_location](#get_extension_emergency_location) | Returns a personal emergency response location for the current user. | +| [update_extension_emergency_location](#update_extension_emergency_location) | Updates a personal emergency response location by the current user or admin. | +| [delete_extension_emergency_location](#delete_extension_emergency_location) | Deletes a personal emergency response location by ID by the current user or admin. Multiple personal emergency response locations can be deleted by single API call. | +| [read_automatic_location_updates_task](#read_automatic_location_updates_task) | Returns results of the task created within the frame of Automatic Location Updates feature. Currently four task types are supported: 'Wireless Points Bulk Create', 'Wireless Points Bulk Update', 'Switches Bulk Create', 'Switches Bulk Update'. | +| [list_automatic_location_updates_users](#list_automatic_location_updates_users) | Returns a list of users with their status of Automatic Location Updates feature. | +| [assign_multiple_automatic_location_updates_users](#assign_multiple_automatic_location_updates_users) | Enables or disables Automatic Location Updates feature for multiple account users. | +| [create_multiple_wireless_points](#create_multiple_wireless_points) | Creates multiple wireless points in a corporate map. The maximum number of wireless points per request is 10 000; limitation for account is 70 000. | +| [list_networks](#list_networks) | Returns a corporate network map with emergency addresses assigned to the current account. | +| [create_network](#create_network) | Creates a new network in a corporate ethernet map for assignment of emergency addresses to network access points. | +| [read_network](#read_network) | Returns the specified network with emergency addresses assigned to the current account. | +| [update_network](#update_network) | Updates a network in a corporate ethernet map for assignment of emergency addresses to network access points. | +| [delete_network](#delete_network) | Deletes network(s) in a corporate ethernet map for Automatic Location Updates feature. | +| [validate_multiple_switches](#validate_multiple_switches) | Validates switches before creation or update. The maximum number of switches per request is 10 000. | +| [list_account_switches](#list_account_switches) | Returns a corporate map of configured network switches with the assigned emergency addresses for the logged-in account. | +| [create_switch](#create_switch) | Creates a new switch in corporate map based on chassis ID and used for Automatic Locations Update feature. | +| [read_switch](#read_switch) | Returns the specified switch with the assigned emergency address. | +| [update_switch](#update_switch) | Updates switch. Partial update is not supported, all switch parameters should be specified. If null value is received or parameter is missing, its value is removed. | +| [delete_switch](#delete_switch) | Deletes wireless switch(es) in a network configuration for Automatic Location Updates feature. | +| [validate_multiple_wireless_points](#validate_multiple_wireless_points) | Validates wireless points before creation or update. The maximum number of wireless points per request is 10 000. | +| [list_wireless_points](#list_wireless_points) | Returns account wireless points configured and used for Automatic Location Updates feature. | +| [create_wireless_point](#create_wireless_point) | Creates a new wireless point in network configuration with the emergency address assigned. | +| [read_wireless_point](#read_wireless_point) | Returns the specified wireless access point of a corporate map with the emergency address assigned. | +| [update_wireless_point](#update_wireless_point) | Updates the specified wireless access point of a corporate map by ID. | +| [delete_wireless_point](#delete_wireless_point) | Deletes wireless point(s) of a corporate map by ID(s). | +| [list_devices_automatic_location_updates](#list_devices_automatic_location_updates) | Returns a list of common devices with their status of Automatic Location Updates feature. | +| [assign_multiple_devices_automatic_location_updates](#assign_multiple_devices_automatic_location_updates) | Enables or disables Automatic Location Updates feature for the specified common phones. | +| [create_multiple_switches](#create_multiple_switches) | Creates multiple switches in corporate map. The maximum number of switches per request is 10 000; limitation for account is 10 000. | +| [update_multiple_wireless_points](#update_multiple_wireless_points) | Updates wireless points in corporate map. The maximum number of wireless points per request is 10 000; limitation for account is 70 000. | +| [update_multiple_switches](#update_multiple_switches) | Updates multiple switches in corporate map. The maximum number of switches per request is 10 000; limitation for account is 10 000. | + +## list_emergency_locations + +Returns emergency response locations for the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-locations` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :-------------------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| search_string | str | ❌ | Filters entries containing the specified substring in 'address' and 'name' fields. The character range is 0-64; not case-sensitive. If empty then the filter is ignored | +| address_status | [EmergencyAddressStatus](../models/EmergencyAddressStatus.md) | ❌ | | +| usage_status | [EmergencyLocationUsageStatus](../models/EmergencyLocationUsageStatus.md) | ❌ | | +| domestic_country_id | str | ❌ | | +| order_by | [ListEmergencyLocationsOrderBy](../models/ListEmergencyLocationsOrderBy.md) | ❌ | Comma-separated list of fields to order results, prefixed by plus sign '+' (ascending order) or minus sign '-' (descending order) | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are supported | + +**Return Type** + +`EmergencyLocationsResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EmergencyAddressStatus, EmergencyLocationUsageStatus, ListEmergencyLocationsOrderBy + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_emergency_locations( + account_id="~", + site_id=site_id, + search_string="anim mollit", + address_status="Valid", + usage_status="Active", + domestic_country_id="domesticCountryId", + order_by="+name", + per_page=100, + page=1 +) + +print(result) +``` + +## create_emergency_location + +Creates a new emergency response location for a company. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-locations` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [EmergencyLocationRequestResource](../models/EmergencyLocationRequestResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`EmergencyLocationResponseResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EmergencyLocationRequestResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EmergencyLocationRequestResource( + id_="id", + address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + }, + name="name", + site={ + "id_": "id", + "name": "name" + }, + address_status="Valid", + usage_status="Active", + address_format_id="addressFormatId", + visibility="Public", + trusted=False +) + +result = sdk.automatic_location_updates.create_emergency_location( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_emergency_location + +Returns emergency response location by ID. Available for Admin users only. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | +| sync_emergency_address | bool | ❌ | | + +**Return Type** + +`CommonEmergencyLocationResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.read_emergency_location( + account_id="~", + location_id="locationId", + sync_emergency_address=False +) + +print(result) +``` + +## update_emergency_location + +Updates the specified emergency response location. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [EmergencyLocationRequestResource](../models/EmergencyLocationRequestResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | + +**Return Type** + +`EmergencyLocationResponseResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EmergencyLocationRequestResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EmergencyLocationRequestResource( + id_="id", + address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + }, + name="name", + site={ + "id_": "id", + "name": "name" + }, + address_status="Valid", + usage_status="Active", + address_format_id="addressFormatId", + visibility="Public", + trusted=False +) + +result = sdk.automatic_location_updates.update_emergency_location( + request_body=request_body, + account_id="~", + location_id="locationId" +) + +print(result) +``` + +## delete_emergency_location + +Deletes the specified emergency response location. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | +| validate_only | bool | ❌ | Flag indicating that validation of emergency location(s) is required before deletion | +| new_location_id | str | ❌ | Internal identifier of an emergency response location that should be used instead of a deleted one. | + +**Return Type** + +`GetLocationDeletionMultiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.delete_emergency_location( + account_id="~", + location_id="locationId", + validate_only=False, + new_location_id="newLocationId" +) + +print(result) +``` + +## get_extension_emergency_locations + +Returns a list of emergency response locations available for the particular extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :------------------------------------------------------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| search_string | str | ❌ | Filters entries by the specified substring (search by chassis ID, switch name or address) The characters range is 0-64 (if empty the filter is ignored) | +| domestic_country_id | str | ❌ | | +| order_by | [GetExtensionEmergencyLocationsOrderBy](../models/GetExtensionEmergencyLocationsOrderBy.md) | ❌ | Comma-separated list of fields to order results prefixed by '+' sign (ascending order) or '-' sign (descending order). The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are supported | +| visibility | str | ❌ | | + +**Return Type** + +`EmergencyLocationsResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import GetExtensionEmergencyLocationsOrderBy + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.get_extension_emergency_locations( + account_id="~", + extension_id="~", + site_id=site_id, + search_string="searchString", + domestic_country_id="domesticCountryId", + order_by="+name", + per_page=1, + page=1, + visibility="visibility" +) + +print(result) +``` + +## create_extension_emergency_location + +Creates a personal emergency response location for the current user. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateUserEmergencyLocationRequest](../models/CreateUserEmergencyLocationRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`EmergencyLocationResponseResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateUserEmergencyLocationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateUserEmergencyLocationRequest( + name="name", + address_format_id="addressFormatId", + trusted=False, + address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + } +) + +result = sdk.automatic_location_updates.create_extension_emergency_location( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## get_extension_emergency_location + +Returns a personal emergency response location for the current user. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | + +**Return Type** + +`CommonEmergencyLocationResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.get_extension_emergency_location( + account_id="~", + extension_id="~", + location_id="locationId" +) + +print(result) +``` + +## update_extension_emergency_location + +Updates a personal emergency response location by the current user or admin. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [EmergencyLocationRequestResource](../models/EmergencyLocationRequestResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | + +**Return Type** + +`EmergencyLocationResponseResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EmergencyLocationRequestResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EmergencyLocationRequestResource( + id_="id", + address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + }, + name="name", + site={ + "id_": "id", + "name": "name" + }, + address_status="Valid", + usage_status="Active", + address_format_id="addressFormatId", + visibility="Public", + trusted=False +) + +result = sdk.automatic_location_updates.update_extension_emergency_location( + request_body=request_body, + account_id="~", + extension_id="~", + location_id="locationId" +) + +print(result) +``` + +## delete_extension_emergency_location + +Deletes a personal emergency response location by ID by the current user or admin. Multiple personal emergency response locations can be deleted by single API call. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations/{locationId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| location_id | str | ✅ | Internal identifier of an emergency response location | +| validate_only | bool | ❌ | Flag indicating that only validation of Emergency Response Locations to be deleted is required | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.delete_extension_emergency_location( + account_id="~", + extension_id="~", + location_id="locationId", + validate_only=True +) + +print(result) +``` + +## read_automatic_location_updates_task + +Returns results of the task created within the frame of Automatic Location Updates feature. Currently four task types are supported: 'Wireless Points Bulk Create', 'Wireless Points Bulk Update', 'Switches Bulk Create', 'Switches Bulk Update'. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | | + +**Return Type** + +`AutomaticLocationUpdatesTaskInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.read_automatic_location_updates_task( + account_id="~", + task_id="taskId" +) + +print(result) +``` + +## list_automatic_location_updates_users + +Returns a list of users with their status of Automatic Location Updates feature. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/users` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| type\_ | [List[ListAutomaticLocationUpdatesUsersType]](../models/ListAutomaticLocationUpdatesUsersType.md) | ❌ | Extension type. Multiple values are supported | +| search_string | str | ❌ | Filters entries containing the specified substring in user name, extension or department. The characters range is 0-64; not case-sensitive. If empty then the filter is ignored | +| department | List[str] | ❌ | Department name to filter the users. The value range is 0-64; not case-sensitive. If not specified then the parameter is ignored. Multiple values are supported | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| feature_enabled | bool | ❌ | Filters entries by their status of Automatic Location Updates feature | +| order_by | str | ❌ | Comma-separated list of fields to order results prefixed by plus sign '+' (ascending order) or minus sign '-' (descending order). Supported values: 'name', 'modelName', 'siteName', 'featureEnabled'. The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are supported | + +**Return Type** + +`AutomaticLocationUpdatesUserList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +type_=[ + "User" +] +department=[ + "department" +] +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_automatic_location_updates_users( + account_id="~", + type_=type_, + search_string="searchString", + department=department, + site_id=site_id, + feature_enabled=False, + order_by="orderBy", + per_page=1, + page=1 +) + +print(result) +``` + +## assign_multiple_automatic_location_updates_users + +Enables or disables Automatic Location Updates feature for multiple account users. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/users/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [EmergencyAddressAutoUpdateUsersBulkAssignResource](../models/EmergencyAddressAutoUpdateUsersBulkAssignResource.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EmergencyAddressAutoUpdateUsersBulkAssignResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EmergencyAddressAutoUpdateUsersBulkAssignResource( + enabled_user_ids=[ + "enabledUserIds" + ], + disabled_user_ids=[ + "disabledUserIds" + ] +) + +result = sdk.automatic_location_updates.assign_multiple_automatic_location_updates_users( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## create_multiple_wireless_points + +Creates multiple wireless points in a corporate map. The maximum number of wireless points per request is 10 000; limitation for account is 70 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-create` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateMultipleWirelessPointsRequest](../models/CreateMultipleWirelessPointsRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CreateMultipleWirelessPointsResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateMultipleWirelessPointsRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateMultipleWirelessPointsRequest( + records=[ + { + "bssid": "bssid", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } + } + ] +) + +result = sdk.automatic_location_updates.create_multiple_wireless_points( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_networks + +Returns a corporate network map with emergency addresses assigned to the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| search_string | str | ❌ | Filters entries by the specified substring (search by chassis ID, switch name or address) The characters range is 0-64 (if empty the filter is ignored) | +| order_by | str | ❌ | Comma-separated list of fields to order results prefixed by '+' sign (ascending order) or '-' sign (descending order). The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page' | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are supported | + +**Return Type** + +`NetworksList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_networks( + account_id="~", + site_id=site_id, + search_string="searchString", + order_by="orderBy", + per_page=4, + page=1 +) + +print(result) +``` + +## create_network + +Creates a new network in a corporate ethernet map for assignment of emergency addresses to network access points. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateNetworkRequest](../models/CreateNetworkRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`NetworkInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateNetworkRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateNetworkRequest( + name="name", + site={ + "id_": "id", + "uri": "uri", + "name": "name", + "code": "code" + }, + public_ip_ranges=[ + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "matched": False + } + ], + private_ip_ranges=[ + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "name": "name", + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "customer_name": "customerName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip" + }, + "emergency_location_id": "emergencyLocationId", + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } + } + ] +) + +result = sdk.automatic_location_updates.create_network( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_network + +Returns the specified network with emergency addresses assigned to the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks/{networkId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| network_id | str | ✅ | Internal identifier of a network | + +**Return Type** + +`NetworkInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.read_network( + account_id="~", + network_id="networkId" +) + +print(result) +``` + +## update_network + +Updates a network in a corporate ethernet map for assignment of emergency addresses to network access points. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks/{networkId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateNetworkRequest](../models/UpdateNetworkRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| network_id | str | ✅ | Internal identifier of a network | + +**Return Type** + +`NetworkInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateNetworkRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateNetworkRequest( + id_="2874044", + name="name", + site={ + "id_": "id", + "uri": "uri", + "name": "name", + "code": "code" + }, + public_ip_ranges=[ + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "matched": False + } + ], + private_ip_ranges=[ + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "name": "name", + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "customer_name": "customerName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip" + }, + "emergency_location_id": "emergencyLocationId", + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } + } + ] +) + +result = sdk.automatic_location_updates.update_network( + request_body=request_body, + account_id="~", + network_id="networkId" +) + +print(result) +``` + +## delete_network + +Deletes network(s) in a corporate ethernet map for Automatic Location Updates feature. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks/{networkId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| network_id | List[str] | ✅ | Internal identifier of a network | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +network_id=[ + "networkId" +] + +result = sdk.automatic_location_updates.delete_network( + account_id="~", + network_id=network_id +) + +print(result) +``` + +## validate_multiple_switches + +Validates switches before creation or update. The maximum number of switches per request is 10 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-validate` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ValidateMultipleSwitchesRequest](../models/ValidateMultipleSwitchesRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ValidateMultipleSwitchesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ValidateMultipleSwitchesRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ValidateMultipleSwitchesRequest( + records=[ + { + "uri": "uri", + "id_": "id", + "chassis_id": "chassisId", + "port": "port", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } + } + ] +) + +result = sdk.automatic_location_updates.validate_multiple_switches( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_account_switches + +Returns a corporate map of configured network switches with the assigned emergency addresses for the logged-in account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| search_string | str | ❌ | Filters entries by the specified substring (search by chassis ID, switch name or address) The characters range is 0-64 (if empty the filter is ignored) | +| order_by | str | ❌ | Comma-separated list of fields to order results prefixed by '+' sign (ascending order) or '-' sign (descending order). The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page' | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are supported | + +**Return Type** + +`SwitchesList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_account_switches( + account_id="~", + site_id=site_id, + search_string="searchString", + order_by="orderBy", + per_page=9, + page=1 +) + +print(result) +``` + +## create_switch + +Creates a new switch in corporate map based on chassis ID and used for Automatic Locations Update feature. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateSwitchInfo](../models/CreateSwitchInfo.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`SwitchInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateSwitchInfo + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateSwitchInfo( + chassis_id="chassisId", + port="port", + name="name", + site={ + "id_": "id", + "name": "name" + }, + emergency_address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + emergency_location={ + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } +) + +result = sdk.automatic_location_updates.create_switch( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_switch + +Returns the specified switch with the assigned emergency address. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches/{switchId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| switch_id | str | ✅ | | + +**Return Type** + +`SwitchInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.read_switch( + account_id="~", + switch_id="switchId" +) + +print(result) +``` + +## update_switch + +Updates switch. Partial update is not supported, all switch parameters should be specified. If null value is received or parameter is missing, its value is removed. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches/{switchId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateSwitchInfo](../models/UpdateSwitchInfo.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| switch_id | str | ✅ | | + +**Return Type** + +`SwitchInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateSwitchInfo + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateSwitchInfo( + id_="id", + chassis_id="chassisId", + port="port", + name="name", + site={ + "id_": "id", + "name": "name" + }, + emergency_address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + } +) + +result = sdk.automatic_location_updates.update_switch( + request_body=request_body, + account_id="~", + switch_id="switchId" +) + +print(result) +``` + +## delete_switch + +Deletes wireless switch(es) in a network configuration for Automatic Location Updates feature. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches/{switchId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| switch_id | List[str] | ✅ | | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +switch_id=[ + "switchId" +] + +result = sdk.automatic_location_updates.delete_switch( + account_id="~", + switch_id=switch_id +) + +print(result) +``` + +## validate_multiple_wireless_points + +Validates wireless points before creation or update. The maximum number of wireless points per request is 10 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-validate` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ValidateMultipleWirelessPointsRequest](../models/ValidateMultipleWirelessPointsRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ValidateMultipleWirelessPointsResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ValidateMultipleWirelessPointsRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ValidateMultipleWirelessPointsRequest( + records=[ + { + "uri": "uri", + "id_": "id", + "bssid": "bssid", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + }, + "emergency_location_id": "emergencyLocationId" + } + ] +) + +result = sdk.automatic_location_updates.validate_multiple_wireless_points( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_wireless_points + +Returns account wireless points configured and used for Automatic Location Updates feature. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| search_string | str | ❌ | Filters entries by the specified substring (search by chassis ID, switch name or address) The characters range is 0-64 (if empty the filter is ignored) | +| order_by | str | ❌ | Comma-separated list of fields to order results prefixed by '+' sign (ascending order) or '-' sign (descending order).The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are supported | + +**Return Type** + +`WirelessPointsList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_wireless_points( + account_id="~", + site_id=site_id, + search_string="searchString", + order_by="orderBy", + per_page=2, + page=1 +) + +print(result) +``` + +## create_wireless_point + +Creates a new wireless point in network configuration with the emergency address assigned. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateWirelessPoint](../models/CreateWirelessPoint.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`WirelessPointInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateWirelessPoint + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateWirelessPoint( + bssid="bssid", + name="name", + site={ + "id_": "id", + "name": "name" + }, + emergency_address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + emergency_location={ + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } +) + +result = sdk.automatic_location_updates.create_wireless_point( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_wireless_point + +Returns the specified wireless access point of a corporate map with the emergency address assigned. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points/{pointId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| point_id | str | ✅ | Internal identifier of a point | + +**Return Type** + +`WirelessPointInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.automatic_location_updates.read_wireless_point( + account_id="~", + point_id="pointId" +) + +print(result) +``` + +## update_wireless_point + +Updates the specified wireless access point of a corporate map by ID. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points/{pointId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateWirelessPoint](../models/UpdateWirelessPoint.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| point_id | str | ✅ | Internal identifier of a wireless point | + +**Return Type** + +`WirelessPointInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateWirelessPoint + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateWirelessPoint( + id_="id", + bssid="bssid", + name="name", + site={ + "id_": "id", + "name": "name" + }, + emergency_address={ + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + } +) + +result = sdk.automatic_location_updates.update_wireless_point( + request_body=request_body, + account_id="~", + point_id="pointId" +) + +print(result) +``` + +## delete_wireless_point + +Deletes wireless point(s) of a corporate map by ID(s). + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points/{pointId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| point_id | List[str] | ✅ | Internal identifier of a wireless point | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +point_id=[ + "pointId" +] + +result = sdk.automatic_location_updates.delete_wireless_point( + account_id="~", + point_id=point_id +) + +print(result) +``` + +## list_devices_automatic_location_updates + +Returns a list of common devices with their status of Automatic Location Updates feature. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/devices` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | List[str] | ❌ | Internal identifier of a site for filtering. To indicate company main site `main-site` value should be specified. Supported only if multi-site feature is enabled for the account. Multiple values are supported. | +| feature_enabled | bool | ❌ | Filters entries by their status of Automatic Location Updates feature | +| model_id | str | ❌ | Internal identifier of a device model for filtering. Multiple values are supported | +| compatible_only | bool | ❌ | Filters devices which support HELD protocol | +| search_string | str | ❌ | Filters entries which have device name or model name containing the mentioned substring. The value should be split by spaces; the range is 0 - 64 characters, not case-sensitive. If empty the filter is ignored | +| order_by | str | ❌ | Comma-separated list of fields to order results prefixed by plus sign '+' (ascending order) or minus sign '-' (descending order). Supported values: 'name', 'modelName', 'siteName', 'featureEnabled'. The default sorting is by `name` | +| per_page | int | ❌ | Indicates a page size (number of items). The values supported: `Max` or numeric value. If not specified, 100 records are returned per one page | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are supported | + +**Return Type** + +`ListDevicesAutomaticLocationUpdates` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_id=[ + "siteId" +] + +result = sdk.automatic_location_updates.list_devices_automatic_location_updates( + account_id="~", + site_id=site_id, + feature_enabled=False, + model_id="modelId", + compatible_only=False, + search_string="searchString", + order_by="orderBy", + per_page=10, + page=1 +) + +print(result) +``` + +## assign_multiple_devices_automatic_location_updates + +Enables or disables Automatic Location Updates feature for the specified common phones. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/devices/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AssignMultipleDevicesAutomaticLocationUpdates](../models/AssignMultipleDevicesAutomaticLocationUpdates.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AssignMultipleDevicesAutomaticLocationUpdates + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AssignMultipleDevicesAutomaticLocationUpdates( + enabled_device_ids=[ + "enabledDeviceIds" + ], + disabled_device_ids=[ + "disabledDeviceIds" + ] +) + +result = sdk.automatic_location_updates.assign_multiple_devices_automatic_location_updates( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## create_multiple_switches + +Creates multiple switches in corporate map. The maximum number of switches per request is 10 000; limitation for account is 10 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-create` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateMultipleSwitchesRequest](../models/CreateMultipleSwitchesRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CreateMultipleSwitchesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateMultipleSwitchesRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateMultipleSwitchesRequest( + records=[ + { + "chassis_id": "chassisId", + "port": "port", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + }, + "emergency_location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + } + } + ] +) + +result = sdk.automatic_location_updates.create_multiple_switches( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## update_multiple_wireless_points + +Updates wireless points in corporate map. The maximum number of wireless points per request is 10 000; limitation for account is 70 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-update` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateMultipleWirelessPointsRequest](../models/UpdateMultipleWirelessPointsRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`UpdateMultipleWirelessPointsResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateMultipleWirelessPointsRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateMultipleWirelessPointsRequest( + records=[ + { + "id_": "id", + "bssid": "bssid", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + } + } + ] +) + +result = sdk.automatic_location_updates.update_multiple_wireless_points( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## update_multiple_switches + +Updates multiple switches in corporate map. The maximum number of switches per request is 10 000; limitation for account is 10 000. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-update` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateMultipleSwitchesRequest](../models/UpdateMultipleSwitchesRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`UpdateMultipleSwitchesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateMultipleSwitchesRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateMultipleSwitchesRequest( + records=[ + { + "id_": "id", + "chassis_id": "chassisId", + "port": "port", + "name": "name", + "site": { + "id_": "id", + "name": "name" + }, + "emergency_address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName", + "sync_status": "Verified" + } + } + ] +) + +result = sdk.automatic_location_updates.update_multiple_switches( + request_body=request_body, + account_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/BridgeManagementService.md b/documentation/services/BridgeManagementService.md new file mode 100644 index 00000000..83e62dd1 --- /dev/null +++ b/documentation/services/BridgeManagementService.md @@ -0,0 +1,354 @@ +# BridgeManagementService + +A list of all methods in the `BridgeManagementService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [create_bridge](#create_bridge) | Creates a new bridge for the user specified by **accountId** and **extensionId** identifiers. The request body should contain JSON object which describes properties of the new bridge. The bridge can be created by a user himself, his delegate or any user who has the **Super Admin** privilege. | +| [get_default_bridge](#get_default_bridge) | Returns a default bridge (PMI) for the user specified by **accountId** and **extensionId** identifiers. | +| [get_bridge_by_pstn_pin](#get_bridge_by_pstn_pin) | Finds a bridge by Host or Participant PSTN PIN. | +| [get_bridge_by_web_pin](#get_bridge_by_web_pin) | Finds a bridge by short identifier (Web PIN). Also it can be used to find a default bridge by the alias (personal meeting name). | +| [get_bridge](#get_bridge) | Returns a bridge by **bridgeId** identifier. | +| [update_bridge](#update_bridge) | Updates a bridge by **bridgeId** identifier. The request body should contain JSON object with updating properties. Update can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. | +| [delete_bridge](#delete_bridge) | Deletes a bridge by **bridgeId** identifier. Deletion can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. | + +## create_bridge + +Creates a new bridge for the user specified by **accountId** and **extensionId** identifiers. The request body should contain JSON object which describes properties of the new bridge. The bridge can be created by a user himself, his delegate or any user who has the **Super Admin** privilege. + +- HTTP Method: `POST` +- Endpoint: `/rcvideo/v2/account/{accountId}/extension/{extensionId}/bridges` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :------------------- | +| request_body | [CreateBridgeRequest](../models/CreateBridgeRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Account identifier | +| extension_id | str | ✅ | Extension identifier | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateBridgeRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateBridgeRequest( + name="Weekly Meeting with Joseph", + type_="Instant", + pins={ + "pstn": { + "host": "432331057631", + "participant": "013409241367" + }, + "web": "018209241352" + }, + security={ + "password_protected": True, + "password": "Wq123ygs15", + "no_guests": True, + "same_account": False, + "e2ee": True + }, + preferences={ + "join": { + "audio_muted": True, + "video_muted": True, + "waiting_room_required": "Nobody", + "pstn": { + "prompt_announcement": True, + "prompt_participants": True + } + }, + "play_tones": "On", + "music_on_hold": True, + "join_before_host": True, + "screen_sharing": True, + "recordings_mode": "Auto", + "transcriptions_mode": "Auto", + "recordings": { + "everyone_can_control": { + "enabled": True, + "locked": False + }, + "auto_shared": { + "enabled": True, + "locked": False + } + }, + "allow_everyone_transcribe_meetings": True + } +) + +result = sdk.bridge_management.create_bridge( + request_body=request_body, + account_id="accountId", + extension_id="extensionId" +) + +print(result) +``` + +## get_default_bridge + +Returns a default bridge (PMI) for the user specified by **accountId** and **extensionId** identifiers. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v2/account/{accountId}/extension/{extensionId}/bridges/default` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------- | +| account_id | str | ✅ | Account identifier | +| extension_id | str | ✅ | Extension identifier | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.bridge_management.get_default_bridge( + account_id="accountId", + extension_id="extensionId" +) + +print(result) +``` + +## get_bridge_by_pstn_pin + +Finds a bridge by Host or Participant PSTN PIN. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v2/bridges/pin/pstn/{pin}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------ | +| pin | str | ✅ | Host or Participant PSTN PIN | +| phone_number | str | ❌ | Phone number to find a phone group for PSTN PIN. If it is not specified, then the default phone group will be used. | +| pw | str | ❌ | Bridge hash password | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.bridge_management.get_bridge_by_pstn_pin( + pin="pin", + phone_number="phoneNumber", + pw="pw" +) + +print(result) +``` + +## get_bridge_by_web_pin + +Finds a bridge by short identifier (Web PIN). Also it can be used to find a default bridge by the alias (personal meeting name). + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v2/bridges/pin/web/{pin}` + +**Parameters** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :----------------------------------------------------------------- | +| pin | str | ✅ | Bridge short identifier (Web PIN) or alias (personal meeting name) | +| pw | str | ❌ | Bridge hash password | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.bridge_management.get_bridge_by_web_pin( + pin="pin", + pw="pw" +) + +print(result) +``` + +## get_bridge + +Returns a bridge by **bridgeId** identifier. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v2/bridges/{bridgeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :------------------- | +| bridge_id | str | ✅ | Bridge identifier | +| pw | str | ❌ | Bridge hash password | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.bridge_management.get_bridge( + bridge_id="bridgeId", + pw="pw" +) + +print(result) +``` + +## update_bridge + +Updates a bridge by **bridgeId** identifier. The request body should contain JSON object with updating properties. Update can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. + +- HTTP Method: `PATCH` +- Endpoint: `/rcvideo/v2/bridges/{bridgeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :---------------- | +| request_body | [UpdateBridgeRequest](../models/UpdateBridgeRequest.md) | ✅ | The request body. | +| bridge_id | str | ✅ | Bridge identifier | + +**Return Type** + +`BridgeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateBridgeRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateBridgeRequest( + name="Weekly Meeting with Joseph", + pins={ + "web": "018209241352" + }, + security={ + "password_protected": True, + "password": "Wq123ygs15", + "no_guests": True, + "same_account": False, + "e2ee": True + }, + preferences={ + "join": { + "audio_muted": True, + "video_muted": True, + "waiting_room_required": "Nobody", + "pstn": { + "prompt_announcement": True, + "prompt_participants": True + } + }, + "play_tones": "On", + "music_on_hold": True, + "join_before_host": True, + "screen_sharing": True, + "recordings_mode": "Auto", + "transcriptions_mode": "Auto", + "recordings": { + "everyone_can_control": { + "enabled": True, + "locked": False + }, + "auto_shared": { + "enabled": True, + "locked": False + } + }, + "allow_everyone_transcribe_meetings": True + } +) + +result = sdk.bridge_management.update_bridge( + request_body=request_body, + bridge_id="bridgeId" +) + +print(result) +``` + +## delete_bridge + +Deletes a bridge by **bridgeId** identifier. Deletion can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. + +- HTTP Method: `DELETE` +- Endpoint: `/rcvideo/v2/bridges/{bridgeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------------- | +| bridge_id | str | ✅ | Bridge identifier | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.bridge_management.delete_bridge(bridge_id="bridgeId") + +print(result) +``` + + diff --git a/documentation/services/BusinessAnalyticsService.md b/documentation/services/BusinessAnalyticsService.md new file mode 100644 index 00000000..897553d2 --- /dev/null +++ b/documentation/services/BusinessAnalyticsService.md @@ -0,0 +1,373 @@ +# BusinessAnalyticsService + +A list of all methods in the `BusinessAnalyticsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------- | :-------------------------------------------------------------------- | +| [analytics_calls_aggregation_fetch](#analytics_calls_aggregation_fetch) | Returns call aggregations filtered by parameters specified | +| [analytics_calls_timeline_fetch](#analytics_calls_timeline_fetch) | Returns time-value data aggregations filtered by parameters specified | + +## analytics_calls_aggregation_fetch + +Returns call aggregations filtered by parameters specified + +- HTTP Method: `POST` +- Endpoint: `/analytics/calls/v1/accounts/{accountId}/aggregation/fetch` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AggregationRequest](../models/AggregationRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | The current page number (positive numbers only) | +| per_page | int | ❌ | Number of records displayed on a page (positive numbers only, max value of 200) | + +**Return Type** + +`AggregationResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AggregationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AggregationRequest( + grouping={ + "group_by": "Company", + "keys": [ + "keys" + ] + }, + time_settings={ + "time_zone": "timeZone", + "time_range": { + "time_from": "timeFrom", + "time_to": "timeTo" + }, + "advanced_time_settings": { + "include_days": [ + "Sunday" + ], + "include_hours": [ + { + "from_": "from", + "to": "to" + } + ] + } + }, + call_filters={ + "extension_filters": { + "from_ids": [ + "fromIds" + ], + "to_ids": [ + "toIds" + ] + }, + "queues": [ + "queues" + ], + "called_numbers": [ + "calledNumbers" + ], + "directions": [ + "Inbound" + ], + "origins": [ + "Internal" + ], + "call_responses": [ + "Answered" + ], + "call_results": [ + "Completed" + ], + "call_segments": [ + { + "segment": "Ringing", + "length": { + "min_seconds": 6, + "max_seconds": 3 + } + } + ], + "call_actions": [ + "HoldOff" + ], + "company_hours": [ + "BusinessHours" + ], + "call_duration": { + "min_seconds": 5, + "max_seconds": 5 + }, + "time_spent": { + "min_seconds": 9, + "max_seconds": 7 + }, + "queue_sla": [ + "InSla" + ], + "call_types": [ + "Direct" + ] + }, + response_options={ + "counters": { + "all_calls": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_direction": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_origin": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_response": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_segments": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_result": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_company_hours": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_queue_sla": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_actions": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_by_type": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "queue_opportunities": { + "aggregation_type": "Sum" + } + }, + "timers": { + "all_calls_duration": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_direction": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_origin": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_response": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_segments_duration": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_result": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_company_hours": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_queue_sla": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + }, + "calls_duration_by_type": { + "aggregation_type": "Sum", + "aggregation_interval": "Hour" + } + } + } +) + +result = sdk.business_analytics.analytics_calls_aggregation_fetch( + request_body=request_body, + account_id="~", + page=2, + per_page=160 +) + +print(result) +``` + +## analytics_calls_timeline_fetch + +Returns time-value data aggregations filtered by parameters specified + +- HTTP Method: `POST` +- Endpoint: `/analytics/calls/v1/accounts/{accountId}/timeline/fetch` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [TimelineRequest](../models/TimelineRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| interval | [Interval](../models/Interval.md) | ✅ | Aggregation interval | +| page | int | ❌ | The current page number (positive numbers only) | +| per_page | int | ❌ | Number of records displayed on a page (positive numbers only, max value of 20) | + +**Return Type** + +`TimelineResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TimelineRequest, Interval + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TimelineRequest( + grouping={ + "group_by": "Company", + "keys": [ + "keys" + ] + }, + time_settings={ + "time_zone": "timeZone", + "time_range": { + "time_from": "timeFrom", + "time_to": "timeTo" + }, + "advanced_time_settings": { + "include_days": [ + "Sunday" + ], + "include_hours": [ + { + "from_": "from", + "to": "to" + } + ] + } + }, + call_filters={ + "extension_filters": { + "from_ids": [ + "fromIds" + ], + "to_ids": [ + "toIds" + ] + }, + "queues": [ + "queues" + ], + "called_numbers": [ + "calledNumbers" + ], + "directions": [ + "Inbound" + ], + "origins": [ + "Internal" + ], + "call_responses": [ + "Answered" + ], + "call_results": [ + "Completed" + ], + "call_segments": [ + { + "segment": "Ringing", + "length": { + "min_seconds": 6, + "max_seconds": 3 + } + } + ], + "call_actions": [ + "HoldOff" + ], + "company_hours": [ + "BusinessHours" + ], + "call_duration": { + "min_seconds": 5, + "max_seconds": 5 + }, + "time_spent": { + "min_seconds": 9, + "max_seconds": 7 + }, + "queue_sla": [ + "InSla" + ], + "call_types": [ + "Direct" + ] + }, + response_options={ + "counters": { + "all_calls": False, + "calls_by_direction": True, + "calls_by_origin": False, + "calls_by_response": True, + "calls_segments": False, + "calls_by_result": False, + "calls_by_company_hours": True, + "calls_by_queue_sla": False, + "calls_by_actions": True, + "calls_by_type": False, + "queue_opportunities": True + }, + "timers": { + "all_calls_duration": False, + "calls_duration_by_direction": True, + "calls_duration_by_origin": False, + "calls_duration_by_response": False, + "calls_segments_duration": False, + "calls_duration_by_result": True, + "calls_duration_by_company_hours": True, + "calls_duration_by_queue_sla": False, + "calls_duration_by_type": True + } + } +) + +result = sdk.business_analytics.analytics_calls_timeline_fetch( + request_body=request_body, + account_id="~", + interval="Hour", + page=1, + per_page=9 +) + +print(result) +``` + + diff --git a/documentation/services/BusinessHoursService.md b/documentation/services/BusinessHoursService.md new file mode 100644 index 00000000..4e1aeb2e --- /dev/null +++ b/documentation/services/BusinessHoursService.md @@ -0,0 +1,254 @@ +# BusinessHoursService + +A list of all methods in the `BusinessHoursService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_company_business_hours](#read_company_business_hours) | Returns the company business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. | +| [update_company_business_hours](#update_company_business_hours) | Updates the company business hours schedule. | +| [read_user_business_hours](#read_user_business_hours) | Returns the user business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. **Please note:** If the user business hours are set to 'Custom hours' then a particular schedule is returned; however if set to '24 hours/7 days a week' the schedule will be empty. | +| [update_user_business_hours](#update_user_business_hours) | Updates the user business hours schedule. | + +## read_company_business_hours + +Returns the company business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/business-hours` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CompanyBusinessHours` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.business_hours.read_company_business_hours(account_id="~") + +print(result) +``` + +## update_company_business_hours + +Updates the company business hours schedule. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/business-hours` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CompanyBusinessHoursUpdateRequest](../models/CompanyBusinessHoursUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CompanyBusinessHours` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CompanyBusinessHoursUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CompanyBusinessHoursUpdateRequest( + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + } + } +) + +result = sdk.business_hours.update_company_business_hours( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_user_business_hours + +Returns the user business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. **Please note:** If the user business hours are set to 'Custom hours' then a particular schedule is returned; however if set to '24 hours/7 days a week' the schedule will be empty. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/business-hours` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetUserBusinessHoursResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.business_hours.read_user_business_hours( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_user_business_hours + +Updates the user business hours schedule. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/business-hours` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UserBusinessHoursUpdateRequest](../models/UserBusinessHoursUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`UserBusinessHoursUpdateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UserBusinessHoursUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UserBusinessHoursUpdateRequest( + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + } + } +) + +result = sdk.business_hours.update_user_business_hours( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/CalendarEventsService.md b/documentation/services/CalendarEventsService.md new file mode 100644 index 00000000..0be1bb78 --- /dev/null +++ b/documentation/services/CalendarEventsService.md @@ -0,0 +1,307 @@ +# CalendarEventsService + +A list of all methods in the `CalendarEventsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_glip_events_new](#read_glip_events_new) | Returns all calendar events created by the current user. | +| [create_event_new](#create_event_new) | Creates a new calendar event. | +| [read_event_new](#read_event_new) | Returns the specified calendar event(s) by ID(s). | +| [update_event_new](#update_event_new) | Updates the specified calendar event. | +| [delete_event_new](#delete_event_new) | Deletes the specified calendar event. | +| [list_group_events_new](#list_group_events_new) | Returns a list of calendar events available for the current user within the specified group. Users can only see their personal tasks and public tasks. | +| [create_event_by_group_id_new](#create_event_by_group_id_new) | Creates a new calendar event within the specified group. | + +## read_glip_events_new + +Returns all calendar events created by the current user. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/events` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------------------------------------------------------------------------------------- | +| record_count | int | ❌ | Number of groups to be fetched by one request. The maximum value is 250, by default - 30. | +| page_token | str | ❌ | Token of a page to be returned | + +**Return Type** + +`TmEventList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.calendar_events.read_glip_events_new( + record_count=30, + page_token="pageToken" +) + +print(result) +``` + +## create_event_new + +Creates a new calendar event. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/events` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :---------------- | +| request_body | [TmCreateEventRequest](../models/TmCreateEventRequest.md) | ✅ | The request body. | + +**Return Type** + +`TmEventInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateEventRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateEventRequest( + id_="id", + creator_id="creatorId", + title="title", + start_time="startTime", + end_time="endTime", + all_day=False, + recurrence={ + "schedule": "None", + "ending_condition": "None", + "ending_after": 9, + "ending_on": "endingOn" + }, + color="Black", + location="location", + description="description" +) + +result = sdk.calendar_events.create_event_new(request_body=request_body) + +print(result) +``` + +## read_event_new + +Returns the specified calendar event(s) by ID(s). + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/events/{eventId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :-------- | :------- | :--------------------------------------------- | +| event_id | List[str] | ✅ | Event id or comma separated list of event ids. | + +**Return Type** + +`TmEventInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +event_id=[ + "eventId" +] + +result = sdk.calendar_events.read_event_new(event_id=event_id) + +print(result) +``` + +## update_event_new + +Updates the specified calendar event. + +- HTTP Method: `PUT` +- Endpoint: `/team-messaging/v1/events/{eventId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :------------------------------ | +| request_body | [TmCreateEventRequest](../models/TmCreateEventRequest.md) | ✅ | The request body. | +| event_id | str | ✅ | Internal identifier of an event | + +**Return Type** + +`TmEventInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateEventRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateEventRequest( + id_="id", + creator_id="creatorId", + title="title", + start_time="startTime", + end_time="endTime", + all_day=False, + recurrence={ + "schedule": "None", + "ending_condition": "None", + "ending_after": 9, + "ending_on": "endingOn" + }, + color="Black", + location="location", + description="description" +) + +result = sdk.calendar_events.update_event_new( + request_body=request_body, + event_id="eventId" +) + +print(result) +``` + +## delete_event_new + +Deletes the specified calendar event. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/events/{eventId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :-------------------------------------------- | +| event_id | str | ✅ | Internal identifier of an event to be deleted | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.calendar_events.delete_event_new(event_id="eventId") + +print(result) +``` + +## list_group_events_new + +Returns a list of calendar events available for the current user within the specified group. Users can only see their personal tasks and public tasks. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/groups/{groupId}/events` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :----------------------------- | +| group_id | str | ✅ | Internal identifier of a group | + +**Return Type** + +`TmEventInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.calendar_events.list_group_events_new(group_id="groupId") + +print(result) +``` + +## create_event_by_group_id_new + +Creates a new calendar event within the specified group. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/groups/{groupId}/events` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :----------------------------- | +| request_body | [TmCreateEventRequest](../models/TmCreateEventRequest.md) | ✅ | The request body. | +| group_id | str | ✅ | Internal identifier of a group | + +**Return Type** + +`TmEventInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateEventRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateEventRequest( + id_="id", + creator_id="creatorId", + title="title", + start_time="startTime", + end_time="endTime", + all_day=False, + recurrence={ + "schedule": "None", + "ending_condition": "None", + "ending_after": 9, + "ending_on": "endingOn" + }, + color="Black", + location="location", + description="description" +) + +result = sdk.calendar_events.create_event_by_group_id_new( + request_body=request_body, + group_id="groupId" +) + +print(result) +``` + + diff --git a/documentation/services/CallBlockingService.md b/documentation/services/CallBlockingService.md new file mode 100644 index 00000000..16abc957 --- /dev/null +++ b/documentation/services/CallBlockingService.md @@ -0,0 +1,313 @@ +# CallBlockingService + +A list of all methods in the `CallBlockingService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_caller_blocking_settings](#read_caller_blocking_settings) | Returns the current caller blocking settings of a user. | +| [update_caller_blocking_settings](#update_caller_blocking_settings) | Updates the current caller blocking settings of a user. | +| [list_blocked_allowed_numbers](#list_blocked_allowed_numbers) | Returns the lists of blocked and allowed phone numbers. | +| [create_blocked_allowed_number](#create_blocked_allowed_number) | Updates either blocked or allowed phone number list with a new phone number. | +| [read_blocked_allowed_number](#read_blocked_allowed_number) | Returns blocked or allowed phone number(s) by their ID(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [update_blocked_allowed_number](#update_blocked_allowed_number) | Updates blocked or allowed phone number(s) by their ID(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [delete_blocked_allowed_number](#delete_blocked_allowed_number) | Deletes blocked or allowed phone number(s) by their ID(s). Batch request is supported. | + +## read_caller_blocking_settings + +Returns the current caller blocking settings of a user. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`CallerBlockingSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_blocking.read_caller_blocking_settings( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_caller_blocking_settings + +Updates the current caller blocking settings of a user. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallerBlockingSettingsUpdate](../models/CallerBlockingSettingsUpdate.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`CallerBlockingSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallerBlockingSettingsUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallerBlockingSettingsUpdate( + mode="Specific", + no_caller_id="BlockCallsAndFaxes", + pay_phones="Block", + greetings=[ + { + "type_": "type", + "preset": { + "uri": "uri", + "id_": "id", + "name": "name" + } + } + ] +) + +result = sdk.call_blocking.update_caller_blocking_settings( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## list_blocked_allowed_numbers + +Returns the lists of blocked and allowed phone numbers. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| status | [BlockedNumberStatusEnum](../models/BlockedNumberStatusEnum.md) | ❌ | | + +**Return Type** + +`BlockedAllowedPhoneNumbersList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BlockedNumberStatusEnum + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_blocking.list_blocked_allowed_numbers( + account_id="~", + extension_id="~", + page=1, + per_page=100, + status="Blocked" +) + +print(result) +``` + +## create_blocked_allowed_number + +Updates either blocked or allowed phone number list with a new phone number. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddBlockedAllowedPhoneNumber](../models/AddBlockedAllowedPhoneNumber.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`BlockedAllowedPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddBlockedAllowedPhoneNumber + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddBlockedAllowedPhoneNumber( + phone_number="phoneNumber", + label="label", + status="Blocked" +) + +result = sdk.call_blocking.create_blocked_allowed_number( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_blocked_allowed_number + +Returns blocked or allowed phone number(s) by their ID(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers/{blockedNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| blocked_number_id | str | ✅ | Internal identifier of a blocked number entry | + +**Return Type** + +`BlockedAllowedPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_blocking.read_blocked_allowed_number( + account_id="~", + extension_id="~", + blocked_number_id="blockedNumberId" +) + +print(result) +``` + +## update_blocked_allowed_number + +Updates blocked or allowed phone number(s) by their ID(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers/{blockedNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------------- | :------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddBlockedAllowedPhoneNumber](../models/AddBlockedAllowedPhoneNumber.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| blocked_number_id | str | ✅ | Internal identifier of a blocked number entry | + +**Return Type** + +`BlockedAllowedPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddBlockedAllowedPhoneNumber + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddBlockedAllowedPhoneNumber( + phone_number="phoneNumber", + label="label", + status="Blocked" +) + +result = sdk.call_blocking.update_blocked_allowed_number( + request_body=request_body, + account_id="~", + extension_id="~", + blocked_number_id="blockedNumberId" +) + +print(result) +``` + +## delete_blocked_allowed_number + +Deletes blocked or allowed phone number(s) by their ID(s). Batch request is supported. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-blocking/phone-numbers/{blockedNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| blocked_number_id | str | ✅ | Internal identifier of a blocked number entry | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_blocking.delete_blocked_allowed_number( + account_id="~", + extension_id="~", + blocked_number_id="blockedNumberId" +) + +print(result) +``` + + diff --git a/documentation/services/CallControlService.md b/documentation/services/CallControlService.md new file mode 100644 index 00000000..d4199271 --- /dev/null +++ b/documentation/services/CallControlService.md @@ -0,0 +1,1045 @@ +# CallControlService + +A list of all methods in the `CallControlService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [create_call_out_call_session](#create_call_out_call_session) | Creates a new outbound call out session. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. | +| [create_conference_call_session](#create_conference_call_session) | Initiates a conference call session. | +| [read_call_session_status](#read_call_session_status) | Returns the status of a call session by ID. | +| [delete_call_session](#delete_call_session) | Drops a call session. | +| [create_call_party_with_bring_in](#create_call_party_with_bring_in) | Adds a new party to the call session by bringing in an established SIP call connection. The maximum number of parties to bring in is 10; only 1 call party can be added per request. Currently, the method is supported for sessions of the `Conference` origin only. | +| [read_call_party_status](#read_call_party_status) | Returns a call party status by ID. | +| [update_call_party](#update_call_party) | Modifies a call party by ID. There is a known limitation for Mute scenario - mute via REST API doesn't work with mute placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app you need to unmute both endpoints to bring the media back. | +| [delete_call_party](#delete_call_party) | Deletes a party from a call session by ID. A party can be deleted only if supervised or parked. It is possible to delete only one conference participant per request. | +| [unhold_call_party](#unhold_call_party) | Brings a party back into a call and stops to play Hold Music. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. | +| [call_park_party](#call_park_party) | Parks a call to a virtual location from where it can further be retrieved by any user from any phone of the system. The call session and call party identifiers should be specified in path. Currently, the users can park only their own incoming calls. Up to 50 calls can be parked simultaneously. Park location starts with asterisk (\*) and ranges 801-899. | +| [call_flip_party](#call_flip_party) | Performs call flip procedure by holding opposite party and calling to the specified target | +| [reply_party](#reply_party) | Replies with text/pattern without picking up a call. | +| [bridge_call_party](#bridge_call_party) | Allows the user to connect multiple call session participants over a conference call bridge. The current active call session ID and party ID of the user within this session should be specified in path; the bridged call session ID and party ID of the user within that session should be specified in request body. Thus, the user connects participants of two sessions into the one conference call using his/her own party IDs from both sessions." | +| [ignore_call_in_queue](#ignore_call_in_queue) | Ignores a call to a call queue agent in `Setup` or `Proceeding` state. | +| [supervise_call_party](#supervise_call_party) | Allows to monitor a call party in 'Listen' mode. Input parameters are extension number of a monitored user and internal identifier of a supervisor's device. Call session and party identifiers should be specified in path. Please note that for this method dual channel audio flow is supported, which means that you need to make one more request for monitoring the second participant of a call. And as a result of each monitoring request the client receives SIP invite with the following header `p-rc-api-monitoring-ids` containing IDs of the monitored party and session. The flow is supported for calls with no more than 2 participants. Currently, this method is supported for Softphone/Hardphone devices only, since device IDs for WebRTC/Mobile apps cannot be obtained. | +| [reject_party](#reject_party) | Rejects an inbound call in a "Setup" or "Proceeding" state | +| [start_call_recording](#start_call_recording) | Starts a new call recording for the party | +| [pause_resume_call_recording](#pause_resume_call_recording) | Pause/resume recording | +| [answer_call_party](#answer_call_party) | Answers a call on a certain device by passing the corresponding device ID in request body. Supported for call forwarding, call transfer, call flip and call queues. | +| [transfer_call_party](#transfer_call_party) | Transfers an answered call to the specified call party. Applicable for a call session in "Answered" or "Hold" state. | +| [hold_call_party](#hold_call_party) | Puts the party to stand-alone mode and starts to play Hold Music according to configuration & state to peers. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. | +| [pickup_call_party](#pickup_call_party) | Picks up a call parked to the specified park location. | +| [forward_call_party](#forward_call_party) | Forwards a non-answered incoming call to the specified call party. Applicable for a call session in "Setup" or "Proceeding" state. | +| [supervise_call_session](#supervise_call_session) | Allows monitoring a call session in 'Listen' mode. Input parameters should contain internal identifiers of a monitored user and a supervisor's device. Call session should be specified in path. Please note that this method supports single channel audio flow, which means that audio of both call participants is mixed and delivered to the supervisor in single audio channel. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. | + +## create_call_out_call_session + +Creates a new outbound call out session. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/call-out` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MakeCallOutRequest](../models/MakeCallOutRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallSession` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MakeCallOutRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MakeCallOutRequest( + from_={ + "device_id": "59474004" + }, + to={ + "phone_number": "+16502223366", + "extension_number": "103" + }, + country_id=2 +) + +result = sdk.call_control.create_call_out_call_session( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## create_conference_call_session + +Initiates a conference call session. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/conference` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallSession` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.create_conference_call_session(account_id="~") + +print(result) +``` + +## read_call_session_status + +Returns the status of a call session by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| timestamp | str | ❌ | The date and time of a call session latest change | +| timeout | str | ❌ | The time frame of awaiting for a status change before sending the resulting one in response | + +**Return Type** + +`CallSessionObject` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.read_call_session_status( + account_id="~", + telephony_session_id="telephonySessionId", + timestamp="timestamp", + timeout="timeout" +) + +print(result) +``` + +## delete_call_session + +Drops a call session. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.delete_call_session( + account_id="~", + telephony_session_id="telephonySessionId" +) + +print(result) +``` + +## create_call_party_with_bring_in + +Adds a new party to the call session by bringing in an established SIP call connection. The maximum number of parties to bring in is 10; only 1 call party can be added per request. Currently, the method is supported for sessions of the `Conference` origin only. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/bring-in` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddPartyRequest](../models/AddPartyRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddPartyRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddPartyRequest( + session_id="sessionId", + party_id="partyId" +) + +result = sdk.call_control.create_call_party_with_bring_in( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId" +) + +print(result) +``` + +## read_call_party_status + +Returns a call party status by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.read_call_party_status( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## update_call_party + +Modifies a call party by ID. There is a known limitation for Mute scenario - mute via REST API doesn't work with mute placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app you need to unmute both endpoints to bring the media back. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [PartyUpdateRequest](../models/PartyUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PartyUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PartyUpdateRequest( + party={ + "muted": False, + "stand_alone": True + } +) + +result = sdk.call_control.update_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## delete_call_party + +Deletes a party from a call session by ID. A party can be deleted only if supervised or parked. It is possible to delete only one conference participant per request. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.delete_call_party( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## unhold_call_party + +Brings a party back into a call and stops to play Hold Music. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/unhold` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.unhold_call_party( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## call_park_party + +Parks a call to a virtual location from where it can further be retrieved by any user from any phone of the system. The call session and call party identifiers should be specified in path. Currently, the users can park only their own incoming calls. Up to 50 calls can be parked simultaneously. Park location starts with asterisk (\*) and ranges 801-899. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/park` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.call_park_party( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## call_flip_party + +Performs call flip procedure by holding opposite party and calling to the specified target + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/flip` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallPartyFlip](../models/CallPartyFlip.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallPartyFlip + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallPartyFlip( + call_flip_id="callFlipId" +) + +result = sdk.call_control.call_flip_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## reply_party + +Replies with text/pattern without picking up a call. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/reply` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallPartyReply](../models/CallPartyReply.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`ReplyParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallPartyReply + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallPartyReply( + reply_with_text="replyWithText", + reply_with_pattern={ + "pattern": "WillCallYouBack", + "time": 5, + "time_unit": "Minute" + } +) + +result = sdk.call_control.reply_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## bridge_call_party + +Allows the user to connect multiple call session participants over a conference call bridge. The current active call session ID and party ID of the user within this session should be specified in path; the bridged call session ID and party ID of the user within that session should be specified in request body. Thus, the user connects participants of two sessions into the one conference call using his/her own party IDs from both sessions." + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/bridge` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BridgeTargetRequest](../models/BridgeTargetRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BridgeTargetRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BridgeTargetRequest( + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +result = sdk.call_control.bridge_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## ignore_call_in_queue + +Ignores a call to a call queue agent in `Setup` or `Proceeding` state. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/ignore` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [IgnoreRequestBody](../models/IgnoreRequestBody.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import IgnoreRequestBody + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = IgnoreRequestBody( + device_id="400020454008" +) + +result = sdk.call_control.ignore_call_in_queue( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## supervise_call_party + +Allows to monitor a call party in 'Listen' mode. Input parameters are extension number of a monitored user and internal identifier of a supervisor's device. Call session and party identifiers should be specified in path. Please note that for this method dual channel audio flow is supported, which means that you need to make one more request for monitoring the second participant of a call. And as a result of each monitoring request the client receives SIP invite with the following header `p-rc-api-monitoring-ids` containing IDs of the monitored party and session. The flow is supported for calls with no more than 2 participants. Currently, this method is supported for Softphone/Hardphone devices only, since device IDs for WebRTC/Mobile apps cannot be obtained. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/supervise` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [PartySuperviseRequest](../models/PartySuperviseRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`PartySuperviseResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PartySuperviseRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PartySuperviseRequest( + mode="Listen", + supervisor_device_id="191888004", + agent_extension_id="400378008008", + auto_answer=True, + media_sdp="sendOnly" +) + +result = sdk.call_control.supervise_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## reject_party + +Rejects an inbound call in a "Setup" or "Proceeding" state + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/reject` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.reject_party( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## start_call_recording + +Starts a new call recording for the party + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_control.start_call_recording( + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## pause_resume_call_recording + +Pause/resume recording + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/recordings/{recordingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallRecordingUpdate](../models/CallRecordingUpdate.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | +| recording_id | str | ✅ | Internal identifier of a recording | +| brand_id | str | ✅ | Identifies a brand of a logged-in user or a brand of a sign-up session | + +**Return Type** + +`CallRecording` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallRecordingUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallRecordingUpdate( + active=False +) + +result = sdk.call_control.pause_resume_call_recording( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId", + recording_id="recordingId", + brand_id="~" +) + +print(result) +``` + +## answer_call_party + +Answers a call on a certain device by passing the corresponding device ID in request body. Supported for call forwarding, call transfer, call flip and call queues. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/answer` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AnswerTarget](../models/AnswerTarget.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AnswerTarget + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AnswerTarget( + device_id="400018633008" +) + +result = sdk.call_control.answer_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## transfer_call_party + +Transfers an answered call to the specified call party. Applicable for a call session in "Answered" or "Hold" state. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/transfer` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [TransferTarget](../models/TransferTarget.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TransferTarget + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TransferTarget( + phone_number="phoneNumber", + voicemail="voicemail", + park_orbit="parkOrbit", + extension_number="extensionNumber" +) + +result = sdk.call_control.transfer_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## hold_call_party + +Puts the party to stand-alone mode and starts to play Hold Music according to configuration & state to peers. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/hold` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [HoldCallPartyRequest](../models/HoldCallPartyRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import HoldCallPartyRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = HoldCallPartyRequest( + proto="Auto" +) + +result = sdk.call_control.hold_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## pickup_call_party + +Picks up a call parked to the specified park location. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/pickup` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [PickupTarget](../models/PickupTarget.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`CallParty` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PickupTarget + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PickupTarget( + device_id="400018633008" +) + +result = sdk.call_control.pickup_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## forward_call_party + +Forwards a non-answered incoming call to the specified call party. Applicable for a call session in "Setup" or "Proceeding" state. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/forward` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ForwardTarget](../models/ForwardTarget.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | +| party_id | str | ✅ | Internal identifier of a call party | + +**Return Type** + +`ForwardCallPartyResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ForwardTarget + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ForwardTarget( + phone_number="phoneNumber", + voicemail="voicemail", + extension_number="extensionNumber" +) + +result = sdk.call_control.forward_call_party( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId", + party_id="partyId" +) + +print(result) +``` + +## supervise_call_session + +Allows monitoring a call session in 'Listen' mode. Input parameters should contain internal identifiers of a monitored user and a supervisor's device. Call session should be specified in path. Please note that this method supports single channel audio flow, which means that audio of both call participants is mixed and delivered to the supervisor in single audio channel. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/supervise` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SuperviseCallSessionRequest](../models/SuperviseCallSessionRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| telephony_session_id | str | ✅ | Internal identifier of a call session | + +**Return Type** + +`SuperviseCallSessionResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SuperviseCallSessionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SuperviseCallSessionRequest( + mode="Listen", + supervisor_device_id="191888004", + agent_extension_id="400378008008", + auto_answer=True, + media_sdp="sendOnly" +) + +result = sdk.call_control.supervise_call_session( + request_body=request_body, + account_id="~", + telephony_session_id="telephonySessionId" +) + +print(result) +``` + + diff --git a/documentation/services/CallForwardingService.md b/documentation/services/CallForwardingService.md new file mode 100644 index 00000000..c5efbd10 --- /dev/null +++ b/documentation/services/CallForwardingService.md @@ -0,0 +1,266 @@ +# CallForwardingService + +A list of all methods in the `CallForwardingService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_forwarding_numbers](#list_forwarding_numbers) | Returns the list of extension phone numbers used for call forwarding and call flip. The returned list contains all the extension phone numbers used for call forwarding and call flip. | +| [create_forwarding_number](#create_forwarding_number) | Adds a new forwarding number to the forwarding number list. | +| [delete_forwarding_numbers](#delete_forwarding_numbers) | Deletes multiple forwarding numbers from the forwarding number list by IDs. | +| [read_forwarding_number](#read_forwarding_number) | Returns a specific forwarding number. | +| [update_forwarding_number](#update_forwarding_number) | Updates the existing forwarding number from the forwarding number list. | +| [delete_forwarding_number](#delete_forwarding_number) | Deletes a forwarding number from the forwarding number list by its ID. | + +## list_forwarding_numbers + +Returns the list of extension phone numbers used for call forwarding and call flip. The returned list contains all the extension phone numbers used for call forwarding and call flip. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`GetExtensionForwardingNumberListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_forwarding.list_forwarding_numbers( + account_id="~", + extension_id="~", + page=1, + per_page=100 +) + +print(result) +``` + +## create_forwarding_number + +Adds a new forwarding number to the forwarding number list. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateForwardingNumberRequest](../models/CreateForwardingNumberRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`ForwardingNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateForwardingNumberRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateForwardingNumberRequest( + flip_number=7, + phone_number="phoneNumber", + label="label", + type_="PhoneLine", + device={ + "id_": "id" + } +) + +result = sdk.call_forwarding.create_forwarding_number( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## delete_forwarding_numbers + +Deletes multiple forwarding numbers from the forwarding number list by IDs. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [DeleteForwardingNumbersRequest](../models/DeleteForwardingNumbersRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DeleteForwardingNumbersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = DeleteForwardingNumbersRequest( + records=[ + { + "forwarding_number_id": "forwardingNumberId" + } + ] +) + +result = sdk.call_forwarding.delete_forwarding_numbers( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_forwarding_number + +Returns a specific forwarding number. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number/{forwardingNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| forwarding_number_id | str | ✅ | Internal identifier of a forwarding number (returned in response in the 'id' field) | + +**Return Type** + +`ForwardingNumberResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_forwarding.read_forwarding_number( + account_id="~", + extension_id="~", + forwarding_number_id="forwardingNumberId" +) + +print(result) +``` + +## update_forwarding_number + +Updates the existing forwarding number from the forwarding number list. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number/{forwardingNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateForwardingNumberRequest](../models/UpdateForwardingNumberRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| forwarding_number_id | str | ✅ | Internal identifier of a forwarding number (returned in response in the 'id' field) | + +**Return Type** + +`ForwardingNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateForwardingNumberRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateForwardingNumberRequest( + phone_number="phoneNumber", + label="label", + flip_number="flipNumber", + type_="Home" +) + +result = sdk.call_forwarding.update_forwarding_number( + request_body=request_body, + account_id="~", + extension_id="~", + forwarding_number_id="forwardingNumberId" +) + +print(result) +``` + +## delete_forwarding_number + +Deletes a forwarding number from the forwarding number list by its ID. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/forwarding-number/{forwardingNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| forwarding_number_id | str | ✅ | Internal identifier of a forwarding number (returned in response in the 'id' field) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_forwarding.delete_forwarding_number( + account_id="~", + extension_id="~", + forwarding_number_id="forwardingNumberId" +) + +print(result) +``` + + diff --git a/documentation/services/CallHandlingRulesService.md b/documentation/services/CallHandlingRulesService.md new file mode 100644 index 00000000..b7d9093f --- /dev/null +++ b/documentation/services/CallHandlingRulesService.md @@ -0,0 +1,1001 @@ +# CallHandlingRulesService + +A list of all methods in the `CallHandlingRulesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------------- | :--------------------------------------------------------------------- | +| [list_company_answering_rules](#list_company_answering_rules) | Returns a list of company call handling rules. | +| [create_company_answering_rule](#create_company_answering_rule) | Creates call handling rule on account level. | +| [read_company_answering_rule](#read_company_answering_rule) | Returns a company call handling rule by ID. | +| [update_company_answering_rule](#update_company_answering_rule) | Updates a company call handling rule. | +| [delete_company_answering_rule](#delete_company_answering_rule) | Deletes a company custom call handling rule by a particular ID. | +| [get_forward_all_company_calls](#get_forward_all_company_calls) | Returns information about _Forward All Company Calls_ feature setting. | +| [update_forward_all_company_calls](#update_forward_all_company_calls) | Updates _Forward All Company Calls_ feature setting. | +| [list_answering_rules](#list_answering_rules) | Returns call handling rules of an extension. | +| [create_answering_rule](#create_answering_rule) | Creates a custom call handling rule for a particular caller ID. | +| [read_answering_rule](#read_answering_rule) | Returns a call handling rule by ID. | +| [update_answering_rule](#update_answering_rule) | Updates a custom call handling rule for a particular caller ID. | +| [delete_answering_rule](#delete_answering_rule) | Deletes a custom call handling rule by a particular ID. | + +## list_company_answering_rules + +Returns a list of company call handling rules. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/answering-rule` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`CompanyAnsweringRuleList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.list_company_answering_rules( + account_id="~", + page=1, + per_page=100 +) + +print(result) +``` + +## create_company_answering_rule + +Creates call handling rule on account level. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/answering-rule` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CompanyAnsweringRuleRequest](../models/CompanyAnsweringRuleRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CompanyAnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CompanyAnsweringRuleRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CompanyAnsweringRuleRequest( + name="name", + enabled=True, + type_="BusinessHours", + callers=[ + { + "caller_id": "callerId", + "name": "name" + } + ], + called_numbers=[ + { + "id_": "id", + "phone_number": "phoneNumber" + } + ], + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + }, + "ranges": [ + { + "from_": "from", + "to": "to" + } + ], + "ref": "BusinessHours" + }, + call_handling_action="Operator", + extension={ + "id_": "id" + }, + greetings=[ + { + "type_": "Introductory", + "preset": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "custom": { + "id_": "id" + } + } + ] +) + +result = sdk.call_handling_rules.create_company_answering_rule( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_company_answering_rule + +Returns a company call handling rule by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | + +**Return Type** + +`CompanyAnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.read_company_answering_rule( + account_id="~", + rule_id="ruleId" +) + +print(result) +``` + +## update_company_answering_rule + +Updates a company call handling rule. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CompanyAnsweringRuleUpdate](../models/CompanyAnsweringRuleUpdate.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | + +**Return Type** + +`CompanyAnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CompanyAnsweringRuleUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CompanyAnsweringRuleUpdate( + enabled=True, + name="name", + callers=[ + { + "caller_id": "callerId", + "name": "name" + } + ], + called_numbers=[ + { + "id_": "id", + "phone_number": "phoneNumber" + } + ], + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + }, + "ranges": [ + { + "from_": "from", + "to": "to" + } + ], + "ref": "BusinessHours" + }, + call_handling_action="Operator", + type_="BusinessHours", + extension={ + "caller_id": "callerId", + "name": "name" + }, + greetings=[ + { + "type_": "Introductory", + "preset": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "custom": { + "id_": "id" + } + } + ] +) + +result = sdk.call_handling_rules.update_company_answering_rule( + request_body=request_body, + account_id="~", + rule_id="ruleId" +) + +print(result) +``` + +## delete_company_answering_rule + +Deletes a company custom call handling rule by a particular ID. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.delete_company_answering_rule( + account_id="~", + rule_id="ruleId" +) + +print(result) +``` + +## get_forward_all_company_calls + +Returns information about _Forward All Company Calls_ feature setting. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/forward-all-calls` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ForwardAllCompanyCallsInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.get_forward_all_company_calls(account_id="~") + +print(result) +``` + +## update_forward_all_company_calls + +Updates _Forward All Company Calls_ feature setting. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/forward-all-calls` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ForwardAllCompanyCallsRequest](../models/ForwardAllCompanyCallsRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ForwardAllCompanyCallsInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ForwardAllCompanyCallsRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ForwardAllCompanyCallsRequest( + enabled=False +) + +result = sdk.call_handling_rules.update_forward_all_company_calls( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_answering_rules + +Returns call handling rules of an extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| type\_ | [ListAnsweringRulesType](../models/ListAnsweringRulesType.md) | ❌ | Filters custom call handling rules of the extension | +| view | [ListAnsweringRulesView](../models/ListAnsweringRulesView.md) | ❌ | | +| enabled_only | bool | ❌ | If true, then only active call handling rules are returned | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`UserAnsweringRuleList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListAnsweringRulesType, ListAnsweringRulesView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.list_answering_rules( + account_id="~", + extension_id="~", + type_="Custom", + view="Detailed", + enabled_only=True, + page=1, + per_page=100 +) + +print(result) +``` + +## create_answering_rule + +Creates a custom call handling rule for a particular caller ID. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateAnsweringRuleRequest](../models/CreateAnsweringRuleRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`CustomAnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateAnsweringRuleRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateAnsweringRuleRequest( + enabled=False, + type_="type", + name="name", + callers=[ + { + "caller_id": "callerId", + "name": "name" + } + ], + called_numbers=[ + { + "phone_number": "phoneNumber" + } + ], + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + }, + "ranges": [ + { + "from_": "from", + "to": "to" + } + ], + "ref": "BusinessHours" + }, + call_handling_action="ForwardCalls", + forwarding={ + "notify_my_soft_phones": True, + "soft_phones_ring_count": 9, + "soft_phones_always_ring": True, + "ringing_mode": "Sequentially", + "rules": [ + { + "index": 5, + "ring_count": 0, + "enabled": False, + "forwarding_numbers": [ + { + "id_": "id", + "uri": "uri", + "phone_number": "phoneNumber", + "label": "label", + "type_": "Home" + } + ] + } + ], + "soft_phones_position_top": True + }, + unconditional_forwarding={ + "phone_number": "phoneNumber", + "action": "HoldTimeExpiration" + }, + queue={ + "transfer_mode": "Rotating", + "transfer": [ + { + "extension": { + "id_": "id", + "uri": "uri", + "name": "name", + "extension_number": "extensionNumber" + }, + "action": "HoldTimeExpiration" + } + ], + "no_answer_action": "WaitPrimaryMembers", + "fixed_order_agents": [ + { + "extension": { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "name": "name" + }, + "index": 3 + } + ], + "hold_audio_interruption_mode": "Never", + "hold_audio_interruption_period": 0, + "hold_time_expiration_action": "TransferToExtension", + "agent_timeout": 5, + "wrap_up_time": 15, + "hold_time": 3, + "max_callers": 18, + "max_callers_action": "Voicemail", + "unconditional_forwarding": [ + { + "phone_number": "phoneNumber", + "action": "HoldTimeExpiration" + } + ] + }, + transfer={ + "extension": { + "id_": "id", + "uri": "uri" + } + }, + voicemail={ + "enabled": True, + "recipient": { + "uri": "uri", + "id_": "id" + } + }, + missed_call={ + "action_type": "PlayGreetingAndDisconnect", + "extension": { + "id_": "id", + "external_number": { + "phone_number": "phoneNumber" + } + } + }, + greetings=[ + { + "type_": "Introductory", + "preset": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "custom": { + "id_": "id" + } + } + ], + screening="Off" +) + +result = sdk.call_handling_rules.create_answering_rule( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_answering_rule + +Returns a call handling rule by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | +| show_inactive_numbers | bool | ❌ | Indicates whether inactive numbers should be returned or not | + +**Return Type** + +`AnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.read_answering_rule( + account_id="~", + extension_id="~", + rule_id="ruleId", + show_inactive_numbers=True +) + +print(result) +``` + +## update_answering_rule + +Updates a custom call handling rule for a particular caller ID. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateAnsweringRuleRequest](../models/UpdateAnsweringRuleRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | + +**Return Type** + +`AnsweringRuleInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateAnsweringRuleRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateAnsweringRuleRequest( + id_="id", + forwarding={ + "notify_my_soft_phones": False, + "soft_phones_ring_count": 5, + "soft_phones_always_ring": True, + "ringing_mode": "Sequentially", + "rules": [ + { + "index": 3, + "ring_count": 10, + "enabled": False, + "forwarding_numbers": [ + { + "id_": "id", + "type_": "Home", + "phone_number": "phoneNumber", + "label": "label" + } + ] + } + ] + }, + enabled=False, + name="name", + callers=[ + { + "caller_id": "callerId", + "name": "name" + } + ], + called_numbers=[ + { + "phone_number": "phoneNumber" + } + ], + schedule={ + "weekly_ranges": { + "monday": [ + { + "from_": "from", + "to": "to" + } + ], + "tuesday": [ + { + "from_": "from", + "to": "to" + } + ], + "wednesday": [ + { + "from_": "from", + "to": "to" + } + ], + "thursday": [ + { + "from_": "from", + "to": "to" + } + ], + "friday": [ + { + "from_": "from", + "to": "to" + } + ], + "saturday": [ + { + "from_": "from", + "to": "to" + } + ], + "sunday": [ + { + "from_": "from", + "to": "to" + } + ] + }, + "ranges": [ + { + "from_": "from", + "to": "to" + } + ], + "ref": "BusinessHours" + }, + call_handling_action="ForwardCalls", + type_="BusinessHours", + unconditional_forwarding={ + "phone_number": "phoneNumber", + "action": "HoldTimeExpiration" + }, + queue={ + "transfer_mode": "Rotating", + "transfer": [ + { + "extension": { + "id_": "id", + "uri": "uri", + "name": "name", + "extension_number": "extensionNumber" + }, + "action": "HoldTimeExpiration" + } + ], + "no_answer_action": "WaitPrimaryMembers", + "fixed_order_agents": [ + { + "extension": { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "name": "name" + }, + "index": 3 + } + ], + "hold_audio_interruption_mode": "Never", + "hold_audio_interruption_period": 0, + "hold_time_expiration_action": "TransferToExtension", + "agent_timeout": 5, + "wrap_up_time": 15, + "hold_time": 3, + "max_callers": 18, + "max_callers_action": "Voicemail", + "unconditional_forwarding": [ + { + "phone_number": "phoneNumber", + "action": "HoldTimeExpiration" + } + ] + }, + voicemail={ + "enabled": True, + "recipient": { + "uri": "uri", + "id_": "id" + } + }, + missed_call={ + "action_type": "PlayGreetingAndDisconnect", + "extension": { + "id_": "id", + "external_number": { + "phone_number": "phoneNumber" + } + } + }, + greetings=[ + { + "type_": "Introductory", + "preset": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "custom": { + "id_": "id" + } + } + ], + screening="Off", + show_inactive_numbers=False, + transfer={ + "extension": { + "id_": "id", + "uri": "uri" + } + } +) + +result = sdk.call_handling_rules.update_answering_rule( + request_body=request_body, + account_id="~", + extension_id="~", + rule_id="ruleId" +) + +print(result) +``` + +## delete_answering_rule + +Deletes a custom call handling rule by a particular ID. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/answering-rule/{ruleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| rule_id | str | ✅ | Internal identifier of a call handling rule | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_handling_rules.delete_answering_rule( + account_id="~", + extension_id="~", + rule_id="ruleId" +) + +print(result) +``` + + diff --git a/documentation/services/CallLogService.md b/documentation/services/CallLogService.md new file mode 100644 index 00000000..d3ebe1aa --- /dev/null +++ b/documentation/services/CallLogService.md @@ -0,0 +1,516 @@ +# CallLogService + +A list of all methods in the `CallLogService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ | +| [read_company_call_log](#read_company_call_log) | Returns call log records filtered by parameters specified. | +| [read_company_call_record](#read_company_call_record) | Returns individual call log record(s) by ID. Batch syntax is supported. | +| [sync_account_call_log](#sync_account_call_log) | Synchronizes company call log records. | +| [list_company_active_calls](#list_company_active_calls) | Returns records of all calls that are in progress, ordered by start time in descending order. | +| [read_user_call_log](#read_user_call_log) | Returns call log records filtered by parameters specified. | +| [delete_user_call_log](#delete_user_call_log) | Deletes filtered call log records. | +| [read_user_call_record](#read_user_call_record) | Returns call log records by ID. | +| [sync_user_call_log](#sync_user_call_log) | Synchronizes the user call log records. | +| [list_extension_active_calls](#list_extension_active_calls) | Returns records of all extension calls that are in progress, ordered by start time in descending order. | + +## read_company_call_log + +Returns call log records filtered by parameters specified. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-log` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_number | str | ❌ | Short extension number of a user. If specified, returns call log for this particular extension only. Cannot be combined with `phoneNumber` filter | +| phone_number | str | ❌ | Phone number of a caller/callee in e.164 format without a '+' sign. If specified, all incoming/outgoing calls from/to this phone number are returned. | +| direction | [List[CallDirectionEnum]](../models/CallDirectionEnum.md) | ❌ | The direction of call records to be included in the result. If omitted, both inbound and outbound calls are returned. Multiple values are supported | +| type\_ | [List[CallTypeEnum]](../models/CallTypeEnum.md) | ❌ | The type of call records to be included in the result. If omitted, all call types are returned. Multiple values are supported | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| with_recording | bool | ❌ | Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. Indicates if only recorded calls should be returned. If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored | +| recording_type | [RecordingType](../models/RecordingType.md) | ❌ | Indicates that call records with recordings of particular type should be returned. If omitted, then calls with and without recordings are returned | +| date_from | str | ❌ | The beginning of the time range to return call records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is `dateTo` minus 24 hours | +| date_to | str | ❌ | The end of the time range to return call records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time | +| session_id | str | ❌ | Internal identifier of a call session | +| telephony_session_id | str | ❌ | Internal identifier of a telephony session | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates the page size (number of items) | + +**Return Type** + +`CallLogResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView, RecordingType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +direction=[ + "Inbound" +] +type_=[ + "Voice" +] + +result = sdk.call_log.read_company_call_log( + account_id="~", + extension_number="extensionNumber", + phone_number="phoneNumber", + direction=direction, + type_=type_, + view="Simple", + recording_type="Automatic", + date_from="dateFrom", + date_to="dateTo", + session_id="sessionId", + telephony_session_id="telephonySessionId", + page=1, + per_page=100 +) + +print(result) +``` + +## read_company_call_record + +Returns individual call log record(s) by ID. Batch syntax is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-log/{callRecordId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| call_record_id | List[str] | ✅ | Internal identifier of a call log record. Multiple values are supported | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | + +**Return Type** + +`CallLogRecord` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +call_record_id=[ + "callRecordId" +] + +result = sdk.call_log.read_company_call_record( + account_id="~", + call_record_id=call_record_id, + view="Simple" +) + +print(result) +``` + +## sync_account_call_log + +Synchronizes company call log records. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-log-sync` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| sync_type | [SyncAccountCallLogSyncType](../models/SyncAccountCallLogSyncType.md) | ❌ | Type of call log synchronization request | +| sync_token | str | ❌ | Value of syncToken property of last sync request response. Mandatory parameter for 'ISync' sync type | +| date_from | str | ❌ | The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is the current moment | +| record_count | int | ❌ | For `FSync` mode this parameter is mandatory, it limits the number of records to be returned in response. For `ISync` mode this parameter specifies the number of records to extend the sync frame with to the past (the maximum number of records is 250) | +| status_group | [List[StatusGroup]](../models/StatusGroup.md) | ❌ | Type of calls to be returned | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| show_deleted | bool | ❌ | Supported for `ISync` mode. Indicates that deleted call records should be returned | +| with_recording | bool | ❌ | Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. Indicates if only recorded calls should be returned. If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored | +| recording_type | [RecordingType](../models/RecordingType.md) | ❌ | Indicates that call records with recordings of particular type should be returned. If omitted, then calls with and without recordings are returned | + +**Return Type** + +`CallLogSyncResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SyncAccountCallLogSyncType, ReadCompanyCallLogView, RecordingType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status_group=[ + "Missed" +] + +result = sdk.call_log.sync_account_call_log( + account_id="~", + sync_type="FSync", + sync_token="syncToken", + date_from="dateFrom", + record_count=7, + status_group=status_group, + view="Simple", + show_deleted=False, + recording_type="Automatic" +) + +print(result) +``` + +## list_company_active_calls + +Returns records of all calls that are in progress, ordered by start time in descending order. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/active-calls` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| direction | [List[CallDirectionEnum]](../models/CallDirectionEnum.md) | ❌ | The direction of call records to be included in the result. If omitted, both inbound and outbound calls are returned. Multiple values are supported | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| type\_ | [List[CallTypeEnum]](../models/CallTypeEnum.md) | ❌ | The type of call records to be included in the result. If omitted, all call types are returned. Multiple values are supported | +| transport | [List[CallTransportEnum]](../models/CallTransportEnum.md) | ❌ | The type of call transport. Multiple values are supported. By default, this filter is disabled | +| conference_type | [List[ConferenceType]](../models/ConferenceType.md) | ❌ | Conference call type: RCC or RC Meetings. If not specified, no conference call filter applied | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates the page size (number of items) | + +**Return Type** + +`CallLogResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +direction=[ + "Inbound" +] +type_=[ + "Voice" +] +transport=[ + "PSTN" +] +conference_type=[ + "AudioConferencing" +] + +result = sdk.call_log.list_company_active_calls( + account_id="~", + direction=direction, + view="Simple", + type_=type_, + transport=transport, + conference_type=conference_type, + page=1, + per_page=100 +) + +print(result) +``` + +## read_user_call_log + +Returns call log records filtered by parameters specified. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| extension_number | str | ❌ | Short extension number of a user. If specified, returns call log for this particular extension only. Cannot be combined with `phoneNumber` filter | +| phone_number | str | ❌ | Phone number of a caller/callee in e.164 format without a '+' sign. If specified, all incoming/outgoing calls from/to this phone number are returned. | +| show_blocked | bool | ❌ | Indicates then calls from/to blocked numbers are returned | +| direction | [List[CallDirectionEnum]](../models/CallDirectionEnum.md) | ❌ | The direction of call records to be included in the result. If omitted, both inbound and outbound calls are returned. Multiple values are supported | +| session_id | str | ❌ | Internal identifier of a call session | +| type\_ | [List[CallTypeEnum]](../models/CallTypeEnum.md) | ❌ | The type of call records to be included in the result. If omitted, all call types are returned. Multiple values are supported | +| transport | [List[CallTransportEnum]](../models/CallTransportEnum.md) | ❌ | The type of call transport. Multiple values are supported. By default, this filter is disabled | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| with_recording | bool | ❌ | Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. Indicates if only recorded calls should be returned. If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored | +| recording_type | [RecordingType](../models/RecordingType.md) | ❌ | Indicates that call records with recordings of particular type should be returned. If omitted, then calls with and without recordings are returned | +| date_to | str | ❌ | The end of the time range to return call records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time | +| date_from | str | ❌ | The beginning of the time range to return call records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is `dateTo` minus 24 hours | +| telephony_session_id | str | ❌ | Internal identifier of a telephony session | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates the page size (number of items). The default value is 100. The maximum value for `Simple` view is 1000, for `Detailed` view - 250 | +| show_deleted | bool | ❌ | Indicates that deleted calls records should be returned | + +**Return Type** + +`CallLogResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView, RecordingType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +direction=[ + "Inbound" +] +type_=[ + "Voice" +] +transport=[ + "PSTN" +] + +result = sdk.call_log.read_user_call_log( + account_id="~", + extension_id="~", + extension_number="extensionNumber", + phone_number="phoneNumber", + show_blocked=True, + direction=direction, + session_id="sessionId", + type_=type_, + transport=transport, + view="Simple", + recording_type="Automatic", + date_to="dateTo", + date_from="dateFrom", + telephony_session_id="telephonySessionId", + page=1, + per_page=100, + show_deleted=False +) + +print(result) +``` + +## delete_user_call_log + +Deletes filtered call log records. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| date_to | str | ❌ | The time boundary to delete all older records in ISO 8601 format including timezone, for example _2016-03-10T18:07:52.534Z_. The default value is current time | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_log.delete_user_call_log( + account_id="~", + extension_id="~", + date_to="dateTo" +) + +print(result) +``` + +## read_user_call_record + +Returns call log records by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log/{callRecordId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| call_record_id | List[str] | ✅ | Internal identifier of a call log record. Multiple values are supported | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | + +**Return Type** + +`CallLogRecord` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +call_record_id=[ + "callRecordId" +] + +result = sdk.call_log.read_user_call_record( + account_id="~", + extension_id="~", + call_record_id=call_record_id, + view="Simple" +) + +print(result) +``` + +## sync_user_call_log + +Synchronizes the user call log records. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log-sync` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| sync_type | [SyncAccountCallLogSyncType](../models/SyncAccountCallLogSyncType.md) | ❌ | Type of call log synchronization request | +| sync_token | str | ❌ | A `syncToken` value from the previous sync response (for `ISync` mode only, mandatory) | +| date_from | str | ❌ | The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is the current moment | +| record_count | int | ❌ | For `FSync` mode this parameter is mandatory, it limits the number of records to be returned in response. For `ISync` mode this parameter specifies the number of records to extend the sync frame with to the past (the maximum number of records is 250) | +| status_group | [List[StatusGroup]](../models/StatusGroup.md) | ❌ | Type of calls to be returned | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| show_deleted | bool | ❌ | Supported for `ISync` mode. Indicates that deleted call records should be returned | +| with_recording | bool | ❌ | Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. Indicates if only recorded calls should be returned. If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored | +| recording_type | [RecordingType](../models/RecordingType.md) | ❌ | Indicates that call records with recordings of particular type should be returned. If omitted, then calls with and without recordings are returned | + +**Return Type** + +`CallLogSyncResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SyncAccountCallLogSyncType, ReadCompanyCallLogView, RecordingType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status_group=[ + "Missed" +] + +result = sdk.call_log.sync_user_call_log( + account_id="~", + extension_id="~", + sync_type="FSync", + sync_token="syncToken", + date_from="dateFrom", + record_count=3, + status_group=status_group, + view="Simple", + show_deleted=True, + recording_type="Automatic" +) + +print(result) +``` + +## list_extension_active_calls + +Returns records of all extension calls that are in progress, ordered by start time in descending order. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/active-calls` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| direction | [List[CallDirectionEnum]](../models/CallDirectionEnum.md) | ❌ | The direction of call records to be included in the result. If omitted, both inbound and outbound calls are returned. Multiple values are supported | +| view | [ReadCompanyCallLogView](../models/ReadCompanyCallLogView.md) | ❌ | Defines the level of details for returned call records | +| type\_ | [List[CallTypeEnum]](../models/CallTypeEnum.md) | ❌ | The type of call records to be included in the result. If omitted, all call types are returned. Multiple values are supported | +| transport | [List[CallTransportEnum]](../models/CallTransportEnum.md) | ❌ | The type of call transport. Multiple values are supported. By default, this filter is disabled | +| conference_type | [List[ConferenceType]](../models/ConferenceType.md) | ❌ | Conference call type: RCC or RC Meetings. If not specified, no conference call filter applied | +| page | int | ❌ | Indicates the page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates the page size (number of items) | + +**Return Type** + +`CallLogResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadCompanyCallLogView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +direction=[ + "Inbound" +] +type_=[ + "Voice" +] +transport=[ + "PSTN" +] +conference_type=[ + "AudioConferencing" +] + +result = sdk.call_log.list_extension_active_calls( + account_id="~", + extension_id="~", + direction=direction, + view="Simple", + type_=type_, + transport=transport, + conference_type=conference_type, + page=1, + per_page=100 +) + +print(result) +``` + + diff --git a/documentation/services/CallMonitoringGroupsService.md b/documentation/services/CallMonitoringGroupsService.md new file mode 100644 index 00000000..e6ae1c16 --- /dev/null +++ b/documentation/services/CallMonitoringGroupsService.md @@ -0,0 +1,272 @@ +# CallMonitoringGroupsService + +A list of all methods in the `CallMonitoringGroupsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------------ | :----------------------------------------------------------------------- | +| [list_call_monitoring_groups](#list_call_monitoring_groups) | Returns a list of call monitoring groups filtered by an extension. | +| [create_call_monitoring_group](#create_call_monitoring_group) | Creates a new call monitoring group. | +| [update_call_monitoring_group](#update_call_monitoring_group) | Updates a call monitoring group name. | +| [delete_call_monitoring_group](#delete_call_monitoring_group) | Removes information about a call monitoring group specified in path. | +| [update_call_monitoring_group_list](#update_call_monitoring_group_list) | Updates a list of call monitoring groups. | +| [list_call_monitoring_group_members](#list_call_monitoring_group_members) | Returns a list of members for a call monitoring group specified in path. | + +## list_call_monitoring_groups + +Returns a list of call monitoring groups filtered by an extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates a page size (number of items) | +| member_extension_id | str | ❌ | Internal identifier of an extension that is a member of every group within the result | + +**Return Type** + +`CallMonitoringGroups` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_monitoring_groups.list_call_monitoring_groups( + account_id="~", + page=1, + per_page=100, + member_extension_id="memberExtensionId" +) + +print(result) +``` + +## create_call_monitoring_group + +Creates a new call monitoring group. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateCallMonitoringGroupRequest](../models/CreateCallMonitoringGroupRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallMonitoringGroup` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateCallMonitoringGroupRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateCallMonitoringGroupRequest( + name="name" +) + +result = sdk.call_monitoring_groups.create_call_monitoring_group( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## update_call_monitoring_group + +Updates a call monitoring group name. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups/{groupId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateCallMonitoringGroupRequest](../models/CreateCallMonitoringGroupRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call monitoring group | + +**Return Type** + +`CallMonitoringGroup` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateCallMonitoringGroupRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateCallMonitoringGroupRequest( + name="name" +) + +result = sdk.call_monitoring_groups.update_call_monitoring_group( + request_body=request_body, + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## delete_call_monitoring_group + +Removes information about a call monitoring group specified in path. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups/{groupId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call monitoring group | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_monitoring_groups.delete_call_monitoring_group( + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## update_call_monitoring_group_list + +Updates a list of call monitoring groups. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups/{groupId}/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallMonitoringBulkAssign](../models/CallMonitoringBulkAssign.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call monitoring group | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallMonitoringBulkAssign + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallMonitoringBulkAssign( + added_extensions=[ + { + "id_": "id", + "permissions": [ + "Monitoring" + ] + } + ], + updated_extensions=[ + { + "id_": "id", + "permissions": [ + "Monitoring" + ] + } + ], + removed_extensions=[ + { + "id_": "id", + "permissions": [ + "Monitoring" + ] + } + ] +) + +result = sdk.call_monitoring_groups.update_call_monitoring_group_list( + request_body=request_body, + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## list_call_monitoring_group_members + +Returns a list of members for a call monitoring group specified in path. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-monitoring-groups/{groupId}/members` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call monitoring group | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`CallMonitoringGroupMemberList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_monitoring_groups.list_call_monitoring_group_members( + account_id="~", + group_id="groupId", + page=1, + per_page=100 +) + +print(result) +``` + + diff --git a/documentation/services/CallQueuesService.md b/documentation/services/CallQueuesService.md new file mode 100644 index 00000000..bfdbbd74 --- /dev/null +++ b/documentation/services/CallQueuesService.md @@ -0,0 +1,364 @@ +# CallQueuesService + +A list of all methods in the `CallQueuesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [list_call_queues](#list_call_queues) | Returns a call queue list. | +| [read_call_queue_info](#read_call_queue_info) | Returns basic information on a call queue group extension. | +| [update_call_queue_info](#update_call_queue_info) | Updates information on a call queue group extension. | +| [assign_multiple_call_queue_members](#assign_multiple_call_queue_members) | Assigns multiple call queue members to call queue group. | +| [list_call_queue_members](#list_call_queue_members) | Returns a list of call queue group members. | +| [update_user_call_queues](#update_user_call_queues) | Updates a list of call queues where the user is an agent. This is a full update request, which means that if any call queue where the user is an agent is not mentioned in request, then the user is automatically removed from this queue. | +| [get_call_queue_overflow_settings](#get_call_queue_overflow_settings) | Returns overflow settings for a call queue specified in path. | +| [update_call_queue_overflow_settings](#update_call_queue_overflow_settings) | Updates overflow settings for a call queue specified in path. | + +## list_call_queues + +Returns a call queue list. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| member_extension_id | str | ❌ | Internal identifier of an extension that is a member of every group within the result | + +**Return Type** + +`CallQueues` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_queues.list_call_queues( + account_id="~", + page=1, + per_page=100, + member_extension_id="memberExtensionId" +) + +print(result) +``` + +## read_call_queue_info + +Returns basic information on a call queue group extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | | + +**Return Type** + +`CallQueueDetails` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_queues.read_call_queue_info( + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## update_call_queue_info + +Updates information on a call queue group extension. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallQueueDetails](../models/CallQueueDetails.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call queue group | + +**Return Type** + +`CallQueueDetails` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallQueueDetails + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallQueueDetails( + uri="uri", + id_="id", + extension_number="extensionNumber", + name="name", + status="Enabled", + sub_type="Emergency", + service_level_settings={ + "sla_goal": 8, + "sla_threshold_seconds": 10, + "include_abandoned_calls": False, + "abandoned_threshold_seconds": 4 + }, + editable_member_status=True, + alert_timer=5 +) + +result = sdk.call_queues.update_call_queue_info( + request_body=request_body, + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## assign_multiple_call_queue_members + +Assigns multiple call queue members to call queue group. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallQueueBulkAssignResource](../models/CallQueueBulkAssignResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call queue group | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallQueueBulkAssignResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallQueueBulkAssignResource( + added_extension_ids=[ + "addedExtensionIds" + ], + removed_extension_ids=[ + "removedExtensionIds" + ] +) + +result = sdk.call_queues.assign_multiple_call_queue_members( + request_body=request_body, + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## list_call_queue_members + +Returns a list of call queue group members. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}/members` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call queue group | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`CallQueueMembers` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_queues.list_call_queue_members( + account_id="~", + group_id="groupId", + page=1, + per_page=100 +) + +print(result) +``` + +## update_user_call_queues + +Updates a list of call queues where the user is an agent. This is a full update request, which means that if any call queue where the user is an agent is not mentioned in request, then the user is automatically removed from this queue. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queues` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UserCallQueues](../models/UserCallQueues.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`UserCallQueues` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UserCallQueues + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UserCallQueues( + records=[ + { + "id_": "id", + "name": "name" + } + ] +) + +result = sdk.call_queues.update_user_call_queues( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## get_call_queue_overflow_settings + +Returns overflow settings for a call queue specified in path. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{callQueueId}/overflow-settings` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| call_queue_id | str | ✅ | Internal identifier of a call queue | + +**Return Type** + +`CallQueueOverflowSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_queues.get_call_queue_overflow_settings( + account_id="~", + call_queue_id="callQueueId" +) + +print(result) +``` + +## update_call_queue_overflow_settings + +Updates overflow settings for a call queue specified in path. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{callQueueId}/overflow-settings` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :------------------------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallQueueOverflowSettingsRequestResource](../models/CallQueueOverflowSettingsRequestResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| call_queue_id | str | ✅ | Internal identifier of a call queue | + +**Return Type** + +`CallQueueOverflowSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallQueueOverflowSettingsRequestResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallQueueOverflowSettingsRequestResource( + enabled=True, + items=[ + { + "id_": "id" + } + ] +) + +result = sdk.call_queues.update_call_queue_overflow_settings( + request_body=request_body, + account_id="~", + call_queue_id="callQueueId" +) + +print(result) +``` + + diff --git a/documentation/services/CallRecordingSettingsService.md b/documentation/services/CallRecordingSettingsService.md new file mode 100644 index 00000000..b6c927fd --- /dev/null +++ b/documentation/services/CallRecordingSettingsService.md @@ -0,0 +1,298 @@ +# CallRecordingSettingsService + +A list of all methods in the `CallRecordingSettingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------------------------- | :-------------------------------------------------------- | +| [read_call_recording_settings](#read_call_recording_settings) | Returns call recording settings. | +| [update_call_recording_settings](#update_call_recording_settings) | Updates current call recording settings. | +| [list_call_recording_custom_greetings](#list_call_recording_custom_greetings) | Returns call recording custom greetings. | +| [delete_call_recording_custom_greeting_list](#delete_call_recording_custom_greeting_list) | Deletes call recording custom greetings. | +| [delete_call_recording_custom_greeting](#delete_call_recording_custom_greeting) | Deletes call recording custom greeting(s). | +| [update_call_recording_extension_list](#update_call_recording_extension_list) | Creates or updates the list of extensions to be recorded. | +| [list_call_recording_extensions](#list_call_recording_extensions) | Returns the list of extensions to be recorded. | + +## read_call_recording_settings + +Returns call recording settings. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallRecordingSettingsResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recording_settings.read_call_recording_settings(account_id="~") + +print(result) +``` + +## update_call_recording_settings + +Updates current call recording settings. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallRecordingSettingsResource](../models/CallRecordingSettingsResource.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallRecordingSettingsResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallRecordingSettingsResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallRecordingSettingsResource( + on_demand={ + "enabled": False, + "retention_period": 9 + }, + automatic={ + "enabled": True, + "outbound_call_tones": False, + "outbound_call_announcement": True, + "allow_mute": False, + "extension_count": 0, + "retention_period": 0, + "max_number_limit": 4 + }, + greetings=[ + { + "type_": "StartRecording", + "mode": "Default" + } + ] +) + +result = sdk.call_recording_settings.update_call_recording_settings( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_call_recording_custom_greetings + +Returns call recording custom greetings. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording/custom-greetings` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| type\_ | [ListCallRecordingCustomGreetingsType](../models/ListCallRecordingCustomGreetingsType.md) | ❌ | | + +**Return Type** + +`CallRecordingCustomGreetings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListCallRecordingCustomGreetingsType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recording_settings.list_call_recording_custom_greetings( + account_id="~", + type_="StartRecording" +) + +print(result) +``` + +## delete_call_recording_custom_greeting_list + +Deletes call recording custom greetings. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording/custom-greetings` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recording_settings.delete_call_recording_custom_greeting_list(account_id="~") + +print(result) +``` + +## delete_call_recording_custom_greeting + +Deletes call recording custom greeting(s). + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording/custom-greetings/{greetingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| greeting_id | str | ✅ | Internal identifier of a greeting | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recording_settings.delete_call_recording_custom_greeting( + account_id="~", + greeting_id="greetingId" +) + +print(result) +``` + +## update_call_recording_extension_list + +Creates or updates the list of extensions to be recorded. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BulkAccountCallRecordingsResource](../models/BulkAccountCallRecordingsResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BulkAccountCallRecordingsResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BulkAccountCallRecordingsResource( + added_extensions=[ + { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "type_": "type", + "call_direction": "Outbound" + } + ], + updated_extensions=[ + { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "type_": "type", + "call_direction": "Outbound" + } + ], + removed_extensions=[ + { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "type_": "type", + "call_direction": "Outbound" + } + ] +) + +result = sdk.call_recording_settings.update_call_recording_extension_list( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_call_recording_extensions + +Returns the list of extensions to be recorded. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recording/extensions` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CallRecordingExtensions` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recording_settings.list_call_recording_extensions(account_id="~") + +print(result) +``` + + diff --git a/documentation/services/CallRecordingsService.md b/documentation/services/CallRecordingsService.md new file mode 100644 index 00000000..4dad89ce --- /dev/null +++ b/documentation/services/CallRecordingsService.md @@ -0,0 +1,127 @@ +# CallRecordingsService + +A list of all methods in the `CallRecordingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_call_recording_content](#read_call_recording_content) | Returns media content of a call recording (`audio/mpeg` or `audio/wav`) **This API must be called via media API entry point, e.g. https://media.ringcentral.com** | +| [delete_company_call_recordings](#delete_company_call_recordings) | Deletes company call recordings by their IDs. _Please note:_ This method deletes the recording file itself, not the record of it in the call log. | +| [read_call_recording](#read_call_recording) | Returns call recordings by ID(s). | + +## read_call_recording_content + +Returns media content of a call recording (`audio/mpeg` or `audio/wav`) **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/recording/{recordingId}/content` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| recording_id | str | ✅ | Internal identifier of a call recording (returned in Call Log) | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`any` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recordings.read_call_recording_content( + account_id="~", + recording_id="625387632786", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +print(result) +``` + +## delete_company_call_recordings + +Deletes company call recordings by their IDs. _Please note:_ This method deletes the recording file itself, not the record of it in the call log. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallRecordingIds](../models/CallRecordingIds.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallRecordingIds + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallRecordingIds( + records=[ + "records" + ] +) + +result = sdk.call_recordings.delete_company_call_recordings( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_call_recording + +Returns call recordings by ID(s). + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/recording/{recordingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| recording_id | str | ✅ | Internal identifier of a call recording (returned in Call Log) | + +**Return Type** + +`GetCallRecordingResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.call_recordings.read_call_recording( + account_id="~", + recording_id="625387632786" +) + +print(result) +``` + + diff --git a/documentation/services/ChatsService.md b/documentation/services/ChatsService.md new file mode 100644 index 00000000..fb99bd0b --- /dev/null +++ b/documentation/services/ChatsService.md @@ -0,0 +1,214 @@ +# ChatsService + +A list of all methods in the `ChatsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [list_recent_chats_new](#list_recent_chats_new) | Returns recent chats where the user is a member. All records in response are sorted by the `lastModifiedTime` in descending order (the latest changed chat is displayed first on page) | +| [list_glip_chats_new](#list_glip_chats_new) | Returns the list of chats where the user is a member and also public teams that can be joined. All records in response are sorted by creation time of a chat in ascending order. **Chat types** There are multiple types of chats, including: _ **Personal** - each user is given a dedicated "personal chat" in which they are the only member. _ **Direct** - a chat between two individuals. _ **Group** - a chat between three or more named individuals. A "group" chat has no name. _ **Team** - a chat related to a specific topic. Members can come and go freely from this chat type. \* **Everyone** - a special chat containing every individual in a company. | +| [read_glip_chat_new](#read_glip_chat_new) | Returns information about a chat by ID. **Note** 'Chat' is a general name for all types of threads including _Personal_ (user's own me-chat), _Direct_ (one on one chat), _Group_ (chat of 3-15 participants without specific name), _Team_ (chat of 2 and more participants, with a specific name), _Everyone_ (company chat including all employees, with a specific name)." | +| [unfavorite_glip_chat_new](#unfavorite_glip_chat_new) | Removes the specified chat from the users's list of favorite chats. | +| [favorite_glip_chat_new](#favorite_glip_chat_new) | Adds the specified chat to the users's list of favorite chats. | +| [list_favorite_chats_new](#list_favorite_chats_new) | Returns a list of the current user's favorite chats. | + +## list_recent_chats_new + +Returns recent chats where the user is a member. All records in response are sorted by the `lastModifiedTime` in descending order (the latest changed chat is displayed first on page) + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/recent/chats` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------- | +| type\_ | [List[ListRecentChatsNewType]](../models/ListRecentChatsNewType.md) | ❌ | Type of chats to be fetched. By default, all chat types are returned | +| record_count | int | ❌ | Max number of chats to be fetched by one request (Not more than 250). | + +**Return Type** + +`TmChatListWithoutNavigation` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +type_=[ + "Everyone" +] + +result = sdk.chats.list_recent_chats_new( + type_=type_, + record_count=30 +) + +print(result) +``` + +## list_glip_chats_new + +Returns the list of chats where the user is a member and also public teams that can be joined. All records in response are sorted by creation time of a chat in ascending order. **Chat types** There are multiple types of chats, including: _ **Personal** - each user is given a dedicated "personal chat" in which they are the only member. _ **Direct** - a chat between two individuals. _ **Group** - a chat between three or more named individuals. A "group" chat has no name. _ **Team** - a chat related to a specific topic. Members can come and go freely from this chat type. \* **Everyone** - a special chat containing every individual in a company. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------- | +| type\_ | [List[ListGlipChatsNewType]](../models/ListGlipChatsNewType.md) | ❌ | Type of chats to be fetched. By default, all type of chats will be fetched | +| record_count | int | ❌ | Number of chats to be fetched by one request. The maximum value is 250, by default - 30. | +| page_token | str | ❌ | Pagination token. | + +**Return Type** + +`TmChatList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +type_=[ + "Personal" +] + +result = sdk.chats.list_glip_chats_new( + type_=type_, + record_count=30, + page_token="pageToken" +) + +print(result) +``` + +## read_glip_chat_new + +Returns information about a chat by ID. **Note** 'Chat' is a general name for all types of threads including _Personal_ (user's own me-chat), _Direct_ (one on one chat), _Group_ (chat of 3-15 participants without specific name), _Team_ (chat of 2 and more participants, with a specific name), _Everyone_ (company chat including all employees, with a specific name)." + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats/{chatId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat. If tilde (~) is specified, then `/me` (Personal) chat will be returned | + +**Return Type** + +`TmChatInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.chats.read_glip_chat_new(chat_id="chatId") + +print(result) +``` + +## unfavorite_glip_chat_new + +Removes the specified chat from the users's list of favorite chats. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/unfavorite` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat to remove from favorite list. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.chats.unfavorite_glip_chat_new(chat_id="chatId") + +print(result) +``` + +## favorite_glip_chat_new + +Adds the specified chat to the users's list of favorite chats. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/favorite` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :----------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat to add to favorite list. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.chats.favorite_glip_chat_new(chat_id="chatId") + +print(result) +``` + +## list_favorite_chats_new + +Returns a list of the current user's favorite chats. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/favorites` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------- | +| record_count | int | ❌ | Max number of chats to be fetched by one request (Not more than 250). | + +**Return Type** + +`TmChatListWithoutNavigation` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.chats.list_favorite_chats_new(record_count=30) + +print(result) +``` + + diff --git a/documentation/services/CompanyService.md b/documentation/services/CompanyService.md new file mode 100644 index 00000000..bc774905 --- /dev/null +++ b/documentation/services/CompanyService.md @@ -0,0 +1,332 @@ +# CompanyService + +A list of all methods in the `CompanyService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------- | +| [get_account_info_v2](#get_account_info_v2) | Returns basic information about particular RingCentral account | +| [send_welcome_email_v2](#send_welcome_email_v2) | Sends/resends welcome email to the system user of confirmed account | +| [send_activation_email_v2](#send_activation_email_v2) | Sends/resends activation email to the system user of unconfirmed account. | +| [read_account_info](#read_account_info) | Returns basic information about a particular RingCentral customer account. | +| [read_account_service_info](#read_account_service_info) | Returns the information about service plan, available features and limitations for a particular RingCentral customer account. | +| [read_account_business_address](#read_account_business_address) | Returns business address of a company. | +| [update_account_business_address](#update_account_business_address) | Updates the business address of a company that account is linked to. | +| [list_contracted_countries](#list_contracted_countries) | Returns the list of contracted countries for the given brand. | +| [list_domestic_countries](#list_domestic_countries) | Returns the list of domestic countries for account contracted country and brand. | + +## get_account_info_v2 + +Returns basic information about particular RingCentral account + +- HTTP Method: `GET` +- Endpoint: `/restapi/v2/accounts/{accountId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AccountInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.get_account_info_v2(account_id="~") + +print(result) +``` + +## send_welcome_email_v2 + +Sends/resends welcome email to the system user of confirmed account + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/send-welcome-email` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SendWelcomeEmailV2Request](../models/SendWelcomeEmailV2Request.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SendWelcomeEmailV2Request + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SendWelcomeEmailV2Request( + email="user@email.com" +) + +result = sdk.company.send_welcome_email_v2( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## send_activation_email_v2 + +Sends/resends activation email to the system user of unconfirmed account. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/send-activation-email` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.send_activation_email_v2(account_id="~") + +print(result) +``` + +## read_account_info + +Returns basic information about a particular RingCentral customer account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`GetAccountInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.read_account_info(account_id="~") + +print(result) +``` + +## read_account_service_info + +Returns the information about service plan, available features and limitations for a particular RingCentral customer account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/service-info` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AccountServiceInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.read_account_service_info(account_id="~") + +print(result) +``` + +## read_account_business_address + +Returns business address of a company. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/business-address` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AccountBusinessAddressResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.read_account_business_address(account_id="~") + +print(result) +``` + +## update_account_business_address + +Updates the business address of a company that account is linked to. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/business-address` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ModifyAccountBusinessAddressRequest](../models/ModifyAccountBusinessAddressRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AccountBusinessAddressResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ModifyAccountBusinessAddressRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ModifyAccountBusinessAddressRequest( + company="company", + email="email", + business_address={ + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + main_site_name="mainSiteName" +) + +result = sdk.company.update_account_business_address( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_contracted_countries + +Returns the list of contracted countries for the given brand. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/brand/{brandId}/contracted-country` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------- | +| brand_id | str | ✅ | | + +**Return Type** + +`ContractedCountryListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.list_contracted_countries(brand_id="brandId") + +print(result) +``` + +## list_domestic_countries + +Returns the list of domestic countries for account contracted country and brand. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/brand/{brandId}/contracted-country/{contractedCountryId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------------------------------------------------------------- | +| brand_id | str | ✅ | Internal identifier of a brand | +| contracted_country_id | str | ✅ | Internal identifier of a country | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`CountryListDictionaryModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.company.list_domestic_countries( + brand_id="brandId", + contracted_country_id="contractedCountryId", + page=1, + per_page=100 +) + +print(result) +``` + + diff --git a/documentation/services/ComplianceExportsService.md b/documentation/services/ComplianceExportsService.md new file mode 100644 index 00000000..99c70138 --- /dev/null +++ b/documentation/services/ComplianceExportsService.md @@ -0,0 +1,129 @@ +# ComplianceExportsService + +A list of all methods in the `ComplianceExportsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_data_export_tasks_new](#list_data_export_tasks_new) | Returns the list of Glip data export tasks. | +| [create_data_export_task_new](#create_data_export_task_new) | Creates a task for Glip data export and returns a link at which the exported data will be available in future once the task is implemented. The exported data can be downloaded by calling Get Data Export Task method with the specified task ID. Simultaneously no more than 2 tasks per company can be created. | +| [read_data_export_task_new](#read_data_export_task_new) | Returns the links for downloading Glip data exported within the specified task. If the export task is still in progress, then only the task status will be returned. If the data is ready for downloading, then the list of URLs will be returned. | + +## list_data_export_tasks_new + +Returns the list of Glip data export tasks. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/data-export` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :------------------------------------------------------------------------ | :------- | :------------------------------------------------------------------ | +| status | [ListDataExportTasksNewStatus](../models/ListDataExportTasksNewStatus.md) | ❌ | Status of the task(s) to be returned. Multiple values are supported | +| page | int | ❌ | Page number to be retrieved; value range is > 0 | +| per_page | int | ❌ | Number of records to be returned per page; value range is 1 - 250 | + +**Return Type** + +`DataExportTaskList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListDataExportTasksNewStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.compliance_exports.list_data_export_tasks_new( + status="Accepted", + page=1, + per_page=30 +) + +print(result) +``` + +## create_data_export_task_new + +Creates a task for Glip data export and returns a link at which the exported data will be available in future once the task is implemented. The exported data can be downloaded by calling Get Data Export Task method with the specified task ID. Simultaneously no more than 2 tasks per company can be created. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/data-export` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------- | :------- | :---------------- | +| request_body | [CreateDataExportTaskRequest](../models/CreateDataExportTaskRequest.md) | ❌ | The request body. | + +**Return Type** + +`DataExportTask` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateDataExportTaskRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateDataExportTaskRequest( + time_from="timeFrom", + time_to="timeTo", + contacts=[ + { + "id_": "id", + "email": "email" + } + ], + chat_ids=[ + "chatIds" + ] +) + +result = sdk.compliance_exports.create_data_export_task_new(request_body=request_body) + +print(result) +``` + +## read_data_export_task_new + +Returns the links for downloading Glip data exported within the specified task. If the export task is still in progress, then only the task status will be returned. If the data is ready for downloading, then the list of URLs will be returned. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/data-export/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------- | +| task_id | str | ✅ | Internal identifier of a task to be retrieved | + +**Return Type** + +`DataExportTask` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.compliance_exports.read_data_export_task_new(task_id="taskId") + +print(result) +``` + + diff --git a/documentation/services/ContentsService.md b/documentation/services/ContentsService.md new file mode 100644 index 00000000..69efcbbf --- /dev/null +++ b/documentation/services/ContentsService.md @@ -0,0 +1,186 @@ +# ContentsService + +A list of all methods in the `ContentsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [soc_msg_list_contents](#soc_msg_list_contents) | List contents by creation date. The default creation order is descending. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. The query parameters provided shall be considered an AND operation to filter the list. A query parameter not specified or a query parameter provided with no value is treated as not required for filtering the list. | +| [soc_msg_create_content](#soc_msg_create_content) | Creates new content for use in discussions. This request is used to reply to already-posted content or to initiate a discussion. If authorized, the authenticated user will be used as the content author. Content will be created and pushed asynchronously to the channel. When the content is successfully pushed to the channel, the Content.Exported event will be reported. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. Replying to customer content is usually possible unless the channel or conversation is read only. Composing content, on the contrary, depends on the channel itself. _ The channel may not support it (and be purely reactive like Instagram, Messenger, etc.). _ Some channels (usually public accounts like Twitter or Facebook pages) allow for the publishing of content without targeting specific individuals. \* Some channels (usually non-public media) require specific targeting (phone number for SMS, email address for email, customer_id, etc.) to be able to create content. This is channel-specific and detailed under the generic parameters. | +| [soc_msg_get_content](#soc_msg_get_content) | Retrieves the content from the given id. | + +## soc_msg_list_contents + +List contents by creation date. The default creation order is descending. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. The query parameters provided shall be considered an AND operation to filter the list. A query parameter not specified or a query parameter provided with no value is treated as not required for filtering the list. + +- HTTP Method: `GET` +- Endpoint: `/cx/social-messaging/v1/contents` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :-------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| intervention | List[str] | ❌ | Filter based on the specified intervention identifiers. | +| identity | List[str] | ❌ | Filter based on the specified identity identifiers. | +| identity_group | List[str] | ❌ | Filter based on the specified identity group identifiers. | +| source | List[str] | ❌ | Filter based on the specified channel identifiers. | +| thread | List[str] | ❌ | Filter based on the specified thread identifiers. | +| text | List[str] | ❌ | Filter based on the specified text(s). Provided multiple times, the values are ANDed. | +| status | [List[ContentStatus]](../models/ContentStatus.md) | ❌ | Filter for specified status. | +| order_by | [SocMsgCreationTimeOrder](../models/SocMsgCreationTimeOrder.md) | ❌ | Order results by specified field. | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`ContentList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SocMsgCreationTimeOrder + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +intervention=[ + "intervention" +] +identity=[ + "identity" +] +identity_group=[ + "identityGroup" +] +source=[ + "source" +] +thread=[ + "thread" +] +text=[ + "text" +] +status=[ + "New" +] + +result = sdk.contents.soc_msg_list_contents( + intervention=intervention, + identity=identity, + identity_group=identity_group, + source=source, + thread=thread, + text=text, + status=status, + order_by="-creationTime", + page_token="pageToken", + per_page=100 +) + +print(result) +``` + +## soc_msg_create_content + +Creates new content for use in discussions. This request is used to reply to already-posted content or to initiate a discussion. If authorized, the authenticated user will be used as the content author. Content will be created and pushed asynchronously to the channel. When the content is successfully pushed to the channel, the Content.Exported event will be reported. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. Replying to customer content is usually possible unless the channel or conversation is read only. Composing content, on the contrary, depends on the channel itself. _ The channel may not support it (and be purely reactive like Instagram, Messenger, etc.). _ Some channels (usually public accounts like Twitter or Facebook pages) allow for the publishing of content without targeting specific individuals. \* Some channels (usually non-public media) require specific targeting (phone number for SMS, email address for email, customer_id, etc.) to be able to create content. This is channel-specific and detailed under the generic parameters. + +- HTTP Method: `POST` +- Endpoint: `/cx/social-messaging/v1/contents` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :---------------- | +| request_body | [CreateContentRequest](../models/CreateContentRequest.md) | ✅ | The request body. | + +**Return Type** + +`ContentModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateContentRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateContentRequest( + author_identity_id="541014e17aa58d8ccf000023", + body="Body of the content", + in_reply_to_content_id="123414e17asdd8ccf000023", + public=True, + source_id="fff415437asdd8ccf000023", + attachment_ids=[ + "506d9e817aa58d1259000f12" + ], + title="An email title", + to=[ + "+33634231224" + ], + cc=[ + "user@example.com" + ], + bcc=[ + "user@example.com" + ], + template_name="customer_order_shipment_template", + template_language="fr", + components=[ + { + "type_": "type", + "parameters": [ + { + "type_": "type", + "text": "text" + } + ] + } + ], + context_data={}, + auto_submitted=True +) + +result = sdk.contents.soc_msg_create_content(request_body=request_body) + +print(result) +``` + +## soc_msg_get_content + +Retrieves the content from the given id. + +- HTTP Method: `GET` +- Endpoint: `/cx/social-messaging/v1/contents/{contentId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------- | +| content_id | str | ✅ | | + +**Return Type** + +`ContentModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.contents.soc_msg_get_content(content_id="contentId") + +print(result) +``` + + diff --git a/documentation/services/ConversationsService.md b/documentation/services/ConversationsService.md new file mode 100644 index 00000000..049f4c7b --- /dev/null +++ b/documentation/services/ConversationsService.md @@ -0,0 +1,121 @@ +# ConversationsService + +A list of all methods in the `ConversationsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_glip_conversations_new](#list_glip_conversations_new) | Returns the list of conversations where the user is a member. All records in response are sorted by creation time of a conversation in ascending order. Conversation is a chat of the _Group_ type. | +| [create_glip_conversation_new](#create_glip_conversation_new) | Creates a new conversation or opens the existing one. If the conversation already exists, then its ID will be returned in response. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation (group), it creates a whole new conversation. | +| [read_glip_conversation_new](#read_glip_conversation_new) | Returns information about the specified conversation, including the list of conversation participants. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation, it creates a whole new conversation. | + +## list_glip_conversations_new + +Returns the list of conversations where the user is a member. All records in response are sorted by creation time of a conversation in ascending order. Conversation is a chat of the _Group_ type. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/conversations` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------------------------------------------------------------------------------------------- | +| record_count | int | ❌ | Number of conversations to be fetched by one request. The maximum value is 250, by default - 30 | +| page_token | str | ❌ | Pagination token. | + +**Return Type** + +`TmConversationList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.conversations.list_glip_conversations_new( + record_count=30, + page_token="pageToken" +) + +print(result) +``` + +## create_glip_conversation_new + +Creates a new conversation or opens the existing one. If the conversation already exists, then its ID will be returned in response. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation (group), it creates a whole new conversation. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/conversations` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :---------------- | +| request_body | [CreateConversationRequest](../models/CreateConversationRequest.md) | ✅ | The request body. | + +**Return Type** + +`TmConversationInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateConversationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateConversationRequest( + members=[ + { + "id_": "id", + "email": "email" + } + ] +) + +result = sdk.conversations.create_glip_conversation_new(request_body=request_body) + +print(result) +``` + +## read_glip_conversation_new + +Returns information about the specified conversation, including the list of conversation participants. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation, it creates a whole new conversation. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/conversations/{chatId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a conversation to be returned. | + +**Return Type** + +`TmConversationInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.conversations.read_glip_conversation_new(chat_id="chatId") + +print(result) +``` + + diff --git a/documentation/services/CustomFieldsService.md b/documentation/services/CustomFieldsService.md new file mode 100644 index 00000000..7e234a6a --- /dev/null +++ b/documentation/services/CustomFieldsService.md @@ -0,0 +1,161 @@ +# CustomFieldsService + +A list of all methods in the `CustomFieldsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------ | :-------------------------------------------------------------- | +| [list_custom_fields](#list_custom_fields) | Returns the list of created custom fields. | +| [create_custom_field](#create_custom_field) | Creates custom field attached to the object. | +| [update_custom_field](#update_custom_field) | Updates custom field by ID specified in path. | +| [delete_custom_field](#delete_custom_field) | Deletes custom field(s) by ID(s) with the corresponding values. | + +## list_custom_fields + +Returns the list of created custom fields. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/custom-fields` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CustomFieldList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.custom_fields.list_custom_fields(account_id="~") + +print(result) +``` + +## create_custom_field + +Creates custom field attached to the object. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/custom-fields` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CustomFieldCreateRequest](../models/CustomFieldCreateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CustomFieldModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CustomFieldCreateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CustomFieldCreateRequest( + category="User", + display_name="displayName" +) + +result = sdk.custom_fields.create_custom_field( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## update_custom_field + +Updates custom field by ID specified in path. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/custom-fields/{fieldId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CustomFieldUpdateRequest](../models/CustomFieldUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| field_id | str | ✅ | Custom field identifier | + +**Return Type** + +`CustomFieldModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CustomFieldUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CustomFieldUpdateRequest( + display_name="displayName" +) + +result = sdk.custom_fields.update_custom_field( + request_body=request_body, + account_id="~", + field_id="fieldId" +) + +print(result) +``` + +## delete_custom_field + +Deletes custom field(s) by ID(s) with the corresponding values. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/custom-fields/{fieldId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| field_id | str | ✅ | Custom field identifier | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.custom_fields.delete_custom_field( + account_id="~", + field_id="fieldId" +) + +print(result) +``` + + diff --git a/documentation/services/DelegationManagementService.md b/documentation/services/DelegationManagementService.md new file mode 100644 index 00000000..4f06a5a3 --- /dev/null +++ b/documentation/services/DelegationManagementService.md @@ -0,0 +1,45 @@ +# DelegationManagementService + +A list of all methods in the `DelegationManagementService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------ | :------------------------------------------------------------------------------------ | +| [rcv_list_delegators](#rcv_list_delegators) | Returns the list of users who can delegate bridge/meeting creation to the given user. | + +## rcv_list_delegators + +Returns the list of users who can delegate bridge/meeting creation to the given user. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v1/accounts/{accountId}/extensions/{extensionId}/delegators` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| account_id | str | ✅ | | +| extension_id | str | ✅ | | + +**Return Type** + +`DelegatorsListResult` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.delegation_management.rcv_list_delegators( + account_id="accountId", + extension_id="extensionId" +) + +print(result) +``` + + diff --git a/documentation/services/DeviceSipRegistrationService.md b/documentation/services/DeviceSipRegistrationService.md new file mode 100644 index 00000000..5458d867 --- /dev/null +++ b/documentation/services/DeviceSipRegistrationService.md @@ -0,0 +1,57 @@ +# DeviceSipRegistrationService + +A list of all methods in the `DeviceSipRegistrationService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------- | :------------------------------------------------------------------------------ | +| [create_sip_registration](#create_sip_registration) | Creates SIP registration of a device/application (WebPhone, Mobile, Softphone). | + +## create_sip_registration + +Creates SIP registration of a device/application (WebPhone, Mobile, Softphone). + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/client-info/sip-provision` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------ | :------- | :---------------- | +| request_body | [CreateSipRegistrationRequest](../models/CreateSipRegistrationRequest.md) | ✅ | The request body. | + +**Return Type** + +`CreateSipRegistrationResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateSipRegistrationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateSipRegistrationRequest( + device={ + "id_": "id", + "app_external_id": "appExternalId", + "computer_name": "computerName", + "serial": "serial" + }, + sip_info=[ + { + "transport": "UDP" + } + ], + soft_phone_line_reassignment="None" +) + +result = sdk.device_sip_registration.create_sip_registration(request_body=request_body) + +print(result) +``` + + diff --git a/documentation/services/DevicesService.md b/documentation/services/DevicesService.md new file mode 100644 index 00000000..7348927c --- /dev/null +++ b/documentation/services/DevicesService.md @@ -0,0 +1,563 @@ +# DevicesService + +A list of all methods in the `DevicesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [add_device_to_inventory](#add_device_to_inventory) | Adds an existing phone (customer provided device - BYOD) as an unassigned device to the account inventory. | +| [delete_device_from_inventory](#delete_device_from_inventory) | Deletes an existing unassigned (without digital line or phone number) device or multiple devices from the account inventory. It is possible to delete up to 10 devices per request. | +| [remove_line_jws_public](#remove_line_jws_public) | Disassociates a phone line (DL & Device) from an extension: - if the value of `keepAssetsInInventory` is `true`, the given device is moved to unassigned devices and the number is moved to the number inventory; - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account; - if the parameter `keepAssetsInInventory` is not set (empty body), default value `true` is set. | +| [bulk_add_devices_v2](#bulk_add_devices_v2) | Adds multiple BYOD (customer provided) devices to an account. | +| [replace_devices_jws_public](#replace_devices_jws_public) | Replaces the user device with another device, which is assigned to an extension or is stored in the inventory of the same account. Currently, the following device types can be swapped - `HardPhone` and `OtherPhone`. Please note: - This method allows replacing a device itself, while a phone number, a digital Line and an emergency address associated with this device remain unchanged and will still work together in a chain with the replacement device. - If a target device is from the inventory, then a source device will be moved to the inventory, and a target device will be assigned to the current extension. - If a target device is currently assigned to another extension, then the devices will be just swapped. | +| [read_device](#read_device) | Returns account device(s) by their ID(s). | +| [update_device](#update_device) | Updates account device(s) by their ID(s). | +| [read_device_sip_info](#read_device_sip_info) | Returns device SIP information. | +| [update_device_emergency](#update_device_emergency) | Updates account device emergency information. | +| [list_extension_devices](#list_extension_devices) | Returns devices of an extension or multiple extensions by their ID(s). Batch request is supported. | + +## add_device_to_inventory + +Adds an existing phone (customer provided device - BYOD) as an unassigned device to the account inventory. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/device-inventory` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddDeviceToInventoryRequest](../models/AddDeviceToInventoryRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AddDeviceToInventoryResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddDeviceToInventoryRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddDeviceToInventoryRequest( + type_="OtherPhone", + quantity=12, + site={ + "id_": "id" + } +) + +result = sdk.devices.add_device_to_inventory( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## delete_device_from_inventory + +Deletes an existing unassigned (without digital line or phone number) device or multiple devices from the account inventory. It is possible to delete up to 10 devices per request. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v2/accounts/{accountId}/device-inventory` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [DeleteDeviceFromInventoryRequest](../models/DeleteDeviceFromInventoryRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`DeleteDeviceFromInventoryResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DeleteDeviceFromInventoryRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = DeleteDeviceFromInventoryRequest( + records=[ + { + "device_id": "deviceId" + } + ] +) + +result = sdk.devices.delete_device_from_inventory( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## remove_line_jws_public + +Disassociates a phone line (DL & Device) from an extension: - if the value of `keepAssetsInInventory` is `true`, the given device is moved to unassigned devices and the number is moved to the number inventory; - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account; - if the parameter `keepAssetsInInventory` is not set (empty body), default value `true` is set. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v2/accounts/{accountId}/devices/{deviceId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [RemoveLineRequest](../models/RemoveLineRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a source device | + +**Return Type** + +`RemoveLineResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RemoveLineRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RemoveLineRequest( + keep_assets_in_inventory=True +) + +result = sdk.devices.remove_line_jws_public( + request_body=request_body, + account_id="~", + device_id="deviceId" +) + +print(result) +``` + +## bulk_add_devices_v2 + +Adds multiple BYOD (customer provided) devices to an account. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/devices/bulk-add` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BulkAddDevicesRequest](../models/BulkAddDevicesRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`BulkAddDevicesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BulkAddDevicesRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BulkAddDevicesRequest( + records=[ + { + "cost_center_id": "224149", + "extension": { + "id_": "12345" + }, + "type_": "OtherPhone", + "emergency": { + "address": { + "street": "20 Davis Dr", + "street2": "non ea dolore", + "city": "Belmont", + "state": "CA", + "zip": "94002", + "country": "US" + } + }, + "phone_info": { + "toll_type": "Toll" + } + } + ] +) + +result = sdk.devices.bulk_add_devices_v2( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## replace_devices_jws_public + +Replaces the user device with another device, which is assigned to an extension or is stored in the inventory of the same account. Currently, the following device types can be swapped - `HardPhone` and `OtherPhone`. Please note: - This method allows replacing a device itself, while a phone number, a digital Line and an emergency address associated with this device remain unchanged and will still work together in a chain with the replacement device. - If a target device is from the inventory, then a source device will be moved to the inventory, and a target device will be assigned to the current extension. - If a target device is currently assigned to another extension, then the devices will be just swapped. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SwapDeviceRequest](../models/SwapDeviceRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a source device that is currently assigned to the given extension | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SwapDeviceRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SwapDeviceRequest( + target_device_id="8459879873" +) + +result = sdk.devices.replace_devices_jws_public( + request_body=request_body, + account_id="~", + extension_id="~", + device_id="deviceId" +) + +print(result) +``` + +## read_device + +Returns account device(s) by their ID(s). + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/device/{deviceId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a device | +| sync_emergency_address | bool | ❌ | Specifies if an emergency address should be synchronized or not | + +**Return Type** + +`DeviceResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.devices.read_device( + account_id="~", + device_id="deviceId", + sync_emergency_address=False +) + +print(result) +``` + +## update_device + +Updates account device(s) by their ID(s). + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/device/{deviceId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AccountDeviceUpdate](../models/AccountDeviceUpdate.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a device | +| prestatement | bool | ❌ | | + +**Return Type** + +`DeviceResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AccountDeviceUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AccountDeviceUpdate( + emergency_service_address={ + "street": "street", + "street2": "street2", + "city": "city", + "zip": "zip", + "customer_name": "customerName", + "state": "state", + "state_id": "stateId", + "country": "country", + "country_id": "countryId" + }, + emergency={ + "address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + }, + "location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + }, + "out_of_country": False, + "address_status": "Valid", + "visibility": "Private", + "sync_status": "Verified", + "address_editable_status": "MainDevice" + }, + extension={ + "id_": "id" + }, + phone_lines={ + "phone_lines": [ + { + "id_": "id" + } + ] + }, + use_as_common_phone=False, + name="name" +) + +result = sdk.devices.update_device( + request_body=request_body, + account_id="~", + device_id="deviceId", + prestatement=True +) + +print(result) +``` + +## read_device_sip_info + +Returns device SIP information. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a device | + +**Return Type** + +`SipInfoResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.devices.read_device_sip_info( + account_id="~", + device_id="deviceId" +) + +print(result) +``` + +## update_device_emergency + +Updates account device emergency information. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/device/{deviceId}/emergency` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AccountDeviceUpdate](../models/AccountDeviceUpdate.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| device_id | str | ✅ | Internal identifier of a device | + +**Return Type** + +`DeviceResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AccountDeviceUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AccountDeviceUpdate( + emergency_service_address={ + "street": "street", + "street2": "street2", + "city": "city", + "zip": "zip", + "customer_name": "customerName", + "state": "state", + "state_id": "stateId", + "country": "country", + "country_id": "countryId" + }, + emergency={ + "address": { + "country": "country", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state": "state", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "city": "city", + "street": "street", + "street2": "street2", + "zip": "zip", + "customer_name": "customerName" + }, + "location": { + "id_": "id", + "name": "name", + "address_format_id": "addressFormatId" + }, + "out_of_country": False, + "address_status": "Valid", + "visibility": "Private", + "sync_status": "Verified", + "address_editable_status": "MainDevice" + }, + extension={ + "id_": "id" + }, + phone_lines={ + "phone_lines": [ + { + "id_": "id" + } + ] + }, + use_as_common_phone=False, + name="name" +) + +result = sdk.devices.update_device_emergency( + request_body=request_body, + account_id="~", + device_id="deviceId" +) + +print(result) +``` + +## list_extension_devices + +Returns devices of an extension or multiple extensions by their ID(s). Batch request is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/device` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| line_pooling | [LinePooling](../models/LinePooling.md) | ❌ | Pooling type of device - Host - a device with standalone paid phone line which can be linked to a soft client instance - Guest - a device with a linked phone line - None - a device without a phone line or with specific line (free, BLA, etc.) | +| feature | [DeviceFeatureEnum](../models/DeviceFeatureEnum.md) | ❌ | Device feature or multiple features supported | +| type\_ | [ListExtensionDevicesType](../models/ListExtensionDevicesType.md) | ❌ | Device type | +| line_type | [PhoneLineTypeEnum](../models/PhoneLineTypeEnum.md) | ❌ | Phone line type | + +**Return Type** + +`GetExtensionDevicesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import LinePooling, DeviceFeatureEnum, ListExtensionDevicesType, PhoneLineTypeEnum + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.devices.list_extension_devices( + account_id="~", + extension_id="~", + page=1, + per_page=100, + line_pooling="Host", + feature="BLA", + type_="HardPhone", + line_type="Unknown" +) + +print(result) +``` + + diff --git a/documentation/services/ExtensionsService.md b/documentation/services/ExtensionsService.md new file mode 100644 index 00000000..170c214f --- /dev/null +++ b/documentation/services/ExtensionsService.md @@ -0,0 +1,505 @@ +# ExtensionsService + +A list of all methods in the `ExtensionsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | +| [extension_bulk_update](#extension_bulk_update) | Updates multiple extensions at once. Maximum 500 extensions can be updated per request. | +| [get_extension_bulk_update_task](#get_extension_bulk_update_task) | Returns a status of a task to update multiple extensions. | +| [list_user_templates](#list_user_templates) | Returns the list of user templates for the current account. | +| [read_user_template](#read_user_template) | Returns the user template by ID. | +| [list_extensions](#list_extensions) | Returns the list of extensions created for a particular account. All types of extensions are included in this list. | +| [create_extension](#create_extension) | Creates an extension. | + +## extension_bulk_update + +Updates multiple extensions at once. Maximum 500 extensions can be updated per request. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension-bulk-update` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ExtensionBulkUpdateRequest](../models/ExtensionBulkUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ExtensionBulkUpdateTaskResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionBulkUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ExtensionBulkUpdateRequest( + records=[ + { + "id_": "id", + "status": "Disabled", + "status_info": { + "comment": "comment", + "reason": "SuspendedVoluntarily", + "till": "till" + }, + "reason": "reason", + "comment": "comment", + "extension_number": "extensionNumber", + "contact": { + "first_name": "firstName", + "last_name": "lastName", + "company": "company", + "job_title": "jobTitle", + "email": "email", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "email_as_login_name": True, + "pronounced_name": { + "type_": "Default", + "text": "text", + "prompt": { + "id_": "id", + "content_uri": "contentUri", + "content_type": "audio/mpeg" + } + }, + "department": "department" + }, + "regional_settings": { + "home_country": { + "id_": "id" + }, + "timezone": { + "id_": "id" + }, + "language": { + "id_": "id" + }, + "greeting_language": { + "id_": "id" + }, + "formatting_locale": { + "id_": "id" + }, + "currency": { + "id_": "id" + }, + "time_format": "12h" + }, + "setup_wizard_state": "NotStarted", + "partner_id": "partnerId", + "ivr_pin": "ivrPin", + "password": "password", + "call_queue_info": { + "sla_goal": 4, + "sla_threshold_seconds": 10, + "include_abandoned_calls": True, + "abandoned_threshold_seconds": 10 + }, + "transition": { + "send_welcome_emails_to_users": False, + "send_welcome_email": False + }, + "cost_center": { + "id_": "id", + "name": "name" + }, + "custom_fields": [ + { + "id_": "id", + "value": "value", + "display_name": "displayName" + } + ], + "hidden": True, + "site": { + "id_": "id", + "uri": "uri", + "name": "name", + "code": "code" + }, + "type_": "User", + "references": [ + { + "ref": "ref", + "type_": "PartnerId", + "ref_acc_id": "refAccId" + } + ] + } + ] +) + +result = sdk.extensions.extension_bulk_update( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## get_extension_bulk_update_task + +Returns a status of a task to update multiple extensions. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension-bulk-update/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | Internal identifier of a task | + +**Return Type** + +`ExtensionBulkUpdateTaskResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.extensions.get_extension_bulk_update_task( + account_id="~", + task_id="taskId" +) + +print(result) +``` + +## list_user_templates + +Returns the list of user templates for the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/templates` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| type\_ | [ListUserTemplatesType](../models/ListUserTemplatesType.md) | ❌ | Type of template | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed. Default value is '1' | +| per_page | int | ❌ | Indicates a page size (number of items). If not specified, the value is '100' by default | + +**Return Type** + +`UserTemplates` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListUserTemplatesType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.extensions.list_user_templates( + account_id="~", + type_="UserSettings", + page=1, + per_page=100 +) + +print(result) +``` + +## read_user_template + +Returns the user template by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a template | + +**Return Type** + +`TemplateInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.extensions.read_user_template( + account_id="~", + template_id="templateId" +) + +print(result) +``` + +## list_extensions + +Returns the list of extensions created for a particular account. All types of extensions are included in this list. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_number | str | ❌ | Extension short number to filter records | +| email | str | ❌ | Extension email address. Multiple values are accepted | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates a page size (number of items) | +| status | [List[ListExtensionsStatus]](../models/ListExtensionsStatus.md) | ❌ | Extension current state. Multiple values are supported. If 'Unassigned' is specified, then extensions without `extensionNumber` attribute are returned. If not specified, then all extensions are returned | +| type\_ | [List[ListExtensionsType]](../models/ListExtensionsType.md) | ❌ | Extension type. Multiple values are supported. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | + +**Return Type** + +`GetExtensionListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status=[ + "Enabled" +] +type_=[ + "User" +] + +result = sdk.extensions.list_extensions( + account_id="~", + extension_number="extensionNumber", + email="email", + page=1, + per_page=100, + status=status, + type_=type_ +) + +print(result) +``` + +## create_extension + +Creates an extension. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ExtensionCreationRequest](../models/ExtensionCreationRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`ExtensionCreationResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionCreationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ExtensionCreationRequest( + contact={ + "first_name": "firstName", + "last_name": "lastName", + "company": "company", + "job_title": "jobTitle", + "email": "email", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "email_as_login_name": False, + "pronounced_name": { + "type_": "Default", + "text": "text", + "prompt": { + "id_": "id", + "content_uri": "contentUri", + "content_type": "audio/mpeg" + } + }, + "department": "department" + }, + extension_number="extensionNumber", + cost_center={ + "id_": "id", + "name": "name" + }, + custom_fields=[ + { + "id_": "id", + "value": "value", + "display_name": "displayName" + } + ], + password="password", + references=[ + { + "ref": "ref", + "type_": "PartnerId", + "ref_acc_id": "refAccId" + } + ], + regional_settings={ + "home_country": { + "id_": "id", + "uri": "uri", + "name": "name", + "iso_code": "isoCode", + "calling_code": "callingCode" + }, + "timezone": { + "id_": "id", + "uri": "uri", + "name": "name", + "description": "description", + "bias": "bias" + }, + "language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "greeting_language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "formatting_locale": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "time_format": "12h" + }, + partner_id="partnerId", + ivr_pin="ivrPin", + setup_wizard_state="NotStarted", + site={ + "id_": "id", + "uri": "uri", + "name": "name", + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "email": "email", + "business_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "regional_settings": { + "home_country": { + "id_": "id", + "uri": "uri", + "name": "name", + "iso_code": "isoCode", + "calling_code": "callingCode" + }, + "timezone": { + "id_": "id", + "uri": "uri", + "name": "name", + "description": "description", + "bias": "bias" + }, + "language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "greeting_language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "formatting_locale": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "time_format": "12h" + }, + "operator": { + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "name": "name" + }, + "code": "code" + }, + status="Enabled", + status_info={ + "comment": "comment", + "reason": "SuspendedVoluntarily", + "till": "till" + }, + type_="User", + hidden=False +) + +result = sdk.extensions.create_extension( + request_body=request_body, + account_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/ExternalContactsService.md b/documentation/services/ExternalContactsService.md new file mode 100644 index 00000000..9d1e3f16 --- /dev/null +++ b/documentation/services/ExternalContactsService.md @@ -0,0 +1,687 @@ +# ExternalContactsService + +A list of all methods in the `ExternalContactsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [address_book_bulk_upload](#address_book_bulk_upload) | Uploads multiple contacts for multiple extensions at once. Maximum 500 extensions can be uploaded per request. Max amount of contacts that can be uploaded per extension is 10,000. Each contact uploaded for a certain extension is not visible to other extensions. | +| [get_address_book_bulk_upload_task](#get_address_book_bulk_upload_task) | Returns the status of a task on adding multiple contacts to multiple extensions. | +| [list_favorite_contacts](#list_favorite_contacts) | Returns the list of favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records). | +| [update_favorite_contact_list](#update_favorite_contact_list) | Updates the list of favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records).**Please note**: Currently personal address book size is limited to 10 000 contacts. | +| [list_contacts](#list_contacts) | Returns the user personal contacts. | +| [create_contact](#create_contact) | Creates the user personal contact. | +| [read_contact](#read_contact) | Returns the user personal contact(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [update_contact](#update_contact) | Updates the user personal contact(s) (full resource update). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [patch_contact](#patch_contact) | Updates particular values of a personal contact attributes specified in request (partial resource update). Omitted attributes will remain unchanged. If any attribute is passed in request body with the null value, then this attribute value will be removed. | +| [delete_contact](#delete_contact) | Deletes the user personal contact(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [sync_address_book](#sync_address_book) | Synchronizes user contacts. | + +## address_book_bulk_upload + +Uploads multiple contacts for multiple extensions at once. Maximum 500 extensions can be uploaded per request. Max amount of contacts that can be uploaded per extension is 10,000. Each contact uploaded for a certain extension is not visible to other extensions. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/address-book-bulk-upload` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddressBookBulkUploadRequest](../models/AddressBookBulkUploadRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AddressBookBulkUploadResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddressBookBulkUploadRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddressBookBulkUploadRequest( + records=[ + { + "extension_id": "extensionId", + "contacts": [ + { + "email": "charlie.williams@example.com", + "notes": "#1 Customer", + "company": "Example, Inc.", + "first_name": "Charlie", + "last_name": "Williams", + "job_title": "CEO", + "birthday": "birthday", + "web_page": "http://www.example.com", + "middle_name": "J", + "nick_name": "The Boss", + "email2": "charlie-example@gmail.com", + "email3": "theboss-example@hotmail.com", + "home_phone": "+15551234567", + "home_phone2": "+15551234567", + "business_phone": "+15551234567", + "business_phone2": "+15551234567", + "mobile_phone": "+15551234567", + "business_fax": "+15551234567", + "company_phone": "+15551234567", + "assistant_phone": "+15551234567", + "car_phone": "+15551234567", + "other_phone": "+15551234567", + "other_fax": "+15551234567", + "callback_phone": "+15551234567", + "business_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "home_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "other_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + } + } + ] + } + ] +) + +result = sdk.external_contacts.address_book_bulk_upload( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## get_address_book_bulk_upload_task + +Returns the status of a task on adding multiple contacts to multiple extensions. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/address-book-bulk-upload/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | Internal identifier of a task | + +**Return Type** + +`AddressBookBulkUploadResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.external_contacts.get_address_book_bulk_upload_task( + account_id="~", + task_id="taskId" +) + +print(result) +``` + +## list_favorite_contacts + +Returns the list of favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records). + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/favorite` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`FavoriteContactList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.external_contacts.list_favorite_contacts( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_favorite_contact_list + +Updates the list of favorite contacts of the current extension. Favorite contacts include both company contacts (extensions) and personal contacts (address book records).**Please note**: Currently personal address book size is limited to 10 000 contacts. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/favorite` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [FavoriteCollection](../models/FavoriteCollection.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`FavoriteContactList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import FavoriteCollection + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = FavoriteCollection( + records=[ + { + "id_": 6, + "extension_id": "extensionId", + "account_id": "accountId", + "contact_id": "contactId" + } + ] +) + +result = sdk.external_contacts.update_favorite_contact_list( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## list_contacts + +Returns the user personal contacts. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| starts_with | str | ❌ | If specified, only contacts which 'First name' or 'Last name' start with the mentioned substring will be returned. Case-insensitive | +| sort_by | [List[SortBy]](../models/SortBy.md) | ❌ | Sorts results by the specified property | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| phone_number | List[str] | ❌ | Phone number in e.164 format | + +**Return Type** + +`ContactList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +sort_by=[ + "FirstName" +] +phone_number=[ + "phoneNumber" +] + +result = sdk.external_contacts.list_contacts( + account_id="~", + extension_id="~", + starts_with="startsWith", + sort_by=sort_by, + page=1, + per_page=100, + phone_number=phone_number +) + +print(result) +``` + +## create_contact + +Creates the user personal contact. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| request_body | [PersonalContactRequest](../models/PersonalContactRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| dialing_plan | str | ❌ | Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The default value is home country of the current extension | + +**Return Type** + +`PersonalContactResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PersonalContactRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PersonalContactRequest( + first_name="Charlie", + last_name="Williams", + middle_name="J", + nick_name="The Boss", + company="Example, Inc.", + job_title="CEO", + email="charlie.williams@example.com", + email2="charlie-example@gmail.com", + email3="theboss-example@hotmail.com", + birthday="birthday", + web_page="http://www.example.com", + notes="#1 Customer", + home_phone="+15551234567", + home_phone2="+15551234567", + business_phone="+15551234567", + business_phone2="+15551234567", + mobile_phone="+15551234567", + business_fax="+15551234567", + company_phone="+15551234567", + assistant_phone="+15551234567", + car_phone="+15551234567", + other_phone="+15551234567", + other_fax="+15551234567", + callback_phone="+15551234567", + home_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + business_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + other_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + ringtone_index="ringtoneIndex" +) + +result = sdk.external_contacts.create_contact( + request_body=request_body, + account_id="~", + extension_id="~", + dialing_plan="dialingPlan" +) + +print(result) +``` + +## read_contact + +Returns the user personal contact(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| contact_id | List[int] | ✅ | The list of contact identifiers (comma-separated) | + +**Return Type** + +`PersonalContactResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +contact_id=[ + 1 +] + +result = sdk.external_contacts.read_contact( + account_id="~", + extension_id="~", + contact_id=contact_id +) + +print(result) +``` + +## update_contact + +Updates the user personal contact(s) (full resource update). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| request_body | [PersonalContactRequest](../models/PersonalContactRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| contact_id | List[int] | ✅ | The list of contact identifiers (comma-separated) | +| dialing_plan | str | ❌ | Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The default value is home country of the current extension | + +**Return Type** + +`PersonalContactResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PersonalContactRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PersonalContactRequest( + first_name="Charlie", + last_name="Williams", + middle_name="J", + nick_name="The Boss", + company="Example, Inc.", + job_title="CEO", + email="charlie.williams@example.com", + email2="charlie-example@gmail.com", + email3="theboss-example@hotmail.com", + birthday="birthday", + web_page="http://www.example.com", + notes="#1 Customer", + home_phone="+15551234567", + home_phone2="+15551234567", + business_phone="+15551234567", + business_phone2="+15551234567", + mobile_phone="+15551234567", + business_fax="+15551234567", + company_phone="+15551234567", + assistant_phone="+15551234567", + car_phone="+15551234567", + other_phone="+15551234567", + other_fax="+15551234567", + callback_phone="+15551234567", + home_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + business_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + other_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + ringtone_index="ringtoneIndex" +) +contact_id=[ + 7 +] + +result = sdk.external_contacts.update_contact( + request_body=request_body, + account_id="~", + extension_id="~", + contact_id=contact_id, + dialing_plan="dialingPlan" +) + +print(result) +``` + +## patch_contact + +Updates particular values of a personal contact attributes specified in request (partial resource update). Omitted attributes will remain unchanged. If any attribute is passed in request body with the null value, then this attribute value will be removed. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| request_body | [PersonalContactRequest](../models/PersonalContactRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| contact_id | int | ✅ | Internal identifier of a contact record in the RingCentral database | +| dialing_plan | str | ❌ | Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The default value is home country of the current extension | + +**Return Type** + +`PersonalContactResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PersonalContactRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PersonalContactRequest( + first_name="Charlie", + last_name="Williams", + middle_name="J", + nick_name="The Boss", + company="Example, Inc.", + job_title="CEO", + email="charlie.williams@example.com", + email2="charlie-example@gmail.com", + email3="theboss-example@hotmail.com", + birthday="birthday", + web_page="http://www.example.com", + notes="#1 Customer", + home_phone="+15551234567", + home_phone2="+15551234567", + business_phone="+15551234567", + business_phone2="+15551234567", + mobile_phone="+15551234567", + business_fax="+15551234567", + company_phone="+15551234567", + assistant_phone="+15551234567", + car_phone="+15551234567", + other_phone="+15551234567", + other_fax="+15551234567", + callback_phone="+15551234567", + home_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + business_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + other_address={ + "street": "20 Davis Dr.", + "city": "Belmont", + "country": "country", + "state": "CA", + "zip": "94002" + }, + ringtone_index="ringtoneIndex" +) + +result = sdk.external_contacts.patch_contact( + request_body=request_body, + account_id="~", + extension_id="~", + contact_id=8, + dialing_plan="dialingPlan" +) + +print(result) +``` + +## delete_contact + +Deletes the user personal contact(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| contact_id | List[int] | ✅ | The list of contact identifiers (comma-separated) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +contact_id=[ + 8 +] + +result = sdk.external_contacts.delete_contact( + account_id="~", + extension_id="~", + contact_id=contact_id +) + +print(result) +``` + +## sync_address_book + +Synchronizes user contacts. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book-sync` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| sync_type | [SyncAddressBookSyncType](../models/SyncAddressBookSyncType.md) | ❌ | Type of synchronization | +| sync_token | str | ❌ | Value of syncToken property of the last sync request response | +| per_page | int | ❌ | Number of records per page to be returned. Max number of records is 250, which is also the default. For 'FSync' - if the number of records exceeds the parameter value (either specified or default), all of the pages can be retrieved in several requests. For 'ISync' - if the number of records exceeds page size, then the number of incoming changes to this number is limited | +| page_id | int | ❌ | Internal identifier of a page. It can be obtained from the 'nextPageId' parameter passed in response body | + +**Return Type** + +`AddressBookSync` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SyncAddressBookSyncType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.external_contacts.sync_address_book( + account_id="~", + extension_id="~", + sync_type="FSync", + sync_token="syncToken", + per_page=6, + page_id=5 +) + +print(result) +``` + + diff --git a/documentation/services/FaxService.md b/documentation/services/FaxService.md new file mode 100644 index 00000000..aa7ff851 --- /dev/null +++ b/documentation/services/FaxService.md @@ -0,0 +1,100 @@ +# FaxService + +A list of all methods in the `FaxService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [create_fax_message](#create_fax_message) | Creates and sends/re-sends a fax message. Re-send can be implemented if sending has failed. Fax attachment size (both single and total) is limited to 50Mb. | +| [list_fax_cover_pages](#list_fax_cover_pages) | Returns fax cover pages available for the current extension. | + +## create_fax_message + +Creates and sends/re-sends a fax message. Re-send can be implemented if sending has failed. Fax attachment size (both single and total) is limited to 50Mb. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/fax` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`FaxResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateFaxMessageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "attachment": "attachment", + "fax_resolution": "High", + "to": [ + { + "phone_number": "+18661234567", + "name": "name" + } + ], + "send_time": "sendTime", + "iso_code": "US", + "cover_index": 9, + "cover_page_text": "et ad enim amet adipisicing" +} + +result = sdk.fax.create_fax_message( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## list_fax_cover_pages + +Returns fax cover pages available for the current extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/fax-cover-page` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :---------------------------------------------------------------------------- | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`ListFaxCoverPagesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.fax.list_fax_cover_pages( + page=1, + per_page=100 +) + +print(result) +``` + + diff --git a/documentation/services/FeaturesService.md b/documentation/services/FeaturesService.md new file mode 100644 index 00000000..7b188e0f --- /dev/null +++ b/documentation/services/FeaturesService.md @@ -0,0 +1,52 @@ +# FeaturesService + +A list of all methods in the `FeaturesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_extension_features](#read_extension_features) | Returns a list of supported features and the information on their availability for the current extension. Particular feature(s) can be checked by providing `featureId` query parameter. Multiple values are supported in the format: `?featureId=Feature1&featureId=Feature2`. To get only available features in order to decrease response size, `availableOnly=true` query param can be specified. If a feature is available for the current user, `"available": true` is returned in response for the record with the corresponding feature ID. Otherwise, the additional attribute `reason` is returned with the appropriate code: - `ServicePlanLimitation` - a feature is not included in account service plan; - `AccountLimitation` - a feature is turned off for account; - `ExtensionTypeLimitation` - a feature is not applicable for extension type; - `ExtensionLimitation` - a feature is not available for extension, e.g., additional license required; - `InsufficientPermissions` - required permission is not granted to the current user (not the one, who is specified in the URL, but the one who is calling this API); - `ConfigurationLimitation` - a feature is turned off for extension, e.g., by account administrator. Also, some features may have additional parameters, e.g. limits, which are returned in `params` attribute as a name-value collection: { "id": "HUD", "available": true, "params": [ { "name": "limitMax", "value": "100" } ] } | + +## read_extension_features + +Returns a list of supported features and the information on their availability for the current extension. Particular feature(s) can be checked by providing `featureId` query parameter. Multiple values are supported in the format: `?featureId=Feature1&featureId=Feature2`. To get only available features in order to decrease response size, `availableOnly=true` query param can be specified. If a feature is available for the current user, `"available": true` is returned in response for the record with the corresponding feature ID. Otherwise, the additional attribute `reason` is returned with the appropriate code: - `ServicePlanLimitation` - a feature is not included in account service plan; - `AccountLimitation` - a feature is turned off for account; - `ExtensionTypeLimitation` - a feature is not applicable for extension type; - `ExtensionLimitation` - a feature is not available for extension, e.g., additional license required; - `InsufficientPermissions` - required permission is not granted to the current user (not the one, who is specified in the URL, but the one who is calling this API); - `ConfigurationLimitation` - a feature is turned off for extension, e.g., by account administrator. Also, some features may have additional parameters, e.g. limits, which are returned in `params` attribute as a name-value collection: { "id": "HUD", "available": true, "params": [ { "name": "limitMax", "value": "100" } ] } + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/features` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| available_only | bool | ❌ | Allows to filter features by availability for an extension | +| feature_id | List[str] | ❌ | Internal identifier(s) of the feature(s) | + +**Return Type** + +`FeatureList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +feature_id=[ + "featureId" +] + +result = sdk.features.read_extension_features( + account_id="~", + extension_id="~", + available_only=True, + feature_id=feature_id +) + +print(result) +``` + + diff --git a/documentation/services/GreetingsService.md b/documentation/services/GreetingsService.md new file mode 100644 index 00000000..c781ec6e --- /dev/null +++ b/documentation/services/GreetingsService.md @@ -0,0 +1,305 @@ +# GreetingsService + +A list of all methods in the `GreetingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_account_greeting_content](#read_account_greeting_content) | Returns account-level greeting media contents. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** | +| [read_greeting_content](#read_greeting_content) | Returns extension-level greeting media contents. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** | +| [create_company_greeting](#create_company_greeting) | Creates a custom company greeting. | +| [create_custom_user_greeting](#create_custom_user_greeting) | Creates custom greeting for an extension user. | +| [read_custom_greeting](#read_custom_greeting) | Returns a custom user greeting by ID. | +| [list_standard_greetings](#list_standard_greetings) | Returns the list of predefined standard greetings. Custom greetings recorded by user are not returned in response to this request. See Get Extension Custom Greetings. | +| [read_standard_greeting](#read_standard_greeting) | Returns a standard greeting by ID. | + +## read_account_greeting_content + +Returns account-level greeting media contents. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/greeting/{greetingId}/content` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| greeting_id | str | ✅ | Internal identifier of a greeting | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`any` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.greetings.read_account_greeting_content( + account_id="~", + greeting_id="greetingId", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +print(result) +``` + +## read_greeting_content + +Returns extension-level greeting media contents. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting/{greetingId}/content` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| greeting_id | str | ✅ | Internal identifier of a greeting | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`any` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.greetings.read_greeting_content( + account_id="~", + extension_id="~", + greeting_id="greetingId", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +print(result) +``` + +## create_company_greeting + +Creates a custom company greeting. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/greeting` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [any](../models/any.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`CustomCompanyGreetingInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import GreetingsCreateCompanyGreetingRequest1 + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "type_": "Company", + "answering_rule": { + "id_": "id" + }, + "language_id": "languageId", + "binary": "binary" +} + +result = sdk.greetings.create_company_greeting( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## create_custom_user_greeting + +Creates custom greeting for an extension user. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [any](../models/any.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| apply | bool | ❌ | Specifies whether to apply an answering rule or not. If set to true then `answeringRule` parameter is mandatory. If set to false, then the answering rule is not applied even if specified | + +**Return Type** + +`CustomUserGreetingInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import GreetingsCreateCustomUserGreetingRequest1 + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "type_": "Introductory", + "answering_rule": { + "id_": "id" + }, + "binary": "binary" +} + +result = sdk.greetings.create_custom_user_greeting( + request_body=request_body, + account_id="~", + extension_id="~", + apply=True +) + +print(result) +``` + +## read_custom_greeting + +Returns a custom user greeting by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting/{greetingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| greeting_id | str | ✅ | Internal identifier of a greeting | + +**Return Type** + +`CustomUserGreetingInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.greetings.read_custom_greeting( + account_id="~", + extension_id="~", + greeting_id="greetingId" +) + +print(result) +``` + +## list_standard_greetings + +Returns the list of predefined standard greetings. Custom greetings recorded by user are not returned in response to this request. See Get Extension Custom Greetings. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/greeting` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| type\_ | [ListStandardGreetingsType](../models/ListStandardGreetingsType.md) | ❌ | Type of greeting, specifying the case when the greeting is played | +| usage_type | [ListStandardGreetingsUsageType](../models/ListStandardGreetingsUsageType.md) | ❌ | Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension | + +**Return Type** + +`DictionaryGreetingList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListStandardGreetingsType, ListStandardGreetingsUsageType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.greetings.list_standard_greetings( + page=1, + per_page=100, + type_="Introductory", + usage_type="UserExtensionAnsweringRule" +) + +print(result) +``` + +## read_standard_greeting + +Returns a standard greeting by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/greeting/{greetingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| greeting_id | str | ✅ | Internal identifier of a greeting | + +**Return Type** + +`DictionaryGreetingInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.greetings.read_standard_greeting(greeting_id="greetingId") + +print(result) +``` + + diff --git a/documentation/services/HighVolumeSmsService.md b/documentation/services/HighVolumeSmsService.md new file mode 100644 index 00000000..87d26cbb --- /dev/null +++ b/documentation/services/HighVolumeSmsService.md @@ -0,0 +1,381 @@ +# HighVolumeSmsService + +A list of all methods in the `HighVolumeSmsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [aggregate_a2_psms_statuses](#aggregate_a2_psms_statuses) | Retrieves a set of message counts by message status and error codes filtered by dates, batchId and message direction. | +| [list_a2_psms](#list_a2_psms) | Returns the list of outbound/inbound A2P messages sent from/to A2P phone numbers of the current account. The list can be filtered by message batch ID and/or phone number. | +| [read_a2_psms](#read_a2_psms) | Returns the details of an A2P SMS message by ID. | +| [read_a2_psms_opt_outs](#read_a2_psms_opt_outs) | Returns the list of numbers opted out from the account. The list can be filtered by `to`/`from` phone number query parameters. Specifying `text/csv` in the `Accept` header lets download the data in the CSV format. | +| [add_a2_psms_opt_outs](#add_a2_psms_opt_outs) | Adds multiple opt-outs and/or opt-ins for the specified sender number and a set of recipient numbers. | +| [list_a2_p_batches](#list_a2_p_batches) | Returns the list of A2P batches sent from the current account. The list can be filtered by message batch ID and/or from phone number. | +| [create_a2_psms](#create_a2_psms) | Allows to send high volume of A2P (Application-to-Person) SMS messages (in message batches). Only phone number with the `A2PSmsSender` feature can be used as a sender. | +| [read_a2_p_batch](#read_a2_p_batch) | Returns information on a message batch. | + +## aggregate_a2_psms_statuses + +Retrieves a set of message counts by message status and error codes filtered by dates, batchId and message direction. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/statuses` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| batch_id | str | ❌ | Internal identifier of a message batch to filter the response | +| direction | [SmsDirectionEnum](../models/SmsDirectionEnum.md) | ❌ | Direction of a message to filter the message list result. By default, there is no filter applied - both Inbound and Outbound messages are returned | +| date_from | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours | +| date_to | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time | +| phone_number | List[str] | ❌ | List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum number of phone numbers allowed to be specified as filters is 15 | + +**Return Type** + +`MessageStatusesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SmsDirectionEnum + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +phone_number=[ + "phoneNumber" +] + +result = sdk.high_volume_sms.aggregate_a2_psms_statuses( + account_id="~", + batch_id="batchId", + direction="Inbound", + date_from="dateFrom", + date_to="dateTo", + phone_number=phone_number +) + +print(result) +``` + +## list_a2_psms + +Returns the list of outbound/inbound A2P messages sent from/to A2P phone numbers of the current account. The list can be filtered by message batch ID and/or phone number. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/messages` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| batch_id | str | ❌ | Internal identifier of a message batch to filter the response | +| direction | [SmsDirectionEnum](../models/SmsDirectionEnum.md) | ❌ | Direction of a message to filter the message list result. By default, there is no filter applied - both Inbound and Outbound messages are returned | +| date_from | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours | +| date_to | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time | +| view | [ListA2PsmsView](../models/ListA2PsmsView.md) | ❌ | Indicates if the response has to be detailed, includes text in the response if detailed | +| phone_number | List[str] | ❌ | List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum number of phone numbers allowed to be specified as filters is 15 | +| page_token | str | ❌ | The page token of the page to be retrieved. | +| per_page | int | ❌ | The number of messages to be returned per request | + +**Return Type** + +`MessageListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SmsDirectionEnum, ListA2PsmsView + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +phone_number=[ + "phoneNumber" +] + +result = sdk.high_volume_sms.list_a2_psms( + account_id="~", + batch_id="batchId", + direction="Inbound", + date_from="dateFrom", + date_to="dateTo", + view="Simple", + phone_number=phone_number, + page_token="pageToken", + per_page=1000 +) + +print(result) +``` + +## read_a2_psms + +Returns the details of an A2P SMS message by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/messages/{messageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| message_id | str | ✅ | Internal identifier of a message to be retrieved | + +**Return Type** + +`MessageDetailsResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.high_volume_sms.read_a2_psms( + account_id="~", + message_id="messageId" +) + +print(result) +``` + +## read_a2_psms_opt_outs + +Returns the list of numbers opted out from the account. The list can be filtered by `to`/`from` phone number query parameters. Specifying `text/csv` in the `Accept` header lets download the data in the CSV format. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/opt-outs` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| from\_ | str | ❌ | The sender's phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format for filtering messages. The asterisk value "\*" means any number in `from` field | +| to | str | ❌ | The receiver's phone number (`to` field) in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format for filtering messages | +| status | [ReadA2PsmsOptOutsStatus](../models/ReadA2PsmsOptOutsStatus.md) | ❌ | The status (opted out, opted in, or both) to be used as the filter | +| page_token | str | ❌ | The page token of the page to be retrieved | +| per_page | int | ❌ | The number of records to be returned for the page | + +**Return Type** + +`OptOutListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReadA2PsmsOptOutsStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.high_volume_sms.read_a2_psms_opt_outs( + account_id="~", + from_="from", + to="to", + status="optout", + page_token="pageToken", + per_page=1000 +) + +print(result) +``` + +## add_a2_psms_opt_outs + +Adds multiple opt-outs and/or opt-ins for the specified sender number and a set of recipient numbers. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/opt-outs/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [OptOutBulkAssignRequest](../models/OptOutBulkAssignRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`OptOutBulkAssignResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import OptOutBulkAssignRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = OptOutBulkAssignRequest( + from_="+15551234455", + opt_outs=[ + "optOuts" + ], + opt_ins=[ + "optIns" + ] +) + +result = sdk.high_volume_sms.add_a2_psms_opt_outs( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## list_a2_p_batches + +Returns the list of A2P batches sent from the current account. The list can be filtered by message batch ID and/or from phone number. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/batches` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| date_from | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours | +| date_to | str | ❌ | The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time | +| from\_ | str | ❌ | Phone number in E.164 format from which the messages are going to be sent | +| status | [List[ListA2PBatchesStatus]](../models/ListA2PBatchesStatus.md) | ❌ | A list of batch statuses to filter the results | +| page_token | str | ❌ | The page token of the page to be retrieved | +| per_page | int | ❌ | The number of records to be returned per page | + +**Return Type** + +`BatchListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status=[ + "Queued" +] + +result = sdk.high_volume_sms.list_a2_p_batches( + account_id="~", + date_from="dateFrom", + date_to="dateTo", + from_="from", + status=status, + page_token="pageToken", + per_page=5 +) + +print(result) +``` + +## create_a2_psms + +Allows to send high volume of A2P (Application-to-Person) SMS messages (in message batches). Only phone number with the `A2PSmsSender` feature can be used as a sender. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/batches` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageBatchCreateRequest](../models/MessageBatchCreateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`MessageBatchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageBatchCreateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageBatchCreateRequest( + from_="+15551234567", + text="Hello, World!", + messages=[ + { + "to": [ + "to" + ], + "text": "Hello, World!" + } + ] +) + +result = sdk.high_volume_sms.create_a2_psms( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_a2_p_batch + +Returns information on a message batch. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/a2p-sms/batches/{batchId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| batch_id | str | ✅ | Internal identifier of a message batch to be retrieved | + +**Return Type** + +`MessageBatchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.high_volume_sms.read_a2_p_batch( + account_id="~", + batch_id="batchId" +) + +print(result) +``` + + diff --git a/documentation/services/HistoricalRecordingsService.md b/documentation/services/HistoricalRecordingsService.md new file mode 100644 index 00000000..c3d231f4 --- /dev/null +++ b/documentation/services/HistoricalRecordingsService.md @@ -0,0 +1,211 @@ +# HistoricalRecordingsService + +A list of all methods in the `HistoricalRecordingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [rcw_history_admin_list_recordings](#rcw_history_admin_list_recordings) | Returns the list of webinar recordings (Administrator's interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. | +| [rcw_history_admin_get_recording](#rcw_history_admin_get_recording) | Returns the webinar recording by ID (Administrator's interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. | +| [rcw_history_list_recordings](#rcw_history_list_recordings) | Returns the list of webinar recordings for a given webinar host user | +| [rcw_history_get_recording](#rcw_history_get_recording) | Returns the webinar recording by ID (Webinar host's interface). This API also returns sharing link if sharing is enabled. | +| [rcw_history_get_recording_download](#rcw_history_get_recording_download) | Returns the webinar recording download link (both Webinar host's and admin interface). If called by a webinar host, the API returns error (403) if recording downloading is prohibited by company settings. The admin user who has "WebinarSettings" permission should be able to download recording regardless of current company settings. | + +## rcw_history_admin_list_recordings + +Returns the list of webinar recordings (Administrator's interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/company/recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| creation_time_from | str | ✅ | The beginning of the time window by 'creationTime' . | +| creation_time_to | str | ✅ | The end of the time window by 'creationTime' . | +| name_fragment | str | ❌ | Filter to return only webinar recordings containing particular substring within their names | +| status | [List[RecordingStatusModel]](../models/RecordingStatusModel.md) | ❌ | The status of the recording. | +| host_user_id | List[str] | ❌ | Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned) | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`RecordingAdminListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status=[ + "Processing" +] +host_user_id=[ + "comm" +] + +result = sdk.historical_recordings.rcw_history_admin_list_recordings( + creation_time_from="creationTimeFrom", + creation_time_to="creationTimeTo", + name_fragment="nameFragment", + status=status, + host_user_id=host_user_id, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_history_admin_get_recording + +Returns the webinar recording by ID (Administrator's interface). The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/company/recordings/{recordingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------- | +| recording_id | str | ✅ | Identifier of the Webinar recording. | + +**Return Type** + +`RecordingAdminExtendedItemModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_recordings.rcw_history_admin_get_recording(recording_id="recordingId") + +print(result) +``` + +## rcw_history_list_recordings + +Returns the list of webinar recordings for a given webinar host user + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| creation_time_from | str | ✅ | The beginning of the time window by 'creationTime' . | +| creation_time_to | str | ✅ | The end of the time window by 'creationTime' . | +| status | [List[RecordingStatusModel]](../models/RecordingStatusModel.md) | ❌ | The status of the recording. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`RecordingListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status=[ + "Processing" +] + +result = sdk.historical_recordings.rcw_history_list_recordings( + creation_time_from="creationTimeFrom", + creation_time_to="creationTimeTo", + status=status, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_history_get_recording + +Returns the webinar recording by ID (Webinar host's interface). This API also returns sharing link if sharing is enabled. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/recordings/{recordingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :----------------------------------- | +| recording_id | str | ✅ | Identifier of the Webinar recording. | + +**Return Type** + +`RecordingItemExtendedModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_recordings.rcw_history_get_recording(recording_id="recordingId") + +print(result) +``` + +## rcw_history_get_recording_download + +Returns the webinar recording download link (both Webinar host's and admin interface). If called by a webinar host, the API returns error (403) if recording downloading is prohibited by company settings. The admin user who has "WebinarSettings" permission should be able to download recording regardless of current company settings. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/recordings/{recordingId}/download` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| recording_id | str | ✅ | Identifier of the Webinar recording. | +| recording_media_type | [RecordingMediaType](../models/RecordingMediaType.md) | ❌ | Download file media type. - Type 'Video' refers to a multiplexed audio and video file. - Type 'Audio' refers to an audio only file. - Unless specified by this query parameter, a video file is returned by default when a recording is downloaded. | + +**Return Type** + +`RecordingDownloadModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RecordingMediaType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_recordings.rcw_history_get_recording_download( + recording_id="recordingId", + recording_media_type="Video" +) + +print(result) +``` + + diff --git a/documentation/services/HistoricalWebinarsService.md b/documentation/services/HistoricalWebinarsService.md new file mode 100644 index 00000000..8bc456a1 --- /dev/null +++ b/documentation/services/HistoricalWebinarsService.md @@ -0,0 +1,355 @@ +# HistoricalWebinarsService + +A list of all methods in the `HistoricalWebinarsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [rcw_history_get_webinar](#rcw_history_get_webinar) | Returns a historical webinar information by ID (host interface) | +| [rcw_history_get_session](#rcw_history_get_session) | Returns a historical webinar Session by ID. Access allowed to participants with original role as Host or CoHost. | +| [rcw_history_list_participants](#rcw_history_list_participants) | Returns the list of participants of a given Webinar Session (host interface). | +| [rcw_history_get_participant_info](#rcw_history_get_participant_info) | Returns the participant information specific to a webinar session. Accessible by any authenticated participant. For a non-authenticated participant, API returns error. | +| [rcw_history_list_invitees](#rcw_history_list_invitees) | Returns the list of Invitees (co-hosts and panelists) of a given Webinar Session (host interface). An implicit record created for a Webinar 'Host' is always returned. | +| [rcw_history_get_invitee](#rcw_history_get_invitee) | Returns a historical session invitee information by ID (host interface). | +| [rcw_history_list_all_company_sessions](#rcw_history_list_all_company_sessions) | Returns the list of historical Webinar Sessions hosted by particular user(s) or all company users sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can represent actual end time or scheduled end time. The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. | +| [rcw_history_list_all_sessions](#rcw_history_list_all_sessions) | Returns the list of historical Webinar Sessions hosted by a current authorized user sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can represent actual end time or scheduled end time. | + +## rcw_history_get_webinar + +Returns a historical webinar information by ID (host interface) + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | + +**Return Type** + +`WebinarResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_webinars.rcw_history_get_webinar(webinar_id="Lorem") + +print(result) +``` + +## rcw_history_get_session + +Returns a historical webinar Session by ID. Access allowed to participants with original role as Host or CoHost. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`SessionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_webinars.rcw_history_get_session( + webinar_id="aliqua nisi", + session_id="ad irure" +) + +print(result) +``` + +## rcw_history_list_participants + +Returns the list of participants of a given Webinar Session (host interface). + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/participants` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :-------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| role | [List[RcwRoleEnum]](../models/RcwRoleEnum.md) | ❌ | The role of the invitee/participant. | +| original_role | [List[RcwRoleEnum]](../models/RcwRoleEnum.md) | ❌ | The original role of the invitee/participant. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`ParticipantListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +role=[ + "Panelist" +] +original_role=[ + "Panelist" +] + +result = sdk.historical_webinars.rcw_history_list_participants( + webinar_id="si", + session_id="ut magn", + role=role, + original_role=original_role, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_history_get_participant_info + +Returns the participant information specific to a webinar session. Accessible by any authenticated participant. For a non-authenticated participant, API returns error. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/participants/self` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`ParticipantReducedModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_webinars.rcw_history_get_participant_info( + webinar_id="ullamco ad", + session_id="elit minim nos" +) + +print(result) +``` + +## rcw_history_list_invitees + +Returns the list of Invitees (co-hosts and panelists) of a given Webinar Session (host interface). An implicit record created for a Webinar 'Host' is always returned. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/invitees` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :-------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| role | [List[RcwRoleEnum]](../models/RcwRoleEnum.md) | ❌ | The role of the invitee/participant. | +| original_role | [List[RcwRoleEnum]](../models/RcwRoleEnum.md) | ❌ | The original role of the invitee/participant. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`InviteeListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +role=[ + "Panelist" +] +original_role=[ + "Panelist" +] + +result = sdk.historical_webinars.rcw_history_list_invitees( + webinar_id="quis", + session_id="nostrud in et mini", + role=role, + original_role=original_role, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_history_get_invitee + +Returns a historical session invitee information by ID (host interface). + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :--------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| invitee_id | str | ✅ | Identifier of the Session Invitee. | + +**Return Type** + +`InviteeModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.historical_webinars.rcw_history_get_invitee( + webinar_id="ut consequat quis", + session_id="ut exercitatio", + invitee_id="cupidatat ea" +) + +print(result) +``` + +## rcw_history_list_all_company_sessions + +Returns the list of historical Webinar Sessions hosted by particular user(s) or all company users sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can represent actual end time or scheduled end time. The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/company/sessions` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :---------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| end_time_from | str | ✅ | The beginning of the time window by 'endTime' . | +| end_time_to | str | ✅ | The end of the time window by 'endTime' . | +| host_user_id | List[str] | ❌ | Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned) | +| status | [List[RcwSessionStatusModel]](../models/RcwSessionStatusModel.md) | ❌ | Filter to return only webinar sessions in certain status. Multiple values are supported. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`SessionGlobalListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +host_user_id=[ + "ex" +] +status=[ + "Scheduled" +] + +result = sdk.historical_webinars.rcw_history_list_all_company_sessions( + end_time_from="endTimeFrom", + end_time_to="endTimeTo", + host_user_id=host_user_id, + status=status, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_history_list_all_sessions + +Returns the list of historical Webinar Sessions hosted by a current authorized user sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can represent actual end time or scheduled end time. + +- HTTP Method: `GET` +- Endpoint: `/webinar/history/v1/sessions` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :---------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| end_time_from | str | ✅ | The beginning of the time window by 'endTime' . | +| end_time_to | str | ✅ | The end of the time window by 'endTime' . | +| name_fragment | str | ❌ | Filter to return only webinar sessions containing particular substring within their names | +| status | [List[RcwSessionStatusModel]](../models/RcwSessionStatusModel.md) | ❌ | Filter to return only webinar sessions in certain status. Multiple values are supported. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`SessionGlobalListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +status=[ + "Scheduled" +] + +result = sdk.historical_webinars.rcw_history_list_all_sessions( + end_time_from="endTimeFrom", + end_time_to="endTimeTo", + name_fragment="nameFragment", + status=status, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + + diff --git a/documentation/services/IdentitiesService.md b/documentation/services/IdentitiesService.md new file mode 100644 index 00000000..aa83c232 --- /dev/null +++ b/documentation/services/IdentitiesService.md @@ -0,0 +1,92 @@ +# IdentitiesService + +A list of all methods in the `IdentitiesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [soc_msg_list_identities](#soc_msg_list_identities) | List identities by creation date. The default order is descending. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. The query parameters provided shall be considered an AND operation to filter the list. A query parameter not specified or a query parameter provided with no value is treated as not required for filtering the list. | +| [soc_msg_get_identity](#soc_msg_get_identity) | Renders an identity from given id. | + +## soc_msg_list_identities + +List identities by creation date. The default order is descending. The account context of this request is determined by the RC Account Id associated with the access token provided in the Authorization header. The query parameters provided shall be considered an AND operation to filter the list. A query parameter not specified or a query parameter provided with no value is treated as not required for filtering the list. + +- HTTP Method: `GET` +- Endpoint: `/cx/social-messaging/v1/identities` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :-------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| source_id | str | ❌ | Filter based on the specified sourceId. | +| identity_group_ids | List[str] | ❌ | Filter based on the specified identityGroupIds (separated by commas). | +| user_id | str | ❌ | Filter based on the specified userId. | +| uuid | str | ❌ | Filter based on the specified uuid. | +| order_by | [SocMsgCreationTimeOrder](../models/SocMsgCreationTimeOrder.md) | ❌ | Order results by specified field. | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`IdentitiesList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SocMsgCreationTimeOrder + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +identity_group_ids=[ + "identityGroupIds" +] + +result = sdk.identities.soc_msg_list_identities( + source_id="sourceId", + identity_group_ids=identity_group_ids, + user_id="userId", + uuid="uuid", + order_by="-creationTime", + page_token="pageToken", + per_page=100 +) + +print(result) +``` + +## soc_msg_get_identity + +Renders an identity from given id. + +- HTTP Method: `GET` +- Endpoint: `/cx/social-messaging/v1/identities/{identityId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------- | +| identity_id | str | ✅ | Identity identifier. | + +**Return Type** + +`IdentityModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.identities.soc_msg_get_identity(identity_id="506d9e817aa58d1259000f12") + +print(result) +``` + + diff --git a/documentation/services/IncomingWebhooksService.md b/documentation/services/IncomingWebhooksService.md new file mode 100644 index 00000000..c80225ca --- /dev/null +++ b/documentation/services/IncomingWebhooksService.md @@ -0,0 +1,224 @@ +# IncomingWebhooksService + +A list of all methods in the `IncomingWebhooksService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------- | :--------------------------------------------------------------------- | +| [list_glip_webhooks_new](#list_glip_webhooks_new) | Returns the list of all webhooks associated with the current account. | +| [read_glip_webhook_new](#read_glip_webhook_new) | Returns webhooks(s) with the specified id(s). | +| [delete_glip_webhook_new](#delete_glip_webhook_new) | Deletes a webhook by ID. | +| [activate_glip_webhook_new](#activate_glip_webhook_new) | Activates a webhook by ID. | +| [suspend_glip_webhook_new](#suspend_glip_webhook_new) | Suspends a webhook by ID. | +| [list_glip_group_webhooks_new](#list_glip_group_webhooks_new) | Returns webhooks which are available for the current user by group ID. | +| [create_glip_group_webhook_new](#create_glip_group_webhook_new) | Creates a new webhook. | + +## list_glip_webhooks_new + +Returns the list of all webhooks associated with the current account. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/webhooks` + +**Return Type** + +`TmWebhookList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.list_glip_webhooks_new() + +print(result) +``` + +## read_glip_webhook_new + +Returns webhooks(s) with the specified id(s). + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/webhooks/{webhookId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------------------------------------------------------- | +| webhook_id | List[str] | ✅ | Internal identifier of a webhook or comma separated list of webhooks IDs | + +**Return Type** + +`TmWebhookList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +webhook_id=[ + "webhookId" +] + +result = sdk.incoming_webhooks.read_glip_webhook_new(webhook_id=webhook_id) + +print(result) +``` + +## delete_glip_webhook_new + +Deletes a webhook by ID. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/webhooks/{webhookId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------- | +| webhook_id | str | ✅ | Internal identifier of a webhook | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.delete_glip_webhook_new(webhook_id="webhookId") + +print(result) +``` + +## activate_glip_webhook_new + +Activates a webhook by ID. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/webhooks/{webhookId}/activate` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------- | +| webhook_id | str | ✅ | Internal identifier of a webhook | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.activate_glip_webhook_new(webhook_id="webhookId") + +print(result) +``` + +## suspend_glip_webhook_new + +Suspends a webhook by ID. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/webhooks/{webhookId}/suspend` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------- | +| webhook_id | str | ✅ | Internal identifier of a webhook | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.suspend_glip_webhook_new(webhook_id="webhookId") + +print(result) +``` + +## list_glip_group_webhooks_new + +Returns webhooks which are available for the current user by group ID. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/groups/{groupId}/webhooks` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :----------------------------- | +| group_id | str | ✅ | Internal identifier of a group | + +**Return Type** + +`TmWebhookList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.list_glip_group_webhooks_new(group_id="groupId") + +print(result) +``` + +## create_glip_group_webhook_new + +Creates a new webhook. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/groups/{groupId}/webhooks` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :----------------------------- | +| group_id | str | ✅ | Internal identifier of a group | + +**Return Type** + +`TmWebhookInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.incoming_webhooks.create_glip_group_webhook_new(group_id="groupId") + +print(result) +``` + + diff --git a/documentation/services/InsightsService.md b/documentation/services/InsightsService.md new file mode 100644 index 00000000..327cfa08 --- /dev/null +++ b/documentation/services/InsightsService.md @@ -0,0 +1,70 @@ +# InsightsService + +A list of all methods in the `InsightsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | +| [cai_analyze_interaction](#cai_analyze_interaction) | Returns multiple insights including summaries, emotion, key phrases, questions asked, and more in a single API call. | + +## cai_analyze_interaction + +Returns multiple insights including summaries, emotion, key phrases, questions asked, and more in a single API call. + +- HTTP Method: `POST` +- Endpoint: `/ai/insights/v1/async/analyze-interaction` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :--------------------------------------------------------- | +| request_body | [InteractionInput](../models/InteractionInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import InteractionInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = InteractionInput( + content_uri="contentUri", + encoding="Mpeg", + language_code="en-US", + source="RingCentral", + audio_type="CallCenter", + separate_speaker_per_channel=False, + speaker_count=2, + speaker_ids=[ + "speakerIds" + ], + enable_voice_activity_detection=True, + insights=[ + "All" + ], + speech_contexts=[ + { + "phrases": [ + "phrases" + ] + } + ] +) + +result = sdk.insights.cai_analyze_interaction( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + + diff --git a/documentation/services/InternalContactsService.md b/documentation/services/InternalContactsService.md new file mode 100644 index 00000000..c5227109 --- /dev/null +++ b/documentation/services/InternalContactsService.md @@ -0,0 +1,218 @@ +# InternalContactsService + +A list of all methods in the `InternalContactsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_directory_entries](#list_directory_entries) | Returns contact information on corporate users of federated accounts. Please note: 1. `User`, `DigitalUser`, `VirtualUser` and `FaxUser` types are returned as `User` type. 2. `ApplicationExtension` type is not returned. 3. Only extensions in `Enabled`, `Disabled` and `NotActivated` state are returned. | +| [read_directory_entry](#read_directory_entry) | Returns contact information on a particular corporate user of a federated account. | +| [search_directory_entries](#search_directory_entries) | Returns contact information on corporate users of federated accounts according to the specified filtering and ordering. | +| [read_directory_federation](#read_directory_federation) | Returns information on a federation and associated accounts. | + +## list_directory_entries + +Returns contact information on corporate users of federated accounts. Please note: 1. `User`, `DigitalUser`, `VirtualUser` and `FaxUser` types are returned as `User` type. 2. `ApplicationExtension` type is not returned. 3. Only extensions in `Enabled`, `Disabled` and `NotActivated` state are returned. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/directory/entries` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :---------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| show_federated | bool | ❌ | If `true` then contacts of all accounts in federation are returned. If `false` then only contacts of the current account are returned, and account section is eliminated in this case | +| type\_ | [ListDirectoryEntriesType](../models/ListDirectoryEntriesType.md) | ❌ | Type of an extension. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| type_group | [TypeGroup](../models/TypeGroup.md) | ❌ | Type of extension group | +| page | int | ❌ | Page number | +| per_page | [PerPage](../models/PerPage.md) | ❌ | Records count to be returned per one page. It can be either integer or string with the specific keyword values: - `all` - all records are returned in one page - `max` - maximum count of records that can be returned in one page | +| site_id | str | ❌ | Internal identifier of the business site to which extensions belong | +| if_none_match | str | ❌ | User in GET requests to skip retrieving the data if the provided value matches current `ETag` associated with this resource. The server checks the current resource ETag and returns the data only if mismatches the `If-None-Match` value, otherwise `HTTP 304 Not Modified` status is returned. | + +**Return Type** + +`DirectoryResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListDirectoryEntriesType, TypeGroup + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +per_page=1000 + +result = sdk.internal_contacts.list_directory_entries( + account_id="~", + show_federated=True, + type_="User", + type_group="User", + page=1, + per_page=per_page, + site_id="siteId", + if_none_match="If-None-Match" +) + +print(result) +``` + +## read_directory_entry + +Returns contact information on a particular corporate user of a federated account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/directory/entries/{entryId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| entry_id | str | ✅ | Internal identifier of extension to read information for | + +**Return Type** + +`ContactResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.internal_contacts.read_directory_entry( + account_id="~", + entry_id="entryId" +) + +print(result) +``` + +## search_directory_entries + +Returns contact information on corporate users of federated accounts according to the specified filtering and ordering. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/directory/entries/search` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SearchDirectoryEntriesRequest](../models/SearchDirectoryEntriesRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| account_id_1 | str | ❌ | A list of Account IDs | +| department | str | ❌ | A list of department names | +| site_id | str | ❌ | A list of Site IDs | +| extension_status | str | ❌ | Extension current state | +| extension_type | [SearchDirectoryExtensionType](../models/SearchDirectoryExtensionType.md) | ❌ | Extension types | + +**Return Type** + +`DirectoryResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SearchDirectoryEntriesRequest, SearchDirectoryExtensionType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SearchDirectoryEntriesRequest( + search_string="searchString", + search_fields=[ + "firstName" + ], + show_federated=False, + show_admin_only_contacts=False, + extension_type="User", + site_id="872781797006", + show_external_contacts=True, + account_ids=[ + "accountIds" + ], + department="department", + site_ids=[ + "siteIds" + ], + extension_statuses=[ + "Enabled" + ], + extension_types=[ + "User" + ], + order_by=[ + { + "index": 1, + "field_name": "firstName", + "direction": "Asc" + } + ], + page=3, + per_page=6 +) + +result = sdk.internal_contacts.search_directory_entries( + request_body=request_body, + account_id="~", + account_id_1="400131426008", + department="North office", + site_id="872781797006", + extension_status="Enabled", + extension_type="User" +) + +print(result) +``` + +## read_directory_federation + +Returns information on a federation and associated accounts. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/directory/federation` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :---------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| types | [FederationTypes](../models/FederationTypes.md) | ❌ | Filter by federation types. Default is Regular | +| rc_extension_id | str | ❌ | RingCentral extension id | + +**Return Type** + +`FederationResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import FederationTypes + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.internal_contacts.read_directory_federation( + account_id="~", + types="All", + rc_extension_id="RCExtensionId" +) + +print(result) +``` + + diff --git a/documentation/services/InviteesService.md b/documentation/services/InviteesService.md new file mode 100644 index 00000000..89727278 --- /dev/null +++ b/documentation/services/InviteesService.md @@ -0,0 +1,251 @@ +# InviteesService + +A list of all methods in the `InviteesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [rcw_config_list_invitees](#rcw_config_list_invitees) | Returns the list of Invitees (co-hosts and panelists in phase 1 and also invited attendees in subsequent phases) of a given Webinar Session. An implicit record created for a Webinar 'Host' is always returned. | +| [rcw_config_update_invitees](#rcw_config_update_invitees) | Adds, updates and deletes Webinar Session invitees in bulk (co-hosts and panelists in phase 1 and also invited attendees in subsequent phases). The payload may contain multiple added, updated or deleted invitees. For each added record 'role' and either 'firstName'/'lastName'/'email' (for non-authenticated users) or 'linkedUser.\*' (for authenticated users) must be specified, but not both. For updated invitees 'id' and 'role' must be specified, 'linkedUser' change is not supported. For deleted invitees only there ids should be specified. The response contains added/updated records (full) and deleted records (ids only). Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited. | +| [rcw_config_get_invitee](#rcw_config_get_invitee) | Returns a Session Invitee information by ID | +| [rcw_config_update_invitee](#rcw_config_update_invitee) | Updates a Session Invitee. 'role' is required (it can be changed from 'Panelist' to 'CoHost' or vise versa). It is disallowed to update 'linkedUser': it should be done by deleting then adding an invitee. For non-authenticated users 'firstName'/'lastName'/'email' can be specified, but not both. Implicit record created for a Webinar 'Host' cannot be modified. Also it is disallowed to change any other role to 'Host'. | +| [rcw_config_delete_invitee](#rcw_config_delete_invitee) | Deletes a Session Invitee. Implicit record created for a Webinar 'Host' cannot be deleted. Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited (HTTP 403). | + +## rcw_config_list_invitees + +Returns the list of Invitees (co-hosts and panelists in phase 1 and also invited attendees in subsequent phases) of a given Webinar Session. An implicit record created for a Webinar 'Host' is always returned. + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`WcsInviteeListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.invitees.rcw_config_list_invitees( + webinar_id="esse enim ipsum eli", + session_id="consec", + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_config_update_invitees + +Adds, updates and deletes Webinar Session invitees in bulk (co-hosts and panelists in phase 1 and also invited attendees in subsequent phases). The payload may contain multiple added, updated or deleted invitees. For each added record 'role' and either 'firstName'/'lastName'/'email' (for non-authenticated users) or 'linkedUser.\*' (for authenticated users) must be specified, but not both. For updated invitees 'id' and 'role' must be specified, 'linkedUser' change is not supported. For deleted invitees only there ids should be specified. The response contains added/updated records (full) and deleted records (ids only). Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited. + +- HTTP Method: `PATCH` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :------------------------- | +| request_body | [BulkUpdateInviteesRequest](../models/BulkUpdateInviteesRequest.md) | ✅ | The request body. | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`BulkUpdateInviteesResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BulkUpdateInviteesRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BulkUpdateInviteesRequest( + added_invitees=[ + { + "first_name": "John", + "last_name": "Doe", + "email": "john.doe@example.com", + "job_title": "Product Manager", + "linked_user": { + "user_id": "amet ad", + "account_id": "mollit qui Excepteur anim dolore", + "domain": "pbx" + }, + "role": "Panelist", + "type_": "User", + "send_invite": True + } + ], + updated_invitees=[ + { + "id_": "78654321", + "first_name": "John", + "last_name": "Doe", + "email": "john.doe@example.com", + "job_title": "Product Manager", + "role": "Panelist", + "type_": "User", + "send_invite": True + } + ], + deleted_invitees=[ + { + "id_": "78654321" + } + ] +) + +result = sdk.invitees.rcw_config_update_invitees( + request_body=request_body, + webinar_id="esse enim ipsum eli", + session_id="consec" +) + +print(result) +``` + +## rcw_config_get_invitee + +Returns a Session Invitee information by ID + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :--------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| invitee_id | str | ✅ | Identifier of the Session Invitee. | + +**Return Type** + +`InviteeResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.invitees.rcw_config_get_invitee( + webinar_id="ad", + session_id="qui do venia", + invitee_id="sed" +) + +print(result) +``` + +## rcw_config_update_invitee + +Updates a Session Invitee. 'role' is required (it can be changed from 'Panelist' to 'CoHost' or vise versa). It is disallowed to update 'linkedUser': it should be done by deleting then adding an invitee. For non-authenticated users 'firstName'/'lastName'/'email' can be specified, but not both. Implicit record created for a Webinar 'Host' cannot be modified. Also it is disallowed to change any other role to 'Host'. + +- HTTP Method: `PUT` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :--------------------------------- | +| request_body | [UpdateInviteeRequest](../models/UpdateInviteeRequest.md) | ✅ | The request body. | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| invitee_id | str | ✅ | Identifier of the Session Invitee. | + +**Return Type** + +`InviteeResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateInviteeRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateInviteeRequest( + first_name="John", + last_name="Doe", + email="john.doe@example.com", + job_title="Product Manager", + role="Panelist", + type_="User", + send_invite=True +) + +result = sdk.invitees.rcw_config_update_invitee( + request_body=request_body, + webinar_id="ad", + session_id="qui do venia", + invitee_id="sed" +) + +print(result) +``` + +## rcw_config_delete_invitee + +Deletes a Session Invitee. Implicit record created for a Webinar 'Host' cannot be deleted. Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited (HTTP 403). + +- HTTP Method: `DELETE` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :--------------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | +| invitee_id | str | ✅ | Identifier of the Session Invitee. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.invitees.rcw_config_delete_invitee( + webinar_id="ad", + session_id="qui do venia", + invitee_id="sed" +) + +print(result) +``` + + diff --git a/documentation/services/IvrService.md b/documentation/services/IvrService.md new file mode 100644 index 00000000..29cca828 --- /dev/null +++ b/documentation/services/IvrService.md @@ -0,0 +1,462 @@ +# IvrService + +A list of all methods in the `IvrService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------- | :-------------------------------------------- | +| [read_ivr_prompt_content](#read_ivr_prompt_content) | Returns media content of an IVR prompt by ID. | +| [list_ivr_prompts](#list_ivr_prompts) | Returns the list of IVR prompts. | +| [create_ivr_prompt](#create_ivr_prompt) | Creates an IVR prompt. | +| [read_ivr_prompt](#read_ivr_prompt) | Returns an IVR prompt by ID. | +| [update_ivr_prompt](#update_ivr_prompt) | Updates an IVR prompt by ID | +| [delete_ivr_prompt](#delete_ivr_prompt) | Deletes an IVR prompt by ID. | +| [read_ivr_menu_list](#read_ivr_menu_list) | Returns a company IVR menus. | +| [create_ivr_menu](#create_ivr_menu) | Creates a company IVR menu. | +| [read_ivr_menu](#read_ivr_menu) | Returns a company IVR menu by ID. | +| [update_ivr_menu](#update_ivr_menu) | Updates a company IVR menu by ID. | + +## read_ivr_prompt_content + +Returns media content of an IVR prompt by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}/content` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| prompt_id | str | ✅ | Internal identifier of an IVR prompt | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`any` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.read_ivr_prompt_content( + account_id="~", + prompt_id="promptId", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +print(result) +``` + +## list_ivr_prompts + +Returns the list of IVR prompts. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`IvrPrompts` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.list_ivr_prompts(account_id="~") + +print(result) +``` + +## create_ivr_prompt + +Creates an IVR prompt. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`PromptInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateIvrPromptRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "attachment": "attachment", + "name": "name" +} + +result = sdk.ivr.create_ivr_prompt( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_ivr_prompt + +Returns an IVR prompt by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| prompt_id | str | ✅ | Internal identifier of an IVR prompt | + +**Return Type** + +`PromptInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.read_ivr_prompt( + account_id="~", + prompt_id="promptId" +) + +print(result) +``` + +## update_ivr_prompt + +Updates an IVR prompt by ID + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateIvrPromptRequest](../models/UpdateIvrPromptRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| prompt_id | str | ✅ | Internal identifier of an IVR prompt | + +**Return Type** + +`PromptInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateIvrPromptRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateIvrPromptRequest( + filename="filename" +) + +result = sdk.ivr.update_ivr_prompt( + request_body=request_body, + account_id="~", + prompt_id="promptId" +) + +print(result) +``` + +## delete_ivr_prompt + +Deletes an IVR prompt by ID. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| prompt_id | str | ✅ | Internal identifier of an IVR prompt | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.delete_ivr_prompt( + account_id="~", + prompt_id="promptId" +) + +print(result) +``` + +## read_ivr_menu_list + +Returns a company IVR menus. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-menus` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`IvrMenuList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.read_ivr_menu_list(account_id="~") + +print(result) +``` + +## create_ivr_menu + +Creates a company IVR menu. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-menus` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [IvrMenuInfo](../models/IvrMenuInfo.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`IvrMenuInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import IvrMenuInfo + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = IvrMenuInfo( + id_="id", + uri="uri", + name="name", + extension_number="extensionNumber", + site={ + "id_": "id", + "name": "name" + }, + prompt={ + "mode": "Audio", + "audio": { + "uri": "uri", + "id_": "id" + }, + "text": "text", + "language": { + "uri": "uri", + "id_": "id", + "name": "name", + "locale_code": "localeCode" + } + }, + actions=[ + { + "input": "input", + "action": "Connect", + "extension": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "phone_number": "phoneNumber" + } + ] +) + +result = sdk.ivr.create_ivr_menu( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_ivr_menu + +Returns a company IVR menu by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-menus/{ivrMenuId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| ivr_menu_id | str | ✅ | Internal identifier of an IVR menu | + +**Return Type** + +`IvrMenuInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ivr.read_ivr_menu( + account_id="~", + ivr_menu_id="ivrMenuId" +) + +print(result) +``` + +## update_ivr_menu + +Updates a company IVR menu by ID. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/ivr-menus/{ivrMenuId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [IvrMenuInfo](../models/IvrMenuInfo.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| ivr_menu_id | str | ✅ | Internal identifier of an IVR menu | + +**Return Type** + +`IvrMenuInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import IvrMenuInfo + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = IvrMenuInfo( + id_="id", + uri="uri", + name="name", + extension_number="extensionNumber", + site={ + "id_": "id", + "name": "name" + }, + prompt={ + "mode": "Audio", + "audio": { + "uri": "uri", + "id_": "id" + }, + "text": "text", + "language": { + "uri": "uri", + "id_": "id", + "name": "name", + "locale_code": "localeCode" + } + }, + actions=[ + { + "input": "input", + "action": "Connect", + "extension": { + "uri": "uri", + "id_": "id", + "name": "name" + }, + "phone_number": "phoneNumber" + } + ] +) + +result = sdk.ivr.update_ivr_menu( + request_body=request_body, + account_id="~", + ivr_menu_id="ivrMenuId" +) + +print(result) +``` + + diff --git a/documentation/services/MeetingRecordingsService.md b/documentation/services/MeetingRecordingsService.md new file mode 100644 index 00000000..13965ca2 --- /dev/null +++ b/documentation/services/MeetingRecordingsService.md @@ -0,0 +1,88 @@ +# MeetingRecordingsService + +A list of all methods in the `MeetingRecordingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | +| [get_account_recordings](#get_account_recordings) | Returns all account recordings. This endpoint is used in Admin recording service, not regular web | +| [get_extension_recordings](#get_extension_recordings) | Returns all recordings available for specific extension. This endpoint is used in admin recording service, not regular web | + +## get_account_recordings + +Returns all account recordings. This endpoint is used in Admin recording service, not regular web + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v1/account/{accountId}/recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page_token | str | ❌ | Token to get the next page | +| per_page | int | ❌ | Number of records returned | + +**Return Type** + +`CloudRecordings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.meeting_recordings.get_account_recordings( + account_id="~", + page_token="pageToken", + per_page=8 +) + +print(result) +``` + +## get_extension_recordings + +Returns all recordings available for specific extension. This endpoint is used in admin recording service, not regular web + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v1/account/{accountId}/extension/{extensionId}/recordings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| page_token | str | ❌ | Token to get the next page | +| per_page | int | ❌ | Number of records returned | + +**Return Type** + +`CloudRecordings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.meeting_recordings.get_extension_recordings( + account_id="~", + extension_id="~", + page_token="pageToken", + per_page=0 +) + +print(result) +``` + + diff --git a/documentation/services/MeetingsHistoryService.md b/documentation/services/MeetingsHistoryService.md new file mode 100644 index 00000000..f3f5dd62 --- /dev/null +++ b/documentation/services/MeetingsHistoryService.md @@ -0,0 +1,87 @@ +# MeetingsHistoryService + +A list of all methods in the `MeetingsHistoryService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------ | :--------------------------------- | +| [list_video_meetings](#list_video_meetings) | Returns the list of user meetings. | +| [get_video_meeting](#get_video_meeting) | Returns a user meeting by ID. | + +## list_video_meetings + +Returns the list of user meetings. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v1/history/meetings` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :---------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| text | str | ❌ | Search text | +| page_token | str | ❌ | Token to get the next page | +| per_page | int | ❌ | Number of records returned | +| type\_ | [ListVideoMeetingsType](../models/ListVideoMeetingsType.md) | ❌ | Specify what kind of meeting should be returned. Possible values: All, My, Deleted, Shared Request type meaning in meeting search: `None` (not passed) - take meetings only where requested acc/ext is participant OR host OR deputy OR watcher. `ALL`- access rights of meeting is equal to Alive AND requested acc/ext is in watchers list OR host OR deputy `My`- access rights of meeting is equal to Alive AND requested acc/ext is host OR deputy `Shared` - access rights of meeting is equal to Alive AND requested acc/ext is in watcher list AND not HOST `Deleted` - access rights of meeting is equal to Delete and requested acc/ext is host OR deputy | +| start_time | int | ❌ | Unix timestamp in milliseconds (inclusive) indicates the start time of meetings which should be included in response | +| end_time | int | ❌ | Unix timestamp in milliseconds (inclusive) indicates the end time of meetings which should be included in response | + +**Return Type** + +`MeetingPage` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListVideoMeetingsType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.meetings_history.list_video_meetings( + text="text", + page_token="pageToken", + per_page=0, + type_="All", + start_time=0, + end_time=9 +) + +print(result) +``` + +## get_video_meeting + +Returns a user meeting by ID. + +- HTTP Method: `GET` +- Endpoint: `/rcvideo/v1/history/meetings/{meetingId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :---------- | +| meeting_id | str | ✅ | Meeting id | + +**Return Type** + +`Meeting` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.meetings_history.get_video_meeting(meeting_id="meetingId") + +print(result) +``` + + diff --git a/documentation/services/MessageExportsService.md b/documentation/services/MessageExportsService.md new file mode 100644 index 00000000..54cf78d0 --- /dev/null +++ b/documentation/services/MessageExportsService.md @@ -0,0 +1,128 @@ +# MessageExportsService + +A list of all methods in the `MessageExportsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| [create_message_store_report](#create_message_store_report) | Creates a task to collect all account messages within the specified time interval. Maximum number of simultaneous tasks per account is 2. | +| [read_message_store_report_task](#read_message_store_report_task) | Returns the current status of a task on report creation. | +| [read_message_store_report_archive](#read_message_store_report_archive) | Returns the created report with message data not including attachments. | + +## create_message_store_report + +Creates a task to collect all account messages within the specified time interval. Maximum number of simultaneous tasks per account is 2. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-report` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateMessageStoreReportRequest](../models/CreateMessageStoreReportRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`MessageStoreReport` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateMessageStoreReportRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateMessageStoreReportRequest( + date_to="dateTo", + date_from="dateFrom", + message_types=[ + "Fax" + ] +) + +result = sdk.message_exports.create_message_store_report( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_message_store_report_task + +Returns the current status of a task on report creation. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-report/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | Internal identifier of a task | + +**Return Type** + +`MessageStoreReport` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.message_exports.read_message_store_report_task( + account_id="~", + task_id="taskId" +) + +print(result) +``` + +## read_message_store_report_archive + +Returns the created report with message data not including attachments. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-report/{taskId}/archive` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | Internal identifier of a task | + +**Return Type** + +`MessageStoreReportArchive` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.message_exports.read_message_store_report_archive( + account_id="~", + task_id="taskId" +) + +print(result) +``` + + diff --git a/documentation/services/MessageStoreService.md b/documentation/services/MessageStoreService.md new file mode 100644 index 00000000..4038b3bf --- /dev/null +++ b/documentation/services/MessageStoreService.md @@ -0,0 +1,497 @@ +# MessageStoreService + +A list of all methods in the `MessageStoreService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_message_content](#read_message_content) | Returns media content of a message attachment. The content is typically an audio file (`audio/mpeg` or `audio/wav`) for voicemails, TIFF or PDF for faxes and image/audio/video for MMS. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** | +| [read_message_store_configuration](#read_message_store_configuration) | Returns message store settings. | +| [update_message_store_configuration](#update_message_store_configuration) | Updates message store settings. | +| [sync_messages](#sync_messages) | Synchronizes messages. | +| [list_messages](#list_messages) | Returns a list of messages from an extension mailbox. | +| [delete_message_by_filter](#delete_message_by_filter) | Deletes conversation(s) by conversation ID(s). Batch request is supported, max number of IDs passed as query/path parameters is 50. Alternative syntax is supported - user conversations can be deleted by passing multiple IDs in request body as an array of string, max number of conversation IDs passed in request body is 100. In this case asterisk is used in the path instead of IDs | +| [read_message](#read_message) | Returns an individual message record or multiple records by the given message ID(s). The length of inbound messages is unlimited. Bulk syntax is supported. | +| [update_message](#update_message) | Updates message(s) by their ID(s). Currently, only the `readStatus` can be updated using this method. Bulk syntax is supported, max number of IDs passed as query/path parameters is 50. Alternative bulk syntax is also supported - user messages can be updated by passing multiple IDs in request body as an array of string, max number of IDs passed in the body is 1000. In this case asterisk is used in the path instead of IDs. | +| [patch_message](#patch_message) | Patches message(s) by ID(s). Currently, only updating the `readStatus` and restoring deleted messages are supported through this method. For changing status of a message send `readStatus` set to either 'Read' or 'Unread' in request. It is possible to restore a message and its attachments (if message status is 'Deleted') by sending `availability` attribute set to 'Alive' in request body. If a message is already in 'Purged' state then its attachments cannot be restored and the message itself is about to be physically deleted. Bulk syntax (both traditional and alternative one) is supported. | +| [delete_message](#delete_message) | Deletes message(s) by the given message ID(s). The first call of this method transfers the message to the 'Delete' status. The second call transfers the deleted message to the 'Purged' status. If it is required to make the message 'Purged' immediately (from the first call), then set the query parameter purge to `true`. | + +## read_message_content + +Returns media content of a message attachment. The content is typically an audio file (`audio/mpeg` or `audio/wav`) for voicemails, TIFF or PDF for faxes and image/audio/video for MMS. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}/content/{attachmentId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| message_id | str | ✅ | | +| attachment_id | str | ✅ | | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`any` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.message_store.read_message_content( + account_id="~", + extension_id="~", + message_id="messageId", + attachment_id="attachmentId", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +print(result) +``` + +## read_message_store_configuration + +Returns message store settings. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-configuration` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`MessageStoreConfiguration` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.message_store.read_message_store_configuration(account_id="~") + +print(result) +``` + +## update_message_store_configuration + +Updates message store settings. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-configuration` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageStoreConfiguration](../models/MessageStoreConfiguration.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`MessageStoreConfiguration` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageStoreConfiguration + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageStoreConfiguration( + retention_period=57 +) + +result = sdk.message_store.update_message_store_configuration( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## sync_messages + +Synchronizes messages. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-sync` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :-------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| conversation_id | int | ❌ | Conversation identifier for the resulting messages. Meaningful for SMS and Pager messages only. | +| date_from | str | ❌ | The start date/time for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours | +| date_to | str | ❌ | The end date/time for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time | +| direction | [List[MessageDirectionEnum]](../models/MessageDirectionEnum.md) | ❌ | Direction for the resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted | +| distinct_conversations | bool | ❌ | If `true`, then the latest messages per every conversation ID are returned | +| message_type | [List[MessageTypeEnum]](../models/MessageTypeEnum.md) | ❌ | Type for the resulting messages. If not specified, all types of messages are returned. Multiple values are accepted | +| record_count | int | ❌ | Limits the number of records to be returned (works in combination with dateFrom and dateTo if specified) | +| sync_token | str | ❌ | A `syncToken` value from the previous sync response (for `ISync` mode only, mandatory) | +| sync_type | [SyncTypeEnum](../models/SyncTypeEnum.md) | ❌ | Type of message synchronization | +| voicemail_owner | List[str] | ❌ | This query parameter will filter voicemail messages based on its owner. This parameter should be controlled by the 'SharedVoicemail' feature. If the feature is disabled this filter shouldn't be applied. | + +**Return Type** + +`GetMessageSyncResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SyncTypeEnum + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +direction=[ + "Inbound" +] +message_type=[ + "Fax" +] +voicemail_owner=[ + "voicemailOwner" +] + +result = sdk.message_store.sync_messages( + account_id="~", + extension_id="~", + conversation_id=8, + date_from="dateFrom", + date_to="dateTo", + direction=direction, + distinct_conversations=False, + message_type=message_type, + record_count=2, + sync_token="syncToken", + sync_type="FSync", + voicemail_owner=voicemail_owner +) + +print(result) +``` + +## list_messages + +Returns a list of messages from an extension mailbox. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :-------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| availability | [List[MessageAvailabilityEnum]](../models/MessageAvailabilityEnum.md) | ❌ | Specifies the availability status for resulting messages. Multiple values are accepted | +| conversation_id | str | ❌ | Specifies a conversation identifier for the resulting messages | +| date_from | str | ❌ | Start date/time for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours | +| date_to | str | ❌ | End date/time for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time | +| direction | [List[MessageDirectionEnum]](../models/MessageDirectionEnum.md) | ❌ | Direction for resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted | +| distinct_conversations | bool | ❌ | If `true`, then the latest messages per every conversation ID are returned | +| message_type | [List[MessageTypeEnum]](../models/MessageTypeEnum.md) | ❌ | Type of resulting messages. If not specified, all messages without message type filtering are returned. Multiple values are accepted | +| read_status | [List[MessageReadStatusEnum]](../models/MessageReadStatusEnum.md) | ❌ | Read status for resulting messages. Multiple values are accepted | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| phone_number | str | ❌ | Phone number. If specified, messages are returned for this particular phone number only | + +**Return Type** + +`GetMessageList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +availability=[ + "Alive" +] +direction=[ + "Inbound" +] +message_type=[ + "Fax" +] +read_status=[ + "Read" +] + +result = sdk.message_store.list_messages( + account_id="~", + extension_id="~", + availability=availability, + conversation_id="conversationId", + date_from="dateFrom", + date_to="dateTo", + direction=direction, + distinct_conversations=True, + message_type=message_type, + read_status=read_status, + page=1, + per_page=100, + phone_number="phoneNumber" +) + +print(result) +``` + +## delete_message_by_filter + +Deletes conversation(s) by conversation ID(s). Batch request is supported, max number of IDs passed as query/path parameters is 50. Alternative syntax is supported - user conversations can be deleted by passing multiple IDs in request body as an array of string, max number of conversation IDs passed in request body is 100. In this case asterisk is used in the path instead of IDs + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| conversation_id | List[str] | ❌ | | +| date_to | str | ❌ | Messages received earlier then the date specified will be deleted. The default value is current date/time | +| type\_ | [DeleteMessageByFilterType](../models/DeleteMessageByFilterType.md) | ❌ | Type of messages to be deleted | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DeleteMessageByFilterType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +conversation_id=[ + "conversationId" +] + +result = sdk.message_store.delete_message_by_filter( + account_id="~", + extension_id="~", + conversation_id=conversation_id, + date_to="dateTo", + type_="Fax" +) + +print(result) +``` + +## read_message + +Returns an individual message record or multiple records by the given message ID(s). The length of inbound messages is unlimited. Bulk syntax is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| message_id | List[str] | ✅ | Internal identifier of a message (or multiple messages in case of bulk operation) | + +**Return Type** + +`GetMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +message_id=[ + "8930983240" +] + +result = sdk.message_store.read_message( + account_id="~", + extension_id="~", + message_id=message_id +) + +print(result) +``` + +## update_message + +Updates message(s) by their ID(s). Currently, only the `readStatus` can be updated using this method. Bulk syntax is supported, max number of IDs passed as query/path parameters is 50. Alternative bulk syntax is also supported - user messages can be updated by passing multiple IDs in request body as an array of string, max number of IDs passed in the body is 1000. In this case asterisk is used in the path instead of IDs. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateMessageRequest](../models/UpdateMessageRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| message_id | List[str] | ✅ | Internal identifier of a message (or multiple messages in case of bulk operation) | + +**Return Type** + +`GetMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateMessageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateMessageRequest( + read_status="Read" +) +message_id=[ + "8930983240" +] + +result = sdk.message_store.update_message( + request_body=request_body, + account_id="~", + extension_id="~", + message_id=message_id +) + +print(result) +``` + +## patch_message + +Patches message(s) by ID(s). Currently, only updating the `readStatus` and restoring deleted messages are supported through this method. For changing status of a message send `readStatus` set to either 'Read' or 'Unread' in request. It is possible to restore a message and its attachments (if message status is 'Deleted') by sending `availability` attribute set to 'Alive' in request body. If a message is already in 'Purged' state then its attachments cannot be restored and the message itself is about to be physically deleted. Bulk syntax (both traditional and alternative one) is supported. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [PatchMessageRequest](../models/PatchMessageRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| message_id | List[str] | ✅ | Internal identifier of a message (or multiple messages in case of bulk operation) | + +**Return Type** + +`GetMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PatchMessageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PatchMessageRequest( + read_status="Read", + availability="Alive" +) +message_id=[ + "8930983240" +] + +result = sdk.message_store.patch_message( + request_body=request_body, + account_id="~", + extension_id="~", + message_id=message_id +) + +print(result) +``` + +## delete_message + +Deletes message(s) by the given message ID(s). The first call of this method transfers the message to the 'Delete' status. The second call transfers the deleted message to the 'Purged' status. If it is required to make the message 'Purged' immediately (from the first call), then set the query parameter purge to `true`. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | List[str] | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| message_id | List[str] | ✅ | Internal identifier of a message (or multiple messages in case of bulk operation) | +| purge | bool | ❌ | If the value is `true`, then the message is purged immediately with all the attachments | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = [ + "offici" +] +message_id=[ + "8930983240" +] + +result = sdk.message_store.delete_message( + request_body=request_body, + account_id="~", + extension_id="~", + message_id=message_id, + purge=False +) + +print(result) +``` + + diff --git a/documentation/services/MultiSiteService.md b/documentation/services/MultiSiteService.md new file mode 100644 index 00000000..5934d479 --- /dev/null +++ b/documentation/services/MultiSiteService.md @@ -0,0 +1,465 @@ +# MultiSiteService + +A list of all methods in the `MultiSiteService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------- | :------------------------------------------------------ | +| [list_sites](#list_sites) | Returns a list of sites for the specified account. | +| [create_site](#create_site) | Creates a site for the specified account. | +| [read_site](#read_site) | Returns a site by ID. | +| [update_site](#update_site) | Updates a site specified in path. | +| [delete_site](#delete_site) | Deletes a site specified in path. | +| [assign_multiple_sites](#assign_multiple_sites) | Assigns multiple sites to an account specified in path. | +| [list_site_members](#list_site_members) | Returns members of a site specified in path. | +| [read_site_ivr_settings](#read_site_ivr_settings) | Returns IVR settings for a site specified in path. | +| [update_site_ivr_settings](#update_site_ivr_settings) | Updates IVR settings for a site specified in path. | + +## list_sites + +Returns a list of sites for the specified account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`SitesList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.multi_site.list_sites(account_id="~") + +print(result) +``` + +## create_site + +Creates a site for the specified account. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateSiteRequest](../models/CreateSiteRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`SiteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateSiteRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateSiteRequest( + name="name", + extension_number="extensionNumber", + caller_id_name="callerIdName", + email="email", + business_address={ + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + regional_settings={ + "home_country": { + "id_": "id", + "uri": "uri", + "name": "name", + "iso_code": "isoCode", + "calling_code": "callingCode" + }, + "timezone": { + "id_": "id", + "uri": "uri", + "name": "name", + "description": "description", + "bias": "bias" + }, + "language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "greeting_language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "formatting_locale": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "time_format": "12h" + }, + operator={ + "id_": "id" + }, + code="code" +) + +result = sdk.multi_site.create_site( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_site + +Returns a site by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Return Type** + +`SiteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.multi_site.read_site( + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## update_site + +Updates a site specified in path. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SiteUpdateRequest](../models/SiteUpdateRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Return Type** + +`SiteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SiteUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SiteUpdateRequest( + name="name", + extension_number="extensionNumber", + caller_id_name="callerIdName", + email="email", + business_address={ + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + regional_settings={ + "home_country": { + "id_": "id", + "uri": "uri", + "name": "name", + "iso_code": "isoCode", + "calling_code": "callingCode" + }, + "timezone": { + "id_": "id", + "uri": "uri", + "name": "name", + "description": "description", + "bias": "bias" + }, + "language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "greeting_language": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "formatting_locale": { + "id_": "id", + "locale_code": "localeCode", + "name": "name" + }, + "time_format": "12h" + }, + operator={ + "id_": "id", + "uri": "uri", + "extension_number": "extensionNumber", + "name": "name" + } +) + +result = sdk.multi_site.update_site( + request_body=request_body, + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## delete_site + +Deletes a site specified in path. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.multi_site.delete_site( + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## assign_multiple_sites + +Assigns multiple sites to an account specified in path. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SiteMembersBulkUpdate](../models/SiteMembersBulkUpdate.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SiteMembersBulkUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SiteMembersBulkUpdate( + removed_extension_ids=[ + "removedExtensionIds" + ], + added_extension_ids=[ + "addedExtensionIds" + ] +) + +result = sdk.multi_site.assign_multiple_sites( + request_body=request_body, + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## list_site_members + +Returns members of a site specified in path. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}/members` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Return Type** + +`SiteMembersList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.multi_site.list_site_members( + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## read_site_ivr_settings + +Returns IVR settings for a site specified in path. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}/ivr` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Return Type** + +`SiteIvrSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.multi_site.read_site_ivr_settings( + account_id="~", + site_id="siteId" +) + +print(result) +``` + +## update_site_ivr_settings + +Updates IVR settings for a site specified in path. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/sites/{siteId}/ivr` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [SiteIvrSettingsUpdate](../models/SiteIvrSettingsUpdate.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_id | str | ✅ | Internal identifier of a site. _Please note_ that `siteId` cannot take the 'main-site' value | + +**Return Type** + +`SiteIvrSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SiteIvrSettingsUpdate + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SiteIvrSettingsUpdate( + top_menu={ + "id_": "id" + }, + actions=[ + { + "input": "Star", + "action": "Repeat", + "extension": { + "id_": "id" + } + } + ] +) + +result = sdk.multi_site.update_site_ivr_settings( + request_body=request_body, + account_id="~", + site_id="siteId" +) + +print(result) +``` + + diff --git a/documentation/services/NotesService.md b/documentation/services/NotesService.md new file mode 100644 index 00000000..52b623d0 --- /dev/null +++ b/documentation/services/NotesService.md @@ -0,0 +1,297 @@ +# NotesService + +A list of all methods in the `NotesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_chat_notes_new](#list_chat_notes_new) | Returns the list of chat notes. | +| [create_chat_note_new](#create_chat_note_new) | Creates a new note in the specified chat. | +| [read_user_note_new](#read_user_note_new) | Returns the specified note(s). It is possible to fetch up to 50 notes per request. | +| [patch_note_new](#patch_note_new) | Edits a note. Notes can be edited by any user if posted to a chat. the user belongs to. | +| [delete_note_new](#delete_note_new) | Deletes the specified note. | +| [lock_note_new](#lock_note_new) | Locks a note providing the user with the unique write access for 5 hours. | +| [publish_note_new](#publish_note_new) | Publishes a note making it visible to other users. | +| [unlock_note_new](#unlock_note_new) | Unlocks a note letting other users edit this note. Once the note is locked (by another user) it cannot be unlocked during 5 hours since the lock datetime. | + +## list_chat_notes_new + +Returns the list of chat notes. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats/{chatId}/notes` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat to fetch notes from. | +| creation_time_to | str | ❌ | The end datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, e.g. 2019-03-10T18:23:45. The default value is Now. | +| creation_time_from | str | ❌ | The start datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone | +| creator_id | str | ❌ | Internal identifier of the user that created the note. Multiple values are supported | +| status | [ListChatNotesNewStatus](../models/ListChatNotesNewStatus.md) | ❌ | Status of notes to be fetched; if not specified all notes are fetched by default. | +| page_token | str | ❌ | Pagination token | +| record_count | int | ❌ | Max number of notes to be fetched by one request; the value range is 1-250. | + +**Return Type** + +`TmNoteList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListChatNotesNewStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.list_chat_notes_new( + chat_id="chatId", + creation_time_to="creationTimeTo", + creation_time_from="creationTimeFrom", + creator_id="creatorId", + status="Active", + page_token="pageToken", + record_count=30 +) + +print(result) +``` + +## create_chat_note_new + +Creates a new note in the specified chat. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/notes` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :------------------------------------------------ | +| request_body | [TmCreateNoteRequest](../models/TmCreateNoteRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a chat to create a note in | + +**Return Type** + +`TmNoteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateNoteRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateNoteRequest( + title="title", + body="body" +) + +result = sdk.notes.create_chat_note_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + +## read_user_note_new + +Returns the specified note(s). It is possible to fetch up to 50 notes per request. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/notes/{noteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| note_id | str | ✅ | Internal identifier of a note to be fetched | + +**Return Type** + +`TmNoteWithBodyInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.read_user_note_new(note_id="noteId") + +print(result) +``` + +## patch_note_new + +Edits a note. Notes can be edited by any user if posted to a chat. the user belongs to. + +- HTTP Method: `PATCH` +- Endpoint: `/team-messaging/v1/notes/{noteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :------------------------------------------------------------ | +| request_body | [TmCreateNoteRequest](../models/TmCreateNoteRequest.md) | ✅ | The request body. | +| note_id | str | ✅ | Internal identifier of a note to be updated | +| release_lock | bool | ❌ | If true then note lock (if any) will be released upon request | + +**Return Type** + +`TmNoteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateNoteRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateNoteRequest( + title="title", + body="body" +) + +result = sdk.notes.patch_note_new( + request_body=request_body, + note_id="noteId", + release_lock=False +) + +print(result) +``` + +## delete_note_new + +Deletes the specified note. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/notes/{noteId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| note_id | str | ✅ | Internal identifier of a note to be deleted | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.delete_note_new(note_id="noteId") + +print(result) +``` + +## lock_note_new + +Locks a note providing the user with the unique write access for 5 hours. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/notes/{noteId}/lock` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :----------------------------------------- | +| note_id | str | ✅ | Internal identifier of a note to be locked | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.lock_note_new(note_id="noteId") + +print(result) +``` + +## publish_note_new + +Publishes a note making it visible to other users. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/notes/{noteId}/publish` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------- | +| note_id | str | ✅ | Internal identifier of a note to be published | + +**Return Type** + +`TmNoteInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.publish_note_new(note_id="noteId") + +print(result) +``` + +## unlock_note_new + +Unlocks a note letting other users edit this note. Once the note is locked (by another user) it cannot be unlocked during 5 hours since the lock datetime. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/notes/{noteId}/unlock` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------- | +| note_id | str | ✅ | Internal identifier of a note to be unlocked | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.notes.unlock_note_new(note_id="noteId") + +print(result) +``` + + diff --git a/documentation/services/OAuth2_0OpenIdConnectService.md b/documentation/services/OAuth2_0OpenIdConnectService.md new file mode 100644 index 00000000..616cfe9f --- /dev/null +++ b/documentation/services/OAuth2_0OpenIdConnectService.md @@ -0,0 +1,202 @@ +# OAuth2_0OpenIdConnectService + +A list of all methods in the `OAuth2_0OpenIdConnectService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [get_token](#get_token) | Returns access (and potentially refresh) tokens for making API requests. For confidential client application types this endpoint requires client authentication using one of the supported methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) For non-confidential client application types the client identifier must be provided via `client_id` request attribute. | +| [authorize](#authorize) | Performs Authentication of the End-User by sending the User Agent to the Authorization Server's Authorization Endpoint for Authentication and Authorization, using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) and additional parameters and parameter values defined by [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). This is the version that uses HTTP `GET` method. | +| [authorize2](#authorize2) | Performs Authentication of the End-User by sending the User Agent to the Authorization Server's Authorization Endpoint for Authentication and Authorization, using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) and additional parameters and parameter values defined by [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). This is the version that uses HTTP `POST` method. | +| [revoke_token](#revoke_token) | Revokes all active access/refresh tokens and invalidates the OAuth session basing on token provided. The `token` parameter may be passed in query string or body and may represent access or refresh token. This endpoint is defined by [RFC-7009 "OAuth 2.0 Token Revocation"](https://datatracker.ietf.org/doc/html/rfc7009) For confidential client application types this endpoint requires client authentication using one of the supported methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) | + +## get_token + +Returns access (and potentially refresh) tokens for making API requests. For confidential client application types this endpoint requires client authentication using one of the supported methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) For non-confidential client application types the client identifier must be provided via `client_id` request attribute. + +- HTTP Method: `POST` +- Endpoint: `/restapi/oauth/token` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------- | :------- | :---------------- | +| request_body | [GetTokenRequest](../models/GetTokenRequest.md) | ✅ | The request body. | + +**Return Type** + +`TokenInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models.get_token_request import GetTokenRequest1 + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = GetTokenRequest1( + grant_type="authorization_code", + code="code", + redirect_uri="redirect_uri", + code_verifier="code_verifier", + client_assertion_type="urn:ietf:params:oauth:client-assertion-type:jwt-bearer", + client_assertion="client_assertion", + scope="scope", + client_id="AZwEVwGEcfGet2PCouA7K6", + endpoint_id="endpoint_id", + access_token_ttl=3600, + refresh_token_ttl=604800 +) + +result = sdk.o_auth_2_0_open_id_connect.get_token(request_body=request_body) + +print(result) +``` + +## authorize + +Performs Authentication of the End-User by sending the User Agent to the Authorization Server's Authorization Endpoint for Authentication and Authorization, using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) and additional parameters and parameter values defined by [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). This is the version that uses HTTP `GET` method. + +- HTTP Method: `GET` +- Endpoint: `/restapi/oauth/authorize` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------------- | :-------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| client_id | str | ✅ | The registered identifier of a client application | +| response_type | [AuthorizeResponseType](../models/AuthorizeResponseType.md) | ✅ | Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" | +| redirect_uri | str | ❌ | This is the URI where the Authorization Server redirects the User Agent to at the end of the authorization flow. The value of this parameter must exactly match one of the URIs registered for this client application. This parameter is required if there are more than one redirect URIs registered for the app. | +| state | str | ❌ | An opaque value used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the User Agent back to the client. The parameter SHOULD be used for preventing cross-site request forgery attacks. | +| scope | str | ❌ | The list of space separated application permissions (OAuth scopes) | +| display | [DisplayModesEnum](../models/DisplayModesEnum.md) | ❌ | Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. | +| prompt | str | ❌ | Space-delimited, case-sensitive list of ASCII string values that specifies whether the Authorization Server prompts the End-User for re-authentication and consent. The defined values are: - `login` - RingCentral native login form, - `sso` - Single Sign-On login form, - `consent` - form to show the requested scope and prompt user for consent. Either `login` or `sso` (or both) must be specified. The default value is `login sso` | +| ui_locales | str | ❌ | End-User's preferred languages and scripts for the user interface, represented as a space-separated list of [RFC-5646](https://datatracker.ietf.org/doc/html/rfc5646) language tag values, ordered by preference. If this parameter is provided, its value overrides 'Accept-Language' header value and 'localeId' parameter value (if any) | +| locale_id | str | ❌ | DEPRECATED: `ui_locales` parameter should be used instead | +| code_challenge | str | ❌ | The code challenge value as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| code_challenge_method | [CodeChallengeMethodEnum](../models/CodeChallengeMethodEnum.md) | ❌ | The code challenge method as defined by by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) | +| nonce | str | ❌ | String value used to associate a Client session with an ID Token, and to mitigate replay attacks. The value is passed through unmodified from the Authentication Request to the ID Token. | +| ui_options | str | ❌ | Login form user interface options (space-separated). By default, the UI options that are registered for this client application will be used | +| login_hint | str | ❌ | Hint to the Authorization Server about the login identifier the End-User might use to log in. | +| brand_id | str | ❌ | RingCentral Brand identifier. If it is not provided in the request, server will try to determine brand from the client application profile. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AuthorizeResponseType, DisplayModesEnum, CodeChallengeMethodEnum + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.o_auth_2_0_open_id_connect.authorize( + client_id="AZwEVwGEcfGet2PCouA7K6", + response_type="code", + redirect_uri="redirect_uri", + state="state", + scope="scope", + display="page", + prompt="login sso", + ui_locales="en-US", + code_challenge="code_challenge", + code_challenge_method="plain", + nonce="nonce", + ui_options="ui_options", + login_hint="login_hint", + brand_id="1210" +) + +print(result) +``` + +## authorize2 + +Performs Authentication of the End-User by sending the User Agent to the Authorization Server's Authorization Endpoint for Authentication and Authorization, using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) and additional parameters and parameter values defined by [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). This is the version that uses HTTP `POST` method. + +- HTTP Method: `POST` +- Endpoint: `/restapi/oauth/authorize` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :---------------- | +| request_body | [AuthorizeRequest](../models/AuthorizeRequest.md) | ✅ | The request body. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AuthorizeRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AuthorizeRequest( + response_type="code", + redirect_uri="redirect_uri", + client_id="AZwEVwGEcfGet2PCouA7K6", + state="state", + scope="scope", + display="page", + prompt="login sso", + ui_locales="en-US", + code_challenge="code_challenge", + code_challenge_method="plain", + nonce="nonce", + ui_options="ui_options", + login_hint="login_hint", + brand_id="1210" +) + +result = sdk.o_auth_2_0_open_id_connect.authorize2(request_body=request_body) + +print(result) +``` + +## revoke_token + +Revokes all active access/refresh tokens and invalidates the OAuth session basing on token provided. The `token` parameter may be passed in query string or body and may represent access or refresh token. This endpoint is defined by [RFC-7009 "OAuth 2.0 Token Revocation"](https://datatracker.ietf.org/doc/html/rfc7009) For confidential client application types this endpoint requires client authentication using one of the supported methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) + +- HTTP Method: `POST` +- Endpoint: `/restapi/oauth/revoke` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------- | +| request_body | [RevokeTokenRequest](../models/RevokeTokenRequest.md) | ❌ | The request body. | +| token | str | ❌ | Access or refresh token to be revoked (along with the entire OAuth session) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RevokeTokenRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RevokeTokenRequest( + token="token", + client_assertion_type="urn:ietf:params:oauth:client-assertion-type:jwt-bearer", + client_assertion="client_assertion" +) + +result = sdk.o_auth_2_0_open_id_connect.revoke_token( + request_body=request_body, + token="token" +) + +print(result) +``` + + diff --git a/documentation/services/PagerMessagesService.md b/documentation/services/PagerMessagesService.md new file mode 100644 index 00000000..10181fd7 --- /dev/null +++ b/documentation/services/PagerMessagesService.md @@ -0,0 +1,63 @@ +# PagerMessagesService + +A list of all methods in the `PagerMessagesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :------------------------------------------------------------------ | +| [create_internal_text_message](#create_internal_text_message) | Creates and sends an internal text message (company pager message). | + +## create_internal_text_message + +Creates and sends an internal text message (company pager message). + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/company-pager` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateInternalTextMessageRequest](../models/CreateInternalTextMessageRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetInternalTextMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateInternalTextMessageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateInternalTextMessageRequest( + from_={ + "extension_id": "123456789", + "extension_number": "105" + }, + reply_on=9, + text="hello world", + to=[ + { + "extension_id": "123456789", + "extension_number": "105" + } + ] +) + +result = sdk.pager_messages.create_internal_text_message( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/PagingOnlyGroupsService.md b/documentation/services/PagingOnlyGroupsService.md new file mode 100644 index 00000000..0a61c630 --- /dev/null +++ b/documentation/services/PagingOnlyGroupsService.md @@ -0,0 +1,141 @@ +# PagingOnlyGroupsService + +A list of all methods in the `PagingOnlyGroupsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------------------------- | :------------------------------------------------------- | +| [list_paging_group_users](#list_paging_group_users) | Returns a list of users allowed to page this group. | +| [assign_multiple_paging_group_users_devices](#assign_multiple_paging_group_users_devices) | Adds and/or removes paging group users and devices. | +| [list_paging_group_devices](#list_paging_group_devices) | Returns a list of paging devices assigned to this group. | + +## list_paging_group_users + +Returns a list of users allowed to page this group. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/users` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| paging_only_group_id | str | ✅ | Internal identifier of a paging group | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`PagingOnlyGroupUsers` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.paging_only_groups.list_paging_group_users( + account_id="~", + paging_only_group_id="pagingOnlyGroupId", + page=1, + per_page=100 +) + +print(result) +``` + +## assign_multiple_paging_group_users_devices + +Adds and/or removes paging group users and devices. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [EditPagingGroupRequest](../models/EditPagingGroupRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| paging_only_group_id | str | ✅ | Internal identifier of a paging group | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import EditPagingGroupRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = EditPagingGroupRequest( + added_user_ids=[ + "addedUserIds" + ], + removed_user_ids=[ + "removedUserIds" + ], + added_device_ids=[ + "addedDeviceIds" + ], + removed_device_ids=[ + "removedDeviceIds" + ] +) + +result = sdk.paging_only_groups.assign_multiple_paging_group_users_devices( + request_body=request_body, + account_id="~", + paging_only_group_id="pagingOnlyGroupId" +) + +print(result) +``` + +## list_paging_group_devices + +Returns a list of paging devices assigned to this group. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/paging-only-groups/{pagingOnlyGroupId}/devices` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| paging_only_group_id | str | ✅ | Internal identifier of a paging group | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`PagingOnlyGroupDevices` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.paging_only_groups.list_paging_group_devices( + account_id="~", + paging_only_group_id="pagingOnlyGroupId", + page=1, + per_page=100 +) + +print(result) +``` + + diff --git a/documentation/services/PhoneNumbersService.md b/documentation/services/PhoneNumbersService.md new file mode 100644 index 00000000..6ce5d4b8 --- /dev/null +++ b/documentation/services/PhoneNumbersService.md @@ -0,0 +1,473 @@ +# PhoneNumbersService + +A list of all methods in the `PhoneNumbersService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_account_phone_numbers_v2](#list_account_phone_numbers_v2) | Returns the list of phone numbers assigned to RingCentral customer account. Both company-level and extension-level numbers are returned. Conferencing numbers, hot desk and ELIN numbers are not returned. | +| [delete_numbers_from_inventory_v2](#delete_numbers_from_inventory_v2) | This method can only delete numbers that meet one of the following requirements: - numbers that have `"usageType": "Inventory"` - `"Forwarded"` numbers - `"Forwarded Company"` numbers In other words, this method will not delete numbers which are in use on the account - extension direct numbers, main number, etc. It is possible to indicate phone numbers to be deleted using their IDs or exact string values in e.164 format. However, the same lookup method (by ID or by value) must be used for all numbers within the same API call. | +| [assign_phone_number_v2](#assign_phone_number_v2) | Assigns or reassigns a phone number as a company or extension number. Assign scenarios supported: - from Inventory to a company number; - from Inventory to an extension number. Reassign scenarios supported: - from an extension to another extension; - from an extension to a company number; - from a company number to an extension. | +| [replace_phone_number_v2](#replace_phone_number_v2) | Replaces (swaps) phone numbers from Inventory with the main, company, direct or company fax numbers. This method is used to replace temporary numbers when the porting process is complete. | +| [add_numbers_to_inventory_v2](#add_numbers_to_inventory_v2) | Adds phone numbers to the account Inventory as unassigned. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. | +| [get_bulk_add_task_results_v2](#get_bulk_add_task_results_v2) | Returns the result of asynchronous operation which adds phone numbers to the account Inventory. | +| [list_extension_phone_numbers](#list_extension_phone_numbers) | Returns the list of phone numbers that are used by a particular extension, can be filtered by the phone number type. The returned list contains all numbers which are directly mapped to the given extension. Plus the features and company-level numbers that may be used when performing different operations on behalf of this extension. | +| [list_account_phone_numbers](#list_account_phone_numbers) | Returns the list of phone numbers assigned to RingCentral customer account. Both company-level and extension-level numbers are returned. | +| [read_account_phone_number](#read_account_phone_number) | Returns phone number(s) belonging to a certain account or extension by phoneNumberId(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. | +| [parse_phone_number](#parse_phone_number) | Returns one or more parsed and/or formatted phone numbers that are passed as strings. | + +## list_account_phone_numbers_v2 + +Returns the list of phone numbers assigned to RingCentral customer account. Both company-level and extension-level numbers are returned. Conferencing numbers, hot desk and ELIN numbers are not returned. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------- | :-------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| type\_ | [List[PhoneNumberType]](../models/PhoneNumberType.md) | ❌ | Types of phone numbers to be returned | +| usage_type | [List[PhoneNumberUsageType]](../models/PhoneNumberUsageType.md) | ❌ | Usage type(s) of phone numbers to be returned | +| status | [PhoneNumberStatus](../models/PhoneNumberStatus.md) | ❌ | Status of the phone number(s) to be returned | +| toll_type | [PhoneNumberTollType](../models/PhoneNumberTollType.md) | ❌ | Toll type of phone numbers to return | +| extension_status | [ExtensionStatus](../models/ExtensionStatus.md) | ❌ | Statuses of extensions to return phone numbers for | +| byoc_number | bool | ❌ | The parameter reflects whether this number is BYOC or not | +| phone_number | str | ❌ | Phone number in e.164 format to be searched for. Parameter value can include wildcards (e.g. "+165012345\*\*") or be an exact number "+16501234500" - single number is searched in that case. Make sure you escape the "+" in the URL as "%2B" | + +**Return Type** + +`AccountPhoneNumberList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PhoneNumberStatus, PhoneNumberTollType, ExtensionStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +type_=[ + "VoiceFax" +] +usage_type=[ + "MainCompanyNumber" +] + +result = sdk.phone_numbers.list_account_phone_numbers_v2( + account_id="~", + page=1, + per_page=100, + type_=type_, + usage_type=usage_type, + status="Normal", + toll_type="Toll", + extension_status="Enabled", + byoc_number=True, + phone_number="offici" +) + +print(result) +``` + +## delete_numbers_from_inventory_v2 + +This method can only delete numbers that meet one of the following requirements: - numbers that have `"usageType": "Inventory"` - `"Forwarded"` numbers - `"Forwarded Company"` numbers In other words, this method will not delete numbers which are in use on the account - extension direct numbers, main number, etc. It is possible to indicate phone numbers to be deleted using their IDs or exact string values in e.164 format. However, the same lookup method (by ID or by value) must be used for all numbers within the same API call. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [DeletePhoneNumbersRequest](../models/DeletePhoneNumbersRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`DeletePhoneNumbersResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DeletePhoneNumbersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = DeletePhoneNumbersRequest( + records=[ + { + "id_": "1162820004", + "phone_number": "+16501234567" + } + ] +) + +result = sdk.phone_numbers.delete_numbers_from_inventory_v2( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## assign_phone_number_v2 + +Assigns or reassigns a phone number as a company or extension number. Assign scenarios supported: - from Inventory to a company number; - from Inventory to an extension number. Reassign scenarios supported: - from an extension to another extension; - from an extension to a company number; - from a company number to an extension. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AssignPhoneNumberRequest](../models/AssignPhoneNumberRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| phone_number_id | str | ✅ | Internal identifier of a phone number | + +**Return Type** + +`AccountPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AssignPhoneNumberRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AssignPhoneNumberRequest( + type_="VoiceFax", + usage_type="MainCompanyNumber", + extension={ + "id_": "id" + }, + cost_center_id="costCenterId" +) + +result = sdk.phone_numbers.assign_phone_number_v2( + request_body=request_body, + account_id="~", + phone_number_id="1162820004" +) + +print(result) +``` + +## replace_phone_number_v2 + +Replaces (swaps) phone numbers from Inventory with the main, company, direct or company fax numbers. This method is used to replace temporary numbers when the porting process is complete. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId}/replace` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ReplacePhoneNumberRequest](../models/ReplacePhoneNumberRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| phone_number_id | str | ✅ | Internal identifier of a phone number | + +**Return Type** + +`AccountPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ReplacePhoneNumberRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ReplacePhoneNumberRequest( + target_phone_number_id="1162820004" +) + +result = sdk.phone_numbers.replace_phone_number_v2( + request_body=request_body, + account_id="~", + phone_number_id="1162820004" +) + +print(result) +``` + +## add_numbers_to_inventory_v2 + +Adds phone numbers to the account Inventory as unassigned. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers/bulk-add` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AddPhoneNumbersRequest](../models/AddPhoneNumbersRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`AddPhoneNumbersResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AddPhoneNumbersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AddPhoneNumbersRequest( + records=[ + { + "phone_number": "phoneNumber", + "usage_type": "Inventory" + } + ] +) + +result = sdk.phone_numbers.add_numbers_to_inventory_v2( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## get_bulk_add_task_results_v2 + +Returns the result of asynchronous operation which adds phone numbers to the account Inventory. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v2/accounts/{accountId}/phone-numbers/bulk-add/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| task_id | str | ✅ | Identifier of a task returned by asynchronous bulk add operation | + +**Return Type** + +`GetBulkAddTaskResultsV2OkResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.phone_numbers.get_bulk_add_task_results_v2( + account_id="~", + task_id="taskId" +) + +print(result) +``` + +## list_extension_phone_numbers + +Returns the list of phone numbers that are used by a particular extension, can be filtered by the phone number type. The returned list contains all numbers which are directly mapped to the given extension. Plus the features and company-level numbers that may be used when performing different operations on behalf of this extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| status | [ListExtensionPhoneNumbersStatus](../models/ListExtensionPhoneNumbersStatus.md) | ❌ | Status of a phone number | +| usage_type | [List[ListExtensionPhoneNumbersUsageType]](../models/ListExtensionPhoneNumbersUsageType.md) | ❌ | Usage type of phone number | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed. Default value is '1' | +| per_page | int | ❌ | Indicates a page size (number of items). If not specified, the value is '100' by default | + +**Return Type** + +`GetExtensionPhoneNumbersResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListExtensionPhoneNumbersStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +usage_type=[ + "MainCompanyNumber" +] + +result = sdk.phone_numbers.list_extension_phone_numbers( + account_id="~", + extension_id="~", + status="Normal", + usage_type=usage_type, + page=1, + per_page=100 +) + +print(result) +``` + +## list_account_phone_numbers + +Returns the list of phone numbers assigned to RingCentral customer account. Both company-level and extension-level numbers are returned. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/phone-number` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| usage_type | [List[ListAccountPhoneNumbersUsageType]](../models/ListAccountPhoneNumbersUsageType.md) | ❌ | Usage type of phone number | +| payment_type | [PlatformPaymentType](../models/PlatformPaymentType.md) | ❌ | Payment Type of the number | +| status | [ListAccountPhoneNumbersStatus](../models/ListAccountPhoneNumbersStatus.md) | ❌ | Status of a phone number | + +**Return Type** + +`AccountPhoneNumbers` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PlatformPaymentType, ListAccountPhoneNumbersStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +usage_type=[ + "MainCompanyNumber" +] + +result = sdk.phone_numbers.list_account_phone_numbers( + account_id="~", + page=1, + per_page=100, + usage_type=usage_type, + payment_type="External", + status="Normal" +) + +print(result) +``` + +## read_account_phone_number + +Returns phone number(s) belonging to a certain account or extension by phoneNumberId(s). [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/phone-number/{phoneNumberId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| phone_number_id | int | ✅ | Internal identifier of a phone number | + +**Return Type** + +`CompanyPhoneNumberInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.phone_numbers.read_account_phone_number( + account_id="~", + phone_number_id=8 +) + +print(result) +``` + +## parse_phone_number + +Returns one or more parsed and/or formatted phone numbers that are passed as strings. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/number-parser/parse` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :-------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ParsePhoneNumberRequest](../models/ParsePhoneNumberRequest.md) | ✅ | The request body. | +| home_country | str | ❌ | ISO 3166 alpha2 code of the home country to be used if it is impossible to determine country from the number itself. By default, this parameter is preset to the current user's home country or brand country if the user is undefined | +| national_as_priority | bool | ❌ | The default value is `false`. If `true`, the numbers that are closer to the home country are given higher priority | + +**Return Type** + +`ParsePhoneNumberResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ParsePhoneNumberRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ParsePhoneNumberRequest( + original_strings=[ + "(650) 722-1621" + ] +) + +result = sdk.phone_numbers.parse_phone_number( + request_body=request_body, + home_country="US", + national_as_priority=False +) + +print(result) +``` + + diff --git a/documentation/services/PostsService.md b/documentation/services/PostsService.md new file mode 100644 index 00000000..29190dfd --- /dev/null +++ b/documentation/services/PostsService.md @@ -0,0 +1,253 @@ +# PostsService + +A list of all methods in the `PostsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [create_glip_file_new](#create_glip_file_new) | Posts a file. | +| [read_glip_posts_new](#read_glip_posts_new) | Returns a list of posts from the specified chat. | +| [create_glip_post_new](#create_glip_post_new) | Creates a post in the chat specified in path. Any mention can be added within the `text` attribute of the request body in .md format - `![:Type](id)`, where `type` is one of (Person, Team, File, Note, Task, Event, Link, Card) and `id` is a unique identifier of the mentioned object of the specified type. Attachments of the following types (File, Card, Event, Note) can also be added to a post by passing type and ID of attachment(s) in request body. | +| [read_glip_post_new](#read_glip_post_new) | Returns information about the specified post. | +| [patch_glip_post_new](#patch_glip_post_new) | Updates a specific post within a chat. | +| [delete_glip_post_new](#delete_glip_post_new) | Deletes the specified post from the chat. | + +## create_glip_file_new + +Posts a file. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/files` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :-------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| group_id | int | ❌ | Internal identifier of a group to which the post with attachment will be added to | +| name | str | ❌ | Name of a file attached | + +**Return Type** + +`TmAddFileRequest` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateGlipFileNewRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "body": "body" +} + +result = sdk.posts.create_glip_file_new( + request_body=request_body, + group_id=3, + name="name" +) + +print(result) +``` + +## read_glip_posts_new + +Returns a list of posts from the specified chat. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats/{chatId}/posts` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :------------------------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat | +| record_count | int | ❌ | Max number of posts to be fetched by one request (not more than 250) | +| page_token | str | ❌ | Pagination token. | + +**Return Type** + +`TmPostsList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.posts.read_glip_posts_new( + chat_id="chatId", + record_count=30, + page_token="pageToken" +) + +print(result) +``` + +## create_glip_post_new + +Creates a post in the chat specified in path. Any mention can be added within the `text` attribute of the request body in .md format - `![:Type](id)`, where `type` is one of (Person, Team, File, Note, Task, Event, Link, Card) and `id` is a unique identifier of the mentioned object of the specified type. Attachments of the following types (File, Card, Event, Note) can also be added to a post by passing type and ID of attachment(s) in request body. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/posts` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :----------------------------- | +| request_body | [TmCreatePostRequest](../models/TmCreatePostRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a chat. | + +**Return Type** + +`TmPostInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreatePostRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreatePostRequest( + text="text", + attachments=[ + { + "id_": "id", + "type_": "File" + } + ] +) + +result = sdk.posts.create_glip_post_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + +## read_glip_post_new + +Returns information about the specified post. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats/{chatId}/posts/{postId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat | +| post_id | str | ✅ | Internal identifier of a post | + +**Return Type** + +`TmPostInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.posts.read_glip_post_new( + chat_id="chatId", + post_id="postId" +) + +print(result) +``` + +## patch_glip_post_new + +Updates a specific post within a chat. + +- HTTP Method: `PATCH` +- Endpoint: `/team-messaging/v1/chats/{chatId}/posts/{postId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :------------------------------------------ | +| request_body | [TmUpdatePostRequest](../models/TmUpdatePostRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a chat | +| post_id | str | ✅ | Internal identifier of a post to be updated | + +**Return Type** + +`TmPostInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmUpdatePostRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmUpdatePostRequest( + text="text" +) + +result = sdk.posts.patch_glip_post_new( + request_body=request_body, + chat_id="chatId", + post_id="postId" +) + +print(result) +``` + +## delete_glip_post_new + +Deletes the specified post from the chat. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/chats/{chatId}/posts/{postId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| chat_id | str | ✅ | Internal identifier of a chat | +| post_id | str | ✅ | Internal identifier of a post to be deleted | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.posts.delete_glip_post_new( + chat_id="chatId", + post_id="postId" +) + +print(result) +``` + + diff --git a/documentation/services/PresenceService.md b/documentation/services/PresenceService.md new file mode 100644 index 00000000..0356fd7e --- /dev/null +++ b/documentation/services/PresenceService.md @@ -0,0 +1,407 @@ +# PresenceService + +A list of all methods in the `PresenceService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_call_queue_presence](#read_call_queue_presence) | Returns presence status of the call queue members. | +| [update_call_queue_presence](#update_call_queue_presence) | Updates presence status of the call queue members in the specified queue. | +| [read_account_presence](#read_account_presence) | Returns presence status of all extensions of an account. Please note: The presenceStatus is returned as Offline (the parameters telephonyStatus, message, userStatus and dndStatus are not returned at all) for the following extension types: Department, Announcement Only, Voicemail (Take Messages Only), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. | +| [read_extension_call_queue_presence](#read_extension_call_queue_presence) | Returns a list of agent's call queues with the agent presence status (per queue). | +| [update_extension_call_queue_presence](#update_extension_call_queue_presence) | Updates availability of the agent for the call queues. | +| [read_user_presence_status](#read_user_presence_status) | Returns the presence status of an extension or several extensions by their ID(s). The `presenceStatus` is returned as Offline (the parameters `telephonyStatus`, `message`, `userStatus` and `dndStatus` are not returned at all) for the following extension types: Department/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location. If the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off. [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. For batch requests the number of extensions in one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error code InvalidMultipartRequest and the corresponding message Extension Presence Info multipart request is limited to 30 extensions. | +| [update_user_presence_status](#update_user_presence_status) | Updates user-defined extension presence status, status message and DnD status by extension ID. Supported for regular User extensions only. The extension types listed do not support presence status: Department, Announcement Only, Take Messages Only (Voicemail), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. | +| [read_unified_presence](#read_unified_presence) | Returns the unified presence status of the requested user(s). The set of parameters returned by this method differs whether you return the requester's presence or any other user presence. | +| [update_unified_presence](#update_unified_presence) | Updates the unified presence for the current user specified in path. | + +## read_call_queue_presence + +Returns presence status of the call queue members. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call queue extension | + +**Return Type** + +`CallQueuePresence` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.presence.read_call_queue_presence( + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## update_call_queue_presence + +Updates presence status of the call queue members in the specified queue. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CallQueueUpdatePresence](../models/CallQueueUpdatePresence.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| group_id | str | ✅ | Internal identifier of a call queue extension | + +**Return Type** + +`CallQueuePresence` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CallQueueUpdatePresence + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CallQueueUpdatePresence( + records=[ + { + "member": { + "id_": "id" + }, + "accept_current_queue_calls": True + } + ] +) + +result = sdk.presence.update_call_queue_presence( + request_body=request_body, + account_id="~", + group_id="groupId" +) + +print(result) +``` + +## read_account_presence + +Returns presence status of all extensions of an account. Please note: The presenceStatus is returned as Offline (the parameters telephonyStatus, message, userStatus and dndStatus are not returned at all) for the following extension types: Department, Announcement Only, Voicemail (Take Messages Only), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| detailed_telephony_state | bool | ❌ | Whether to return detailed telephony state | +| sip_data | bool | ❌ | Whether to return SIP data | +| page | int | ❌ | Page number for account presence information | +| per_page | int | ❌ | Number for account presence information items per page | + +**Return Type** + +`AccountPresenceInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.presence.read_account_presence( + account_id="~", + detailed_telephony_state=False, + sip_data=True, + page=8, + per_page=1 +) + +print(result) +``` + +## read_extension_call_queue_presence + +Returns a list of agent's call queues with the agent presence status (per queue). + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| editable_member_status | bool | ❌ | Filtering by the flag 'Allow members to change their Queue Status'. If 'true' only queues where user can change his availability status are returned | + +**Return Type** + +`ExtensionCallQueuePresenceList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.presence.read_extension_call_queue_presence( + account_id="~", + extension_id="~", + editable_member_status=True +) + +print(result) +``` + +## update_extension_call_queue_presence + +Updates availability of the agent for the call queues. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ExtensionCallQueueUpdatePresenceList](../models/ExtensionCallQueueUpdatePresenceList.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`ExtensionCallQueuePresenceList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionCallQueueUpdatePresenceList + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ExtensionCallQueueUpdatePresenceList( + records=[ + { + "call_queue": { + "id_": "id" + }, + "accept_calls": True + } + ] +) + +result = sdk.presence.update_extension_call_queue_presence( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_user_presence_status + +Returns the presence status of an extension or several extensions by their ID(s). The `presenceStatus` is returned as Offline (the parameters `telephonyStatus`, `message`, `userStatus` and `dndStatus` are not returned at all) for the following extension types: Department/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location. If the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off. [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. For batch requests the number of extensions in one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error code InvalidMultipartRequest and the corresponding message Extension Presence Info multipart request is limited to 30 extensions. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| detailed_telephony_state | bool | ❌ | Specifies whether to return a detailed telephony state or not | +| sip_data | bool | ❌ | Specifies whether to return SIP data or not | + +**Return Type** + +`GetPresenceInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.presence.read_user_presence_status( + account_id="~", + extension_id="~", + detailed_telephony_state=False, + sip_data=False +) + +print(result) +``` + +## update_user_presence_status + +Updates user-defined extension presence status, status message and DnD status by extension ID. Supported for regular User extensions only. The extension types listed do not support presence status: Department, Announcement Only, Take Messages Only (Voicemail), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [PresenceInfoRequest](../models/PresenceInfoRequest.md) | ❌ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`PresenceInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PresenceInfoRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PresenceInfoRequest( + user_status="Offline", + dnd_status="TakeAllCalls", + message="proident minim elit dolore aliqua", + allow_see_my_presence=False, + ring_on_monitored_call=False, + pick_up_calls_on_hold=False, + caller_id_visibility="All" +) + +result = sdk.presence.update_user_presence_status( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_unified_presence + +Returns the unified presence status of the requested user(s). The set of parameters returned by this method differs whether you return the requester's presence or any other user presence. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session | +| extension_id | str | ✅ | Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session | + +**Return Type** + +`UnifiedPresence` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.presence.read_unified_presence( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_unified_presence + +Updates the unified presence for the current user specified in path. + +- HTTP Method: `PATCH` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateUnifiedPresence](../models/UpdateUnifiedPresence.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session | +| extension_id | str | ✅ | Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session | + +**Return Type** + +`UnifiedPresence` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateUnifiedPresence + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateUnifiedPresence( + glip={ + "visibility": "Visible", + "availability": "Available" + }, + telephony={ + "availability": "TakeAllCalls" + } +) + +result = sdk.presence.update_unified_presence( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/ProfileService.md b/documentation/services/ProfileService.md new file mode 100644 index 00000000..6f7d3549 --- /dev/null +++ b/documentation/services/ProfileService.md @@ -0,0 +1,74 @@ +# ProfileService + +A list of all methods in the `ProfileService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------- | :--------------------------------------------------------------------------- | +| [read_tm_company_info_new](#read_tm_company_info_new) | Returns information about one or more companies by their IDs. | +| [read_glip_person_new](#read_glip_person_new) | Returns a user or multiple users by their ID(s). Batch request is supported. | + +## read_tm_company_info_new + +Returns information about one or more companies by their IDs. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/companies/{companyId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------- | +| company_id | str | ✅ | Internal identifier of an RC account/Glip company, or tilde (~) to indicate a company the current user belongs to. | + +**Return Type** + +`TmCompanyInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.profile.read_tm_company_info_new(company_id="companyId") + +print(result) +``` + +## read_glip_person_new + +Returns a user or multiple users by their ID(s). Batch request is supported. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/persons/{personId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------- | :--- | :------- | :---------------------------------------------------------------------------- | +| person_id | str | ✅ | Internal identifier of a user to be returned, the maximum number of IDs is 30 | + +**Return Type** + +`TmPersonInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.profile.read_glip_person_new(person_id="personId") + +print(result) +``` + + diff --git a/documentation/services/RcmMeetingsLegacyService.md b/documentation/services/RcmMeetingsLegacyService.md new file mode 100644 index 00000000..de5a5777 --- /dev/null +++ b/documentation/services/RcmMeetingsLegacyService.md @@ -0,0 +1,8 @@ +# RcmMeetingsLegacyService + +A list of all methods in the `RcmMeetingsLegacyService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------ | :---------- | + + diff --git a/documentation/services/RegionalSettingsService.md b/documentation/services/RegionalSettingsService.md new file mode 100644 index 00000000..04371310 --- /dev/null +++ b/documentation/services/RegionalSettingsService.md @@ -0,0 +1,336 @@ +# RegionalSettingsService + +A list of all methods in the `RegionalSettingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------- | :--------------------------------------------------- | +| [list_states](#list_states) | Returns all states of a certain country. | +| [read_state](#read_state) | Returns information on a specific state by ID. | +| [list_locations](#list_locations) | Returns all available locations for a certain state. | +| [list_languages](#list_languages) | Returns information about the supported languages. | +| [read_language](#read_language) | Returns a language by ID. | +| [list_timezones](#list_timezones) | Returns all available timezones. | +| [read_timezone](#read_timezone) | Returns information on a certain timezone. | +| [list_countries](#list_countries) | Returns all countries available for calling. | +| [read_country](#read_country) | Returns information on a specific country. | + +## list_states + +Returns all states of a certain country. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/state` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| all_countries | bool | ❌ | If set to `true` then states of all countries are returned and `countryId` is ignored, even if specified. If the value is empty then the parameter is ignored | +| country_id | int | ❌ | Internal identifier of a country | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| with_phone_numbers | bool | ❌ | If `true` the list of states with phone numbers available for buying is returned | + +**Return Type** + +`GetStateListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.list_states( + all_countries=True, + country_id=3, + page=1, + per_page=100, + with_phone_numbers=False +) + +print(result) +``` + +## read_state + +Returns information on a specific state by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/state/{stateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :----------------------------- | +| state_id | int | ✅ | Internal identifier of a state | + +**Return Type** + +`GetStateInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.read_state(state_id=3) + +print(result) +``` + +## list_locations + +Returns all available locations for a certain state. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/location` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :-------------------------------------------------------- | :------- | :---------------------------------------------------------------------------- | +| order_by | [ListLocationsOrderBy](../models/ListLocationsOrderBy.md) | ❌ | Sorts results by the property specified | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| state_id | str | ❌ | Internal identifier of a state | +| with_nxx | bool | ❌ | Specifies if `nxx` codes are returned | + +**Return Type** + +`GetLocationListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ListLocationsOrderBy + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.list_locations( + order_by="Npa", + page=1, + per_page=100, + state_id="stateId", + with_nxx=True +) + +print(result) +``` + +## list_languages + +Returns information about the supported languages. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/language` + +**Return Type** + +`LanguageList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.list_languages() + +print(result) +``` + +## read_language + +Returns a language by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/language/{languageId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| language_id | int | ✅ | Internal identifier of a language | + +**Return Type** + +`LanguageInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.read_language(language_id=5) + +print(result) +``` + +## list_timezones + +Returns all available timezones. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/timezone` + +**Parameters** + +| Name | Type | Required | Description | +| :------- | :--- | :------- | :------------------------------------------------------------------------------------------------- | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed. Default value is '1' | +| per_page | int | ❌ | Indicates a page size (number of items). If not specified, the value is '100' by default | + +**Return Type** + +`GetTimezoneListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.list_timezones( + page=1, + per_page=100 +) + +print(result) +``` + +## read_timezone + +Returns information on a certain timezone. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/timezone/{timezoneId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :-------------------------------- | +| timezone_id | int | ✅ | Internal identifier of a timezone | + +**Return Type** + +`GetTimezoneInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.read_timezone(timezone_id=6) + +print(result) +``` + +## list_countries + +Returns all countries available for calling. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/country` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| login_allowed | bool | ❌ | Specifies whether the logging-in with the phone numbers of this country is enabled or not | +| signup_allowed | bool | ❌ | Indicates whether a signup/billing is allowed for a country. If not specified all countries are returned (according to other specified filters if any) | +| number_selling | bool | ❌ | Specifies if RingCentral sells phone numbers of this country | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are accepted | +| per_page | int | ❌ | Indicates a page size (number of items) | +| free_softphone_line | bool | ❌ | Specifies if free phone line for softphone is available for a country or not | + +**Return Type** + +`CountryListDictionaryModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.list_countries( + login_allowed=False, + signup_allowed=False, + number_selling=False, + page=1, + per_page=100, + free_softphone_line=False +) + +print(result) +``` + +## read_country + +Returns information on a specific country. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/country/{countryId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------------- | +| country_id | int | ✅ | Internal identifier of a country | + +**Return Type** + +`CountryInfoDictionaryModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.regional_settings.read_country(country_id=5) + +print(result) +``` + + diff --git a/documentation/services/RegistrantsService.md b/documentation/services/RegistrantsService.md new file mode 100644 index 00000000..0cc08d7c --- /dev/null +++ b/documentation/services/RegistrantsService.md @@ -0,0 +1,182 @@ +# RegistrantsService + +A list of all methods in the `RegistrantsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [rcw_reg_list_registrants](#rcw_reg_list_registrants) | Returns the list of Registrants ordered by "id" ascending. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. | +| [rcw_reg_create_registrant](#rcw_reg_create_registrant) | Creates a new Registrant for a given session. Registration MUST be open for the session for this call to succeed (otherwise it should return HTTP 403). A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. | +| [rcw_reg_get_registrant](#rcw_reg_get_registrant) | Returns a Registrant by ID. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. | +| [rcw_reg_delete_registrant](#rcw_reg_delete_registrant) | Deletes a Registrant by ID. Session must not be in finished state (otherwise it should return HTTP 403). A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. | + +## rcw_reg_list_registrants + +Returns the list of Registrants ordered by "id" ascending. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. + +- HTTP Method: `GET` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}/registrants` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| session_id | str | ✅ | Identifier of the Session. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | +| include_questionnaire | bool | ❌ | Indicates if registrant's "questionnaire" should be returned | + +**Return Type** + +`RegistrantListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.registrants.rcw_reg_list_registrants( + session_id="in dolore ip", + per_page=100, + page_token="pageToken", + include_questionnaire=False +) + +print(result) +``` + +## rcw_reg_create_registrant + +Creates a new Registrant for a given session. Registration MUST be open for the session for this call to succeed (otherwise it should return HTTP 403). A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. + +- HTTP Method: `POST` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}/registrants` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------------- | :------- | :------------------------- | +| request_body | [RegistrantBaseModelWithQuestionnaire](../models/RegistrantBaseModelWithQuestionnaire.md) | ✅ | The request body. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`RegistrantModelResponsePostWithQuestionnaire` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RegistrantBaseModelWithQuestionnaire + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RegistrantBaseModelWithQuestionnaire( + first_name="John", + last_name="Doe", + email="john.doe@example.com", + join_uri="https://v.ringcentral.com/w/a/join/iuyef77fsj473wn10ashjfk34", + cancellation_uri="https://abcde12345.webinar.ringcentral.com/register?jlt=iuyef77fsj473wn10ashjfk34&action=cancel", + registered_post_webinar=True, + visitor_id="visitorId", + external_id="externalId", + registration_time="registrationTime", + ip_address="ipAddress", + source="source", + participant_id="participantId", + questionnaire=[ + { + "question_id": "123456789", + "answer_ids": [ + "answerIds" + ] + } + ] +) + +result = sdk.registrants.rcw_reg_create_registrant( + request_body=request_body, + session_id="id moll" +) + +print(result) +``` + +## rcw_reg_get_registrant + +Returns a Registrant by ID. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. + +- HTTP Method: `GET` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}/registrants/{registrantId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------------- | :--- | :------- | :----------------------------------------------------------- | +| session_id | str | ✅ | Identifier of the Session. | +| registrant_id | str | ✅ | Identifier of the Session Registrant | +| include_questionnaire | bool | ❌ | Indicates if registrant's "questionnaire" should be returned | + +**Return Type** + +`RegistrantModelWithQuestionnaire` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.registrants.rcw_reg_get_registrant( + session_id="dolore nostrud ", + registrant_id="elit ", + include_questionnaire=True +) + +print(result) +``` + +## rcw_reg_delete_registrant + +Deletes a Registrant by ID. Session must not be in finished state (otherwise it should return HTTP 403). A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. + +- HTTP Method: `DELETE` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}/registrants/{registrantId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :----------------------------------- | +| session_id | str | ✅ | Identifier of the Session. | +| registrant_id | str | ✅ | Identifier of the Session Registrant | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.registrants.rcw_reg_delete_registrant( + session_id="sit d", + registrant_id="ani" +) + +print(result) +``` + + diff --git a/documentation/services/RegistrationManagementService.md b/documentation/services/RegistrationManagementService.md new file mode 100644 index 00000000..6676020a --- /dev/null +++ b/documentation/services/RegistrationManagementService.md @@ -0,0 +1,99 @@ +# RegistrationManagementService + +A list of all methods in the `RegistrationManagementService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [rcw_reg_get_session](#rcw_reg_get_session) | Returns a registration Session information by ID. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. | +| [rcw_reg_update_session](#rcw_reg_update_session) | Updates a Session by ID. This is a PARTIAL update (PATCH), client may call it providing only attributes which are to be changed. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. If a session record with given ID doesn't exist on Registration Service side the API should return HTTP 404. | + +## rcw_reg_get_session + +Returns a registration Session information by ID. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. + +- HTTP Method: `GET` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`RegSessionModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.registration_management.rcw_reg_get_session(session_id="irure nisi exe") + +print(result) +``` + +## rcw_reg_update_session + +Updates a Session by ID. This is a PARTIAL update (PATCH), client may call it providing only attributes which are to be changed. A caller must be an authorized user: either a host of the webinar or an IT Admin: a user from host's account with "WebinarSettings" permission. If a session record with given ID doesn't exist on Registration Service side the API should return HTTP 404. + +- HTTP Method: `PATCH` +- Endpoint: `/webinar/registration/v1/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------- | :------- | :------------------------- | +| request_body | [RegSessionModel](../models/RegSessionModel.md) | ✅ | The request body. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`RegSessionModel` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RegSessionModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RegSessionModel( + id_="123456789", + registration_status="Open", + registration_page_uri="https://abcde12345.webinar.ringcentral.com/register", + branding_descriptor_uri="https://abcde12345.webinar.ringcentral.com/branding", + registrant_count=10, + has_real_registrants=True, + icalendar_sequence=2, + settings={ + "auto_close_limit": 1, + "suppress_emails": True, + "registration_digest_enabled": True, + "prevent_multiple_device_joins": False, + "work_email_required": False, + "view_recording": True, + "on_demand_duration": "OneMonth", + "recording_exist": False + } +) + +result = sdk.registration_management.rcw_reg_update_session( + request_body=request_body, + session_id="dolor mollit " +) + +print(result) +``` + + diff --git a/documentation/services/RingOutService.md b/documentation/services/RingOutService.md new file mode 100644 index 00000000..e097d12f --- /dev/null +++ b/documentation/services/RingOutService.md @@ -0,0 +1,139 @@ +# RingOutService + +A list of all methods in the `RingOutService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------ | :------------------------------------------- | +| [create_ring_out_call](#create_ring_out_call) | Makes a 2-legged RingOut call. | +| [read_ring_out_call_status](#read_ring_out_call_status) | Returns a status of a 2-legged RingOut call. | +| [delete_ring_out_call](#delete_ring_out_call) | Cancels a 2-legged RingOut call. | + +## create_ring_out_call + +Makes a 2-legged RingOut call. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MakeRingOutRequest](../models/MakeRingOutRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetRingOutStatusResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MakeRingOutRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MakeRingOutRequest( + from_={ + "phone_number": "phoneNumber", + "forwarding_number_id": "forwardingNumberId" + }, + to={ + "phone_number": "phoneNumber" + }, + caller_id={ + "phone_number": "phoneNumber" + }, + play_prompt=True, + country={ + "id_": "id" + } +) + +result = sdk.ring_out.create_ring_out_call( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_ring_out_call_status + +Returns a status of a 2-legged RingOut call. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out/{ringoutId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| ringout_id | str | ✅ | Internal identifier of a RingOut call | + +**Return Type** + +`GetRingOutStatusResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ring_out.read_ring_out_call_status( + account_id="~", + extension_id="~", + ringout_id="ringoutId" +) + +print(result) +``` + +## delete_ring_out_call + +Cancels a 2-legged RingOut call. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out/{ringoutId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| ringout_id | str | ✅ | Internal identifier of a RingOut call | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.ring_out.delete_ring_out_call( + account_id="~", + extension_id="~", + ringout_id="ringoutId" +) + +print(result) +``` + + diff --git a/documentation/services/RoleManagementService.md b/documentation/services/RoleManagementService.md new file mode 100644 index 00000000..4e149f77 --- /dev/null +++ b/documentation/services/RoleManagementService.md @@ -0,0 +1,654 @@ +# RoleManagementService + +A list of all methods in the `RoleManagementService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------------------ | :------------------------------------------------------------------ | +| [list_assigned_roles](#list_assigned_roles) | Returns a list of roles assigned to the current account. | +| [list_user_roles](#list_user_roles) | Returns a list of account user roles. | +| [create_custom_role](#create_custom_role) | Creates a custom user role. | +| [read_default_role](#read_default_role) | Returns the default user role of the current account. | +| [update_default_user_role](#update_default_user_role) | Updates the account default user role. | +| [read_user_role](#read_user_role) | Returns a user role assigned to the current account. | +| [update_user_role](#update_user_role) | Updates a user role assigned to the current account by ID. | +| [delete_custom_role](#delete_custom_role) | Deletes a custom user role by ID. | +| [assign_multiple_user_roles](#assign_multiple_user_roles) | Assigns multiple user roles. | +| [list_of_available_for_assigning_roles](#list_of_available_for_assigning_roles) | Returns a list of roles which can be assigned to a given extension. | +| [list_user_assigned_roles](#list_user_assigned_roles) | Returns a list of roles assigned to the current extension. | +| [update_user_assigned_roles](#update_user_assigned_roles) | Updates a list of roles assigned to the current user. | +| [assign_default_role](#assign_default_role) | Assigns the default role to the currently logged-in user extension. | +| [list_standard_user_role](#list_standard_user_role) | Returns a list of standard user roles. | +| [read_standard_user_role](#read_standard_user_role) | Returns a standard user role by ID. | + +## list_assigned_roles + +Returns a list of roles assigned to the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/assigned-role` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| show_hidden | bool | ❌ | Specifies if hidden roles are shown or not | + +**Return Type** + +`ExtensionWithRolesCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.list_assigned_roles( + account_id="~", + show_hidden=False +) + +print(result) +``` + +## list_user_roles + +Returns a list of account user roles. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| custom | bool | ❌ | Specifies whether to return custom roles or predefined roles only. If not specified, all roles are returned | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`RolesCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.list_user_roles( + account_id="~", + custom=False, + page=1, + per_page=100 +) + +print(result) +``` + +## create_custom_role + +Creates a custom user role. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [RoleResource](../models/RoleResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RoleResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RoleResource( + uri="uri", + id_="id", + display_name="Super Admin", + description="Primary company administrator role", + site_compatible=True, + custom=True, + scope="Account", + hidden=True, + last_updated="lastUpdated", + permissions=[ + { + "uri": "uri", + "id_": "id", + "site_compatible": "Compatible", + "read_only": False, + "assignable": False, + "permissions_capabilities": { + "enabled": False, + "manage_enabled": True, + "grant_enabled": False + } + } + ] +) + +result = sdk.role_management.create_custom_role( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_default_role + +Returns the default user role of the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/default` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`DefaultUserRole` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.read_default_role(account_id="~") + +print(result) +``` + +## update_default_user_role + +Updates the account default user role. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/default` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [DefaultUserRoleRequest](../models/DefaultUserRoleRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`DefaultUserRole` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import DefaultUserRoleRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = DefaultUserRoleRequest( + id_="id" +) + +result = sdk.role_management.update_default_user_role( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_user_role + +Returns a user role assigned to the current account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/{roleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role_id | str | ✅ | Internal identifier of a role | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| advanced_permissions | bool | ❌ | Specifies whether to return advanced permissions capabilities within `permissionsCapabilities` resource. The default value is false. | + +**Return Type** + +`RoleResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.read_user_role( + role_id="roleId", + account_id="~", + advanced_permissions=True +) + +print(result) +``` + +## update_user_role + +Updates a user role assigned to the current account by ID. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/{roleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [RoleResource](../models/RoleResource.md) | ✅ | The request body. | +| role_id | str | ✅ | Internal identifier of a role | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`RoleResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import RoleResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = RoleResource( + uri="uri", + id_="id", + display_name="Super Admin", + description="Primary company administrator role", + site_compatible=True, + custom=True, + scope="Account", + hidden=True, + last_updated="lastUpdated", + permissions=[ + { + "uri": "uri", + "id_": "id", + "site_compatible": "Compatible", + "read_only": False, + "assignable": False, + "permissions_capabilities": { + "enabled": False, + "manage_enabled": True, + "grant_enabled": False + } + } + ] +) + +result = sdk.role_management.update_user_role( + request_body=request_body, + role_id="roleId", + account_id="~" +) + +print(result) +``` + +## delete_custom_role + +Deletes a custom user role by ID. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/{roleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| role_id | str | ✅ | Internal identifier of a role | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| validate_only | bool | ❌ | Specifies that role should be validated prior to deletion, whether it can be deleted or not | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.delete_custom_role( + role_id="roleId", + account_id="~", + validate_only=False +) + +print(result) +``` + +## assign_multiple_user_roles + +Assigns multiple user roles. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/user-role/{roleId}/bulk-assign` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BulkRoleAssignResource](../models/BulkRoleAssignResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| role_id | str | ✅ | Internal identifier of a role | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BulkRoleAssignResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BulkRoleAssignResource( + site_restricted=True, + site_compatible=True, + uri="uri", + added_extension_ids=[ + "addedExtensionIds" + ], + removed_extension_ids=[ + "removedExtensionIds" + ] +) + +result = sdk.role_management.assign_multiple_user_roles( + request_body=request_body, + account_id="~", + role_id="roleId" +) + +print(result) +``` + +## list_of_available_for_assigning_roles + +Returns a list of roles which can be assigned to a given extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/assignable-roles` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | + +**Return Type** + +`RolesCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.list_of_available_for_assigning_roles( + account_id="~", + extension_id="~", + page=1, + per_page=100 +) + +print(result) +``` + +## list_user_assigned_roles + +Returns a list of roles assigned to the current extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/assigned-role` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| show_hidden | bool | ❌ | Specifies if hidden roles are shown or not | + +**Return Type** + +`AssignedRolesResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.list_user_assigned_roles( + account_id="~", + extension_id="~", + show_hidden=False +) + +print(result) +``` + +## update_user_assigned_roles + +Updates a list of roles assigned to the current user. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/assigned-role` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [AssignedRolesResource](../models/AssignedRolesResource.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`AssignedRolesResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AssignedRolesResource + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = AssignedRolesResource( + uri="uri", + records=[ + { + "uri": "uri", + "id_": "id", + "auto_assigned": True, + "display_name": "displayName", + "site_compatible": False, + "site_restricted": True + } + ] +) + +result = sdk.role_management.update_user_assigned_roles( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## assign_default_role + +Assigns the default role to the currently logged-in user extension. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/assigned-role/default` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`AssignedRolesResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.assign_default_role( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## list_standard_user_role + +Returns a list of standard user roles. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/user-role` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------- | +| service_plan_id | str | ❌ | Internal identifier of a service plan. | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| advanced_permissions | bool | ❌ | Specifies whether to return advanced permissions capabilities within `permissionsCapabilities` resource. The default value is false. | + +**Return Type** + +`RolesCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.list_standard_user_role( + service_plan_id="servicePlanId", + page=1, + per_page=100, + advanced_permissions=False +) + +print(result) +``` + +## read_standard_user_role + +Returns a standard user role by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/user-role/{roleId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------- | +| role_id | str | ✅ | Internal identifier of a role | + +**Return Type** + +`RoleResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.role_management.read_standard_user_role(role_id="roleId") + +print(result) +``` + + diff --git a/documentation/services/ScimService.md b/documentation/services/ScimService.md new file mode 100644 index 00000000..efcb387f --- /dev/null +++ b/documentation/services/ScimService.md @@ -0,0 +1,514 @@ +# ScimService + +A list of all methods in the `ScimService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------ | :--------------------------------------------------- | +| [scim_list_schemas2](#scim_list_schemas2) | Returns the list of schemas | +| [scim_get_schema2](#scim_get_schema2) | Returns SCIM schema | +| [scim_search_via_get2](#scim_search_via_get2) | Returns the list of users satisfying search criteria | +| [scim_create_user2](#scim_create_user2) | Creates a new user | +| [scim_search_via_post2](#scim_search_via_post2) | Returns the list of users satisfying search criteria | +| [scim_get_user2](#scim_get_user2) | Returns a user by ID | +| [scim_update_user2](#scim_update_user2) | Updates a user | +| [scim_patch_user2](#scim_patch_user2) | Updates a user (partial update) | +| [scim_delete_user2](#scim_delete_user2) | Deletes a user | +| [scim_get_provider_config2](#scim_get_provider_config2) | Returns SCIM service provider configuration | +| [scim_list_resource_types2](#scim_list_resource_types2) | Returns the list of supported SCIM resource types | +| [scim_get_resource_type2](#scim_get_resource_type2) | Returns resource type by ID | + +## scim_list_schemas2 + +Returns the list of schemas + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/Schemas` + +**Return Type** + +`ScimSchemaSearchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_list_schemas2() + +print(result) +``` + +## scim_get_schema2 + +Returns SCIM schema + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/Schemas/{uri}` + +**Parameters** + +| Name | Type | Required | Description | +| :--- | :--- | :------- | :---------- | +| uri | str | ✅ | Schema URI | + +**Return Type** + +`ScimSchemaResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_get_schema2(uri="uri") + +print(result) +``` + +## scim_search_via_get2 + +Returns the list of users satisfying search criteria + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/Users` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :------------------------------------------------------------ | +| filter | str | ❌ | Only support 'userName' or 'email' filter expressions for now | +| start_index | int | ❌ | Start index (1-based) | +| count | int | ❌ | Page size | + +**Return Type** + +`ScimUserSearchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_search_via_get2( + filter="filter", + start_index=1, + count=100 +) + +print(result) +``` + +## scim_create_user2 + +Creates a new user + +- HTTP Method: `POST` +- Endpoint: `/scim/v2/Users` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :---------------- | +| request_body | [ScimUser](../models/ScimUser.md) | ✅ | The request body. | + +**Return Type** + +`ScimUserResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ScimUser + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ScimUser( + active=True, + addresses=[ + { + "country": "country", + "locality": "locality", + "postal_code": "postalCode", + "region": "region", + "street_address": "streetAddress", + "type_": "work" + } + ], + emails=[ + { + "type_": "work", + "value": "value" + } + ], + external_id="externalId", + id_="id", + name={ + "family_name": "familyName", + "given_name": "givenName" + }, + phone_numbers=[ + { + "type_": "work", + "value": "value" + } + ], + photos=[ + { + "type_": "photo", + "value": "value" + } + ], + schemas=[ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + title="title", + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user={ + "department": "department" + }, + user_name="userName" +) + +result = sdk.scim.scim_create_user2(request_body=request_body) + +print(result) +``` + +## scim_search_via_post2 + +Returns the list of users satisfying search criteria + +- HTTP Method: `POST` +- Endpoint: `/scim/v2/Users/.search` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------- | :------- | :---------------- | +| request_body | [ScimSearchRequest](../models/ScimSearchRequest.md) | ✅ | The request body. | + +**Return Type** + +`ScimUserSearchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ScimSearchRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ScimSearchRequest( + count=6, + filter="filter", + schemas=[ + "urn:ietf:params:scim:api:messages:2.0:SearchRequest" + ], + start_index=6 +) + +result = sdk.scim.scim_search_via_post2(request_body=request_body) + +print(result) +``` + +## scim_get_user2 + +Returns a user by ID + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/Users/{scimUserId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| scim_user_id | str | ✅ | User ID | + +**Return Type** + +`ScimUserResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_get_user2(scim_user_id="scimUserId") + +print(result) +``` + +## scim_update_user2 + +Updates a user + +- HTTP Method: `PUT` +- Endpoint: `/scim/v2/Users/{scimUserId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------- | :------- | :---------------- | +| request_body | [ScimUser](../models/ScimUser.md) | ✅ | The request body. | +| scim_user_id | str | ✅ | User ID | + +**Return Type** + +`ScimUserResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ScimUser + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ScimUser( + active=True, + addresses=[ + { + "country": "country", + "locality": "locality", + "postal_code": "postalCode", + "region": "region", + "street_address": "streetAddress", + "type_": "work" + } + ], + emails=[ + { + "type_": "work", + "value": "value" + } + ], + external_id="externalId", + id_="id", + name={ + "family_name": "familyName", + "given_name": "givenName" + }, + phone_numbers=[ + { + "type_": "work", + "value": "value" + } + ], + photos=[ + { + "type_": "photo", + "value": "value" + } + ], + schemas=[ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + title="title", + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user={ + "department": "department" + }, + user_name="userName" +) + +result = sdk.scim.scim_update_user2( + request_body=request_body, + scim_user_id="scimUserId" +) + +print(result) +``` + +## scim_patch_user2 + +Updates a user (partial update) + +- HTTP Method: `PATCH` +- Endpoint: `/scim/v2/Users/{scimUserId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------ | :------- | :---------------- | +| request_body | [ScimUserPatch](../models/ScimUserPatch.md) | ✅ | The request body. | +| scim_user_id | str | ✅ | User ID | + +**Return Type** + +`ScimUserResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ScimUserPatch + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ScimUserPatch( + operations=[ + { + "op": "add", + "path": "path", + "value": "value" + } + ], + schemas=[ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ] +) + +result = sdk.scim.scim_patch_user2( + request_body=request_body, + scim_user_id="scimUserId" +) + +print(result) +``` + +## scim_delete_user2 + +Deletes a user + +- HTTP Method: `DELETE` +- Endpoint: `/scim/v2/Users/{scimUserId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :---------- | +| scim_user_id | str | ✅ | User ID | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_delete_user2(scim_user_id="scimUserId") + +print(result) +``` + +## scim_get_provider_config2 + +Returns SCIM service provider configuration + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/ServiceProviderConfig` + +**Return Type** + +`ScimProviderConfig` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_get_provider_config2() + +print(result) +``` + +## scim_list_resource_types2 + +Returns the list of supported SCIM resource types + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/ResourceTypes` + +**Return Type** + +`ScimResourceTypeSearchResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_list_resource_types2() + +print(result) +``` + +## scim_get_resource_type2 + +Returns resource type by ID + +- HTTP Method: `GET` +- Endpoint: `/scim/v2/ResourceTypes/{type}` + +**Parameters** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :------------ | +| type\_ | str | ✅ | Resource type | + +**Return Type** + +`ScimResourceTypeResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.scim.scim_get_resource_type2(type_="type") + +print(result) +``` + + diff --git a/documentation/services/SiteAdministrationService.md b/documentation/services/SiteAdministrationService.md new file mode 100644 index 00000000..c31e06ab --- /dev/null +++ b/documentation/services/SiteAdministrationService.md @@ -0,0 +1,155 @@ +# SiteAdministrationService + +A list of all methods in the `SiteAdministrationService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- | +| [list_administered_sites](#list_administered_sites) | Returns a list of sites administered by the current user. | +| [update_user_administered_sites](#update_user_administered_sites) | Updates the sites administered by the current user. Please note: Only IDs of records are used for update. | + +## list_administered_sites + +Returns a list of sites administered by the current user. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/administered-sites` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`BusinessSiteCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.site_administration.list_administered_sites( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_user_administered_sites + +Updates the sites administered by the current user. Please note: Only IDs of records are used for update. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/administered-sites` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BusinessSiteCollectionRequest](../models/BusinessSiteCollectionRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`BusinessSiteCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BusinessSiteCollectionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BusinessSiteCollectionRequest( + records=[ + { + "uri": "uri", + "id_": "id", + "email": "email", + "code": "code", + "name": "name", + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "operator": { + "id_": "id", + "name": "name", + "extension_number": "extensionNumber" + }, + "regional_settings": { + "timezone": { + "uri": "uri", + "id_": "id", + "name": "name", + "description": "description", + "bias": "bias" + }, + "home_country": { + "uri": "uri", + "id_": "id", + "name": "name", + "iso_code": "isoCode", + "calling_code": "callingCode", + "emergency_calling": True, + "number_selling": True, + "login_allowed": True, + "free_softphone_line": True, + "signup_allowed": False + }, + "language": { + "id_": "id", + "name": "name", + "locale_code": "localeCode" + }, + "greeting_language": { + "id_": "id", + "name": "name", + "locale_code": "localeCode" + }, + "formatting_locale": { + "id_": "id", + "name": "name", + "locale_code": "localeCode" + }, + "time_format": "12h", + "currency": { + "id_": "id", + "code": "code", + "name": "name", + "symbol": "symbol", + "minor_symbol": "minorSymbol" + } + }, + "business_address": { + "street": "street", + "city": "city", + "state": "state", + "zip": "zip", + "country": "country" + } + } + ] +) + +result = sdk.site_administration.update_user_administered_sites( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/SmsService.md b/documentation/services/SmsService.md new file mode 100644 index 00000000..220ea834 --- /dev/null +++ b/documentation/services/SmsService.md @@ -0,0 +1,123 @@ +# SmsService + +A list of all methods in the `SmsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [create_sms_message](#create_sms_message) | Creates and sends a new text message or multiple messages. You can send SMS messages simultaneously to different recipients up to 40 requests per minute; this limitation is relevant for all client applications. Sending and receiving SMS is available for Toll-Free Numbers within the USA. You can send up to 10 attachments in a single MMS message; the size of all attachments linked is limited up to 1500000 bytes. | +| [create_mms](#create_mms) | Creates and sends a new media message or multiple messages. Sending MMS messages simultaneously to different recipients is limited up to 50 requests per minute; relevant for all client applications. | + +## create_sms_message + +Creates and sends a new text message or multiple messages. You can send SMS messages simultaneously to different recipients up to 40 requests per minute; this limitation is relevant for all client applications. Sending and receiving SMS is available for Toll-Free Numbers within the USA. You can send up to 10 attachments in a single MMS message; the size of all attachments linked is limited up to 1500000 bytes. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/sms` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [CreateSmsMessage](../models/CreateSmsMessage.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetSmsMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateSmsMessage + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateSmsMessage( + from_={ + "phone_number": "phoneNumber" + }, + to=[ + { + "phone_number": "phoneNumber" + } + ], + text="text", + country={ + "id_": "id", + "iso_code": "of" + } +) + +result = sdk.sms.create_sms_message( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## create_mms + +Creates and sends a new media message or multiple messages. Sending MMS messages simultaneously to different recipients is limited up to 50 requests per minute; relevant for all client applications. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/mms` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetSmsMessageInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateMmsMessage + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "from_": { + "phone_number": "phoneNumber" + }, + "to": [ + { + "phone_number": "phoneNumber" + } + ], + "text": "text", + "country": { + "id_": "id", + "iso_code": "of" + }, + "attachments": [ + "attachments" + ] +} + +result = sdk.sms.create_mms( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/SmsTemplatesService.md b/documentation/services/SmsTemplatesService.md new file mode 100644 index 00000000..5a12ab68 --- /dev/null +++ b/documentation/services/SmsTemplatesService.md @@ -0,0 +1,441 @@ +# SmsTemplatesService + +A list of all methods in the `SmsTemplatesService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_company_message_templates](#list_company_message_templates) | Returns a list of company text message templates. | +| [create_company_message_template](#create_company_message_template) | Creates a new text message template on a company level. Maximum number of company templates is 50. | +| [read_company_message_template](#read_company_message_template) | Returns a company text message template by ID. | +| [update_company_message_template](#update_company_message_template) | Updates a company text message template. | +| [delete_company_message_template](#delete_company_message_template) | Deletes a company text message template. | +| [list_user_message_templates](#list_user_message_templates) | Returns a list of user's personal text message templates. | +| [create_user_message_template](#create_user_message_template) | Creates a user personal text message template. Maximum number of personal templates is 25 per user. Max length of the `body` property is 1000 symbols (2-byte UTF-16 encoded). | +| [read_user_message_template](#read_user_message_template) | Returns a user personal text message template by ID. | +| [update_user_message_template](#update_user_message_template) | Updates a user personal text message template. | +| [delete_user_message_template](#delete_user_message_template) | Deletes a user personal text message template. | + +## list_company_message_templates + +Returns a list of company text message templates. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-templates` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| site_ids | List[str] | ❌ | Site ID(s) to filter company message templates, associated with particular sites By default the value is all - templates with all sites will be returned | + +**Return Type** + +`MessageTemplatesListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_ids=[ + "siteIds" +] + +result = sdk.sms_templates.list_company_message_templates( + account_id="~", + site_ids=site_ids +) + +print(result) +``` + +## create_company_message_template + +Creates a new text message template on a company level. Maximum number of company templates is 50. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-templates` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageTemplateRequest](../models/MessageTemplateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageTemplateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageTemplateRequest( + display_name="displayName", + body={ + "text": "text" + }, + site={ + "id_": "id", + "name": "name" + } +) + +result = sdk.sms_templates.create_company_message_template( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_company_message_template + +Returns a company text message template by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.sms_templates.read_company_message_template( + account_id="~", + template_id="templateId" +) + +print(result) +``` + +## update_company_message_template + +Updates a company text message template. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageTemplateRequest](../models/MessageTemplateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageTemplateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageTemplateRequest( + display_name="displayName", + body={ + "text": "text" + }, + site={ + "id_": "id", + "name": "name" + } +) + +result = sdk.sms_templates.update_company_message_template( + request_body=request_body, + account_id="~", + template_id="templateId" +) + +print(result) +``` + +## delete_company_message_template + +Deletes a company text message template. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :---------- | :--- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.sms_templates.delete_company_message_template( + account_id="~", + template_id="templateId" +) + +print(result) +``` + +## list_user_message_templates + +Returns a list of user's personal text message templates. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store-templates` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| site_ids | List[str] | ❌ | Site ID(s) to filter user message templates, associated with particular sites. By default the value is all - templates with all sites will be returned | +| scope | [VisibilityType](../models/VisibilityType.md) | ❌ | Message templates scope. By default the value is all - both Personal and Company templates will be returned | + +**Return Type** + +`MessageTemplatesListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import VisibilityType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +site_ids=[ + "siteIds" +] + +result = sdk.sms_templates.list_user_message_templates( + account_id="~", + extension_id="~", + site_ids=site_ids, + scope="Company" +) + +print(result) +``` + +## create_user_message_template + +Creates a user personal text message template. Maximum number of personal templates is 25 per user. Max length of the `body` property is 1000 symbols (2-byte UTF-16 encoded). + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store-templates` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageTemplateRequest](../models/MessageTemplateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageTemplateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageTemplateRequest( + display_name="displayName", + body={ + "text": "text" + }, + site={ + "id_": "id", + "name": "name" + } +) + +result = sdk.sms_templates.create_user_message_template( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_user_message_template + +Returns a user personal text message template by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.sms_templates.read_user_message_template( + account_id="~", + extension_id="~", + template_id="templateId" +) + +print(result) +``` + +## update_user_message_template + +Updates a user personal text message template. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [MessageTemplateRequest](../models/MessageTemplateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Return Type** + +`MessageTemplateResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import MessageTemplateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = MessageTemplateRequest( + display_name="displayName", + body={ + "text": "text" + }, + site={ + "id_": "id", + "name": "name" + } +) + +result = sdk.sms_templates.update_user_message_template( + request_body=request_body, + account_id="~", + extension_id="~", + template_id="templateId" +) + +print(result) +``` + +## delete_user_message_template + +Deletes a user personal text message template. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store-templates/{templateId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| template_id | str | ✅ | Internal identifier of a text message template | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.sms_templates.delete_user_message_template( + account_id="~", + extension_id="~", + template_id="templateId" +) + +print(result) +``` + + diff --git a/documentation/services/StatusService.md b/documentation/services/StatusService.md new file mode 100644 index 00000000..1fe9148d --- /dev/null +++ b/documentation/services/StatusService.md @@ -0,0 +1,41 @@ +# StatusService + +A list of all methods in the `StatusService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------- | :---------------------------------- | +| [cai_job_status_get](#cai_job_status_get) | Returns async task status by Job ID | + +## cai_job_status_get + +Returns async task status by Job ID + +- HTTP Method: `GET` +- Endpoint: `/ai/status/v1/jobs/{jobId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----- | :--- | :------- | :----------------------------------------- | +| job_id | str | ✅ | The job id to which status will be fetched | + +**Return Type** + +`JobStatusResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.status.cai_job_status_get(job_id="jobId") + +print(result) +``` + + diff --git a/documentation/services/SubscriptionsService.md b/documentation/services/SubscriptionsService.md new file mode 100644 index 00000000..0a8f6adf --- /dev/null +++ b/documentation/services/SubscriptionsService.md @@ -0,0 +1,221 @@ +# SubscriptionsService + +A list of all methods in the `SubscriptionsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [list_subscriptions](#list_subscriptions) | Returns a list of subscriptions created by the user for the current authorized client application. | +| [create_subscription](#create_subscription) | This API allows client applications to register a new subscription so that it can be notified of events when they occur on the platform. A subscription relates to a set of events that a client application would like to be informed of and the delivery channel by which they will be notified of those events. How subscriptions are established depends upon the notification channel the client application would like to use to receive the event notification. For example, to create a webhook a developer would create a subscription via a REST API call, while specifying a list of events or "event filters" to be notified of, a transport type of `WebHook`, and the address or URL to which they would like the webhook delivered. However, developers wishing to subscribe to a set of events via a WebSocket channel, would first connect to the WebSocket gateway, and then issue their subscription request over the WebSocket itself, as opposed to making a REST API call to this endpoint. While the protocol for establishing a subscription may vary depending upon the delivery channel for that subscription, the schemas used for representing a subscription are the same across all delivery modes. Subscriptions are currently limited to 20 subscriptions per user/extension (for particular application). RingCentral currently supports the following delivery modes for event subscriptions: _ [WebHook](https://developers.ringcentral.com/guide/notifications/webhooks/quick-start) - to receive event notifications as an HTTP POST to a given URL _ [WebSocket](https://developers.ringcentral.com/guide/notifications/websockets/quick-start) - to receive real-time events over a persistent WebSocket connection \* [PubNub](https://developers.ringcentral.com/guide/notifications/push-notifications/quick-start) (deprecated) - to receive a push notification sent directly to a client application Developers should be aware that the PubNub delivery mode is currently deprecated and will be removed in 2024. Developers are encouraged to [migrate their client applications to use WebSockets](https://developers.ringcentral.com/guide/notifications/websockets/migration/) instead. | +| [read_subscription](#read_subscription) | Returns the existing subscription by ID. | +| [update_subscription](#update_subscription) | Updates the existing subscription. The client application can extend or narrow the list of events for which it receives notifications within the current subscription. If event filters are specified, calling this method modifies them for the existing subscription. The method also allows one to set an expiration time for the subscription itself. If parameters other than `events` and `expiresIn` are specified in the request they will be ignored. If the request body is empty then the specified subscription will be renewed without any event filter modifications and using the default expiration time. If the request is sent with empty body, it just renews a subscription (so it is an equivalent of the `POST /restapi/v1.0/subscription/{subscriptionId}/renew`). Please note that `WebSocket` subscriptions cannot be updated via HTTP interface. | +| [delete_subscription](#delete_subscription) | Cancels the existing subscription. | +| [renew_subscription](#renew_subscription) | Renews the existing subscription (this request comes with empty body). Please note that `WebSocket` subscriptions are renewed automatically while websocket session is alive. | + +## list_subscriptions + +Returns a list of subscriptions created by the user for the current authorized client application. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/subscription` + +**Return Type** + +`SubscriptionListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.subscriptions.list_subscriptions() + +print(result) +``` + +## create_subscription + +This API allows client applications to register a new subscription so that it can be notified of events when they occur on the platform. A subscription relates to a set of events that a client application would like to be informed of and the delivery channel by which they will be notified of those events. How subscriptions are established depends upon the notification channel the client application would like to use to receive the event notification. For example, to create a webhook a developer would create a subscription via a REST API call, while specifying a list of events or "event filters" to be notified of, a transport type of `WebHook`, and the address or URL to which they would like the webhook delivered. However, developers wishing to subscribe to a set of events via a WebSocket channel, would first connect to the WebSocket gateway, and then issue their subscription request over the WebSocket itself, as opposed to making a REST API call to this endpoint. While the protocol for establishing a subscription may vary depending upon the delivery channel for that subscription, the schemas used for representing a subscription are the same across all delivery modes. Subscriptions are currently limited to 20 subscriptions per user/extension (for particular application). RingCentral currently supports the following delivery modes for event subscriptions: _ [WebHook](https://developers.ringcentral.com/guide/notifications/webhooks/quick-start) - to receive event notifications as an HTTP POST to a given URL _ [WebSocket](https://developers.ringcentral.com/guide/notifications/websockets/quick-start) - to receive real-time events over a persistent WebSocket connection \* [PubNub](https://developers.ringcentral.com/guide/notifications/push-notifications/quick-start) (deprecated) - to receive a push notification sent directly to a client application Developers should be aware that the PubNub delivery mode is currently deprecated and will be removed in 2024. Developers are encouraged to [migrate their client applications to use WebSockets](https://developers.ringcentral.com/guide/notifications/websockets/migration/) instead. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/subscription` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :---------------- | +| request_body | [CreateSubscriptionRequest](../models/CreateSubscriptionRequest.md) | ✅ | The request body. | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateSubscriptionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateSubscriptionRequest( + event_filters=[ + "ex aliquip f" + ], + expires_in=1200, + delivery_mode={ + "transport_type": "WebHook", + "address": "https://acme.com/myservice/webhook", + "verification_token": "verificationToken" + } +) + +result = sdk.subscriptions.create_subscription(request_body=request_body) + +print(result) +``` + +## read_subscription + +Returns the existing subscription by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/subscription/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.subscriptions.read_subscription(subscription_id="in nisi magna") + +print(result) +``` + +## update_subscription + +Updates the existing subscription. The client application can extend or narrow the list of events for which it receives notifications within the current subscription. If event filters are specified, calling this method modifies them for the existing subscription. The method also allows one to set an expiration time for the subscription itself. If parameters other than `events` and `expiresIn` are specified in the request they will be ignored. If the request body is empty then the specified subscription will be renewed without any event filter modifications and using the default expiration time. If the request is sent with empty body, it just renews a subscription (so it is an equivalent of the `POST /restapi/v1.0/subscription/{subscriptionId}/renew`). Please note that `WebSocket` subscriptions cannot be updated via HTTP interface. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/subscription/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------------ | :------- | :------------------------------------ | +| request_body | [UpdateSubscriptionRequest](../models/UpdateSubscriptionRequest.md) | ❌ | The request body. | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateSubscriptionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateSubscriptionRequest( + event_filters=[ + "ex" + ], + expires_in=1200 +) + +result = sdk.subscriptions.update_subscription( + request_body=request_body, + subscription_id="aliqua elit aut" +) + +print(result) +``` + +## delete_subscription + +Cancels the existing subscription. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/subscription/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.subscriptions.delete_subscription(subscription_id="magna id ") + +print(result) +``` + +## renew_subscription + +Renews the existing subscription (this request comes with empty body). Please note that `WebSocket` subscriptions are renewed automatically while websocket session is alive. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/subscription/{subscriptionId}/renew` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.subscriptions.renew_subscription(subscription_id="off") + +print(result) +``` + + diff --git a/documentation/services/TasksService.md b/documentation/services/TasksService.md new file mode 100644 index 00000000..40fd3f7d --- /dev/null +++ b/documentation/services/TasksService.md @@ -0,0 +1,307 @@ +# TasksService + +A list of all methods in the `TasksService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------ | :-------------------------------------------------------- | +| [read_task_new](#read_task_new) | Returns information about the specified task(s) by ID(s). | +| [patch_task_new](#patch_task_new) | Updates the specified task by ID. | +| [delete_task_new](#delete_task_new) | Deletes the specified task. | +| [complete_task_new](#complete_task_new) | Completes a task in the specified chat. | +| [list_chat_tasks_new](#list_chat_tasks_new) | Returns the list of tasks of the specified chat. | +| [create_task_new](#create_task_new) | Creates a task in the specified chat. | + +## read_task_new + +Returns information about the specified task(s) by ID(s). + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------------- | +| task_id | str | ✅ | Task identifier or comma separated list of task IDs | + +**Return Type** + +`TmTaskInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.tasks.read_task_new(task_id="taskId") + +print(result) +``` + +## patch_task_new + +Updates the specified task by ID. + +- HTTP Method: `PATCH` +- Endpoint: `/team-messaging/v1/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :---------------------------- | +| request_body | [TmUpdateTaskRequest](../models/TmUpdateTaskRequest.md) | ❌ | The request body. | +| task_id | str | ✅ | Internal identifier of a task | + +**Return Type** + +`TmTaskList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmUpdateTaskRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmUpdateTaskRequest( + subject="subject", + assignees=[ + { + "id_": "id" + } + ], + completeness_condition="Simple", + start_date="startDate", + due_date="dueDate", + color="Black", + section="section", + description="description", + recurrence={ + "schedule": "None", + "ending_condition": "None", + "ending_after": 2, + "ending_on": "endingOn" + }, + attachments=[ + { + "id_": "id", + "type_": "File" + } + ] +) + +result = sdk.tasks.patch_task_new( + request_body=request_body, + task_id="taskId" +) + +print(result) +``` + +## delete_task_new + +Deletes the specified task. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/tasks/{taskId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------- | +| task_id | str | ✅ | Internal identifier of a task | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.tasks.delete_task_new(task_id="taskId") + +print(result) +``` + +## complete_task_new + +Completes a task in the specified chat. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/tasks/{taskId}/complete` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------- | :------- | :---------------------------- | +| request_body | [TmCompleteTaskRequest](../models/TmCompleteTaskRequest.md) | ✅ | The request body. | +| task_id | str | ✅ | Internal identifier of a task | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCompleteTaskRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCompleteTaskRequest( + status="Incomplete", + assignees=[ + { + "id_": "id" + } + ], + completeness_percentage=0 +) + +result = sdk.tasks.complete_task_new( + request_body=request_body, + task_id="taskId" +) + +print(result) +``` + +## list_chat_tasks_new + +Returns the list of tasks of the specified chat. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/chats/{chatId}/tasks` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :------------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a chat | +| creation_time_to | str | ❌ | The end datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, e.g. 2019-03-10T18:23:45Z | +| creation_time_from | str | ❌ | The start datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, e.g. 2016-02-23T00:00:00 | +| creator_id | List[str] | ❌ | Internal identifier of a task creator | +| status | [List[ListChatTasksNewStatus]](../models/ListChatTasksNewStatus.md) | ❌ | Task execution status | +| assignment_status | [AssignmentStatus](../models/AssignmentStatus.md) | ❌ | Task assignment status | +| assignee_id | List[str] | ❌ | Internal identifier of a task assignee | +| assignee_status | [AssigneeStatus](../models/AssigneeStatus.md) | ❌ | Task execution status by assignee(-s) specified in assigneeId | +| page_token | str | ❌ | Token of the current page. If token is omitted then the first page should be returned | +| record_count | int | ❌ | Number of records to be returned per screen | + +**Return Type** + +`TmTaskList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import AssignmentStatus, AssigneeStatus + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +creator_id=[ + "creatorId" +] +status=[ + "Pending" +] +assignee_id=[ + "assigneeId" +] + +result = sdk.tasks.list_chat_tasks_new( + chat_id="chatId", + creation_time_to="now", + creation_time_from="creationTimeFrom", + creator_id=creator_id, + status=status, + assignment_status="Unassigned", + assignee_id=assignee_id, + assignee_status="Pending", + page_token="pageToken", + record_count=30 +) + +print(result) +``` + +## create_task_new + +Creates a task in the specified chat. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/chats/{chatId}/tasks` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :---------------------------- | +| request_body | [TmCreateTaskRequest](../models/TmCreateTaskRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a chat | + +**Return Type** + +`TmTaskInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateTaskRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateTaskRequest( + subject="subject", + assignees=[ + { + "id_": "id" + } + ], + completeness_condition="Simple", + start_date="startDate", + due_date="dueDate", + color="Black", + section="section", + description="description", + recurrence={ + "schedule": "None", + "ending_condition": "None", + "ending_after": 2, + "ending_on": "endingOn" + }, + attachments=[ + { + "id_": "id", + "type_": "File" + } + ] +) + +result = sdk.tasks.create_task_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + + diff --git a/documentation/services/TeamsService.md b/documentation/services/TeamsService.md new file mode 100644 index 00000000..ffcfc7d1 --- /dev/null +++ b/documentation/services/TeamsService.md @@ -0,0 +1,464 @@ +# TeamsService + +A list of all methods in the `TeamsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_glip_everyone_new](#read_glip_everyone_new) | Returns information about "Everyone" chat (a company level chat which includes all employees). | +| [patch_glip_everyone_new](#patch_glip_everyone_new) | Updates "Everyone" chat information. | +| [list_glip_teams_new](#list_glip_teams_new) | Returns the list of teams where the user is a member (both archived and active) combined with a list of public teams that can be joined by the current user. All records in response are sorted by creation time of a chat in ascending order. A team is a chat between 2 and more (unlimited number) participants assigned with specific name. | +| [create_glip_team_new](#create_glip_team_new) | Creates a team, and adds a list of people to the team. | +| [read_glip_team_new](#read_glip_team_new) | Returns information about the specified team. | +| [patch_glip_team_new](#patch_glip_team_new) | Updates the name and description of the specified team. | +| [delete_glip_team_new](#delete_glip_team_new) | Deletes the specified team. | +| [remove_glip_team_members_new](#remove_glip_team_members_new) | Removes members from the specified team. | +| [join_glip_team_new](#join_glip_team_new) | Adds the current user to the specified team. | +| [archive_glip_team_new](#archive_glip_team_new) | Changes the status of the specified team to 'Archived'. | +| [unarchive_glip_team_new](#unarchive_glip_team_new) | Changes the status of the specified team to 'Active'. | +| [leave_glip_team_new](#leave_glip_team_new) | Removes the current user from the specified team. | +| [add_glip_team_members_new](#add_glip_team_members_new) | Adds members to the specified team. | + +## read_glip_everyone_new + +Returns information about "Everyone" chat (a company level chat which includes all employees). + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/everyone` + +**Return Type** + +`EveryoneTeamInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.read_glip_everyone_new() + +print(result) +``` + +## patch_glip_everyone_new + +Updates "Everyone" chat information. + +- HTTP Method: `PATCH` +- Endpoint: `/team-messaging/v1/everyone` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------ | :------- | :---------------- | +| request_body | [UpdateEveryoneTeamRequest](../models/UpdateEveryoneTeamRequest.md) | ❌ | The request body. | + +**Return Type** + +`EveryoneTeamInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateEveryoneTeamRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateEveryoneTeamRequest( + name="name", + description="description" +) + +result = sdk.teams.patch_glip_everyone_new(request_body=request_body) + +print(result) +``` + +## list_glip_teams_new + +Returns the list of teams where the user is a member (both archived and active) combined with a list of public teams that can be joined by the current user. All records in response are sorted by creation time of a chat in ascending order. A team is a chat between 2 and more (unlimited number) participants assigned with specific name. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/teams` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------- | +| record_count | int | ❌ | Number of teams to be fetched by one request. The maximum value is 250, by default - 30 | +| page_token | str | ❌ | Pagination token. | + +**Return Type** + +`TmTeamList` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.list_glip_teams_new( + record_count=30, + page_token="pageToken" +) + +print(result) +``` + +## create_glip_team_new + +Creates a team, and adds a list of people to the team. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :---------------- | +| request_body | [TmCreateTeamRequest](../models/TmCreateTeamRequest.md) | ✅ | The request body. | + +**Return Type** + +`TmTeamInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmCreateTeamRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmCreateTeamRequest( + public=False, + name="name", + description="description", + members=[ + { + "id_": "id", + "email": "email" + } + ] +) + +result = sdk.teams.create_glip_team_new(request_body=request_body) + +print(result) +``` + +## read_glip_team_new + +Returns information about the specified team. + +- HTTP Method: `GET` +- Endpoint: `/team-messaging/v1/teams/{chatId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a team to be returned. | + +**Return Type** + +`TmTeamInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.read_glip_team_new(chat_id="chatId") + +print(result) +``` + +## patch_glip_team_new + +Updates the name and description of the specified team. + +- HTTP Method: `PATCH` +- Endpoint: `/team-messaging/v1/teams/{chatId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------ | :------- | :------------------------------------------- | +| request_body | [TmUpdateTeamRequest](../models/TmUpdateTeamRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a team to be updated. | + +**Return Type** + +`TmTeamInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmUpdateTeamRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmUpdateTeamRequest( + public=False, + name="name", + description="description" +) + +result = sdk.teams.patch_glip_team_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + +## delete_glip_team_new + +Deletes the specified team. + +- HTTP Method: `DELETE` +- Endpoint: `/team-messaging/v1/teams/{chatId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :----------------------------- | +| chat_id | str | ✅ | Internal identifier of a team. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.delete_glip_team_new(chat_id="chatId") + +print(result) +``` + +## remove_glip_team_members_new + +Removes members from the specified team. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/remove` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :---------------------------------------------------- | +| request_body | [TmRemoveTeamMembersRequest](../models/TmRemoveTeamMembersRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a team to remove members from. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmRemoveTeamMembersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmRemoveTeamMembersRequest( + members=[ + { + "id_": "id" + } + ] +) + +result = sdk.teams.remove_glip_team_members_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + +## join_glip_team_new + +Adds the current user to the specified team. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/join` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :------------------------------------------ | +| chat_id | str | ✅ | Internal identifier of a team to be joined. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.join_glip_team_new(chat_id="chatId") + +print(result) +``` + +## archive_glip_team_new + +Changes the status of the specified team to 'Archived'. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/archive` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :-------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a team to be archived. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.archive_glip_team_new(chat_id="chatId") + +print(result) +``` + +## unarchive_glip_team_new + +Changes the status of the specified team to 'Active'. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/unarchive` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :----------------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a team to be made active. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.unarchive_glip_team_new(chat_id="chatId") + +print(result) +``` + +## leave_glip_team_new + +Removes the current user from the specified team. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/leave` + +**Parameters** + +| Name | Type | Required | Description | +| :------ | :--- | :------- | :---------------------------------------- | +| chat_id | str | ✅ | Internal identifier of a team to be left. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.teams.leave_glip_team_new(chat_id="chatId") + +print(result) +``` + +## add_glip_team_members_new + +Adds members to the specified team. + +- HTTP Method: `POST` +- Endpoint: `/team-messaging/v1/teams/{chatId}/add` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------- | :------- | :----------------------------------------------- | +| request_body | [TmAddTeamMembersRequest](../models/TmAddTeamMembersRequest.md) | ✅ | The request body. | +| chat_id | str | ✅ | Internal identifier of a team to add members to. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import TmAddTeamMembersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = TmAddTeamMembersRequest( + members=[ + { + "id_": "id", + "email": "email" + } + ] +) + +result = sdk.teams.add_glip_team_members_new( + request_body=request_body, + chat_id="chatId" +) + +print(result) +``` + + diff --git a/documentation/services/TextService.md b/documentation/services/TextService.md new file mode 100644 index 00000000..afb6e3a7 --- /dev/null +++ b/documentation/services/TextService.md @@ -0,0 +1,102 @@ +# TextService + +A list of all methods in the `TextService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [cai_summarize](#cai_summarize) | Returns Conversational Summarization to the webhook URI for segmented transcript of audios with start, end, speakerId, text(alphanumeric and punctuations). | +| [cai_punctuate](#cai_punctuate) | Returns Smart Punctuation to the provided webhook URI. | + +## cai_summarize + +Returns Conversational Summarization to the webhook URI for segmented transcript of audios with start, end, speakerId, text(alphanumeric and punctuations). + +- HTTP Method: `POST` +- Endpoint: `/ai/text/v1/async/summarize` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------- | :------- | :--------------------------------------------------------- | +| request_body | [SummaryInput](../models/SummaryInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import SummaryInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = SummaryInput( + summary_type="Extractive", + utterances=[ + { + "speaker_id": "JohnDoe", + "text": "Hello! This is John.", + "start": 0.3, + "end": 5.1 + } + ] +) + +result = sdk.text.cai_summarize( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + +## cai_punctuate + +Returns Smart Punctuation to the provided webhook URI. + +- HTTP Method: `POST` +- Endpoint: `/ai/text/v1/async/punctuate` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------- | :------- | :--------------------------------------------------------- | +| request_body | [PunctuateInput](../models/PunctuateInput.md) | ✅ | The request body. | +| webhook | str | ✅ | The webhook URI to which the job response will be returned | + +**Return Type** + +`CaiAsyncApiResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import PunctuateInput + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = PunctuateInput( + texts=[ + "texts" + ] +) + +result = sdk.text.cai_punctuate( + request_body=request_body, + webhook="webhook" +) + +print(result) +``` + + diff --git a/documentation/services/UserPermissionsService.md b/documentation/services/UserPermissionsService.md new file mode 100644 index 00000000..a4defb68 --- /dev/null +++ b/documentation/services/UserPermissionsService.md @@ -0,0 +1,234 @@ +# UserPermissionsService + +A list of all methods in the `UserPermissionsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| [read_authorization_profile](#read_authorization_profile) | Returns a list of user permissions granted at authorization procedure. Please note: Some permissions may be restricted by extension type. | +| [check_user_permission](#check_user_permission) | Checks if a certain user permission is activated for a particular extension. | +| [list_permissions](#list_permissions) | Returns a list of extension user permissions. | +| [read_permission](#read_permission) | Returns a user permission by ID. | +| [list_permission_categories](#list_permission_categories) | Returns a list of permission categories. | +| [read_permission_category](#read_permission_category) | Returns a permission category by ID. | + +## read_authorization_profile + +Returns a list of user permissions granted at authorization procedure. Please note: Some permissions may be restricted by extension type. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/authz-profile` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| target_extension_id | str | ❌ | | + +**Return Type** + +`AuthProfileResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.read_authorization_profile( + account_id="~", + extension_id="~", + target_extension_id="targetExtensionId" +) + +print(result) +``` + +## check_user_permission + +Checks if a certain user permission is activated for a particular extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/authz-profile/check` + +**Parameters** + +| Name | Type | Required | Description | +| :------------------ | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| permission_id | str | ❌ | | +| target_extension_id | str | ❌ | | + +**Return Type** + +`AuthProfileCheckResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.check_user_permission( + account_id="~", + extension_id="~", + permission_id="permissionId", + target_extension_id="targetExtensionId" +) + +print(result) +``` + +## list_permissions + +Returns a list of extension user permissions. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/permission` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| assignable | bool | ❌ | Specifies whether to return only assignable permissions | +| service_plan_id | str | ❌ | Internal identifier of a service plan | + +**Return Type** + +`PermissionCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.list_permissions( + page=1, + per_page=100, + assignable=False, + service_plan_id="servicePlanId" +) + +print(result) +``` + +## read_permission + +Returns a user permission by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/permission/{permissionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :--- | :------- | :--------------------------------------- | +| permission_id | str | ✅ | Internal identifier of a user permission | + +**Return Type** + +`PermissionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.read_permission(permission_id="permissionId") + +print(result) +``` + +## list_permission_categories + +Returns a list of permission categories. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/permission-category` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :--------------------------------------------------------------------------------------------------------------------- | +| page | int | ❌ | The result set page number (1-indexed) to return | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| service_plan_id | str | ❌ | Internal identifier of a service plan | + +**Return Type** + +`PermissionCategoryCollectionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.list_permission_categories( + page=1, + per_page=100, + service_plan_id="servicePlanId" +) + +print(result) +``` + +## read_permission_category + +Returns a permission category by ID. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/dictionary/permission-category/{permissionCategoryId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------- | :--- | :------- | :-------------------------------- | +| permission_category_id | str | ✅ | Internal identifier of a category | + +**Return Type** + +`PermissionCategoryResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_permissions.read_permission_category(permission_category_id="permissionCategoryId") + +print(result) +``` + + diff --git a/documentation/services/UserSettingsService.md b/documentation/services/UserSettingsService.md new file mode 100644 index 00000000..9e2170d7 --- /dev/null +++ b/documentation/services/UserSettingsService.md @@ -0,0 +1,885 @@ +# UserSettingsService + +A list of all methods in the `UserSettingsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [read_scaled_profile_image](#read_scaled_profile_image) | Returns the scaled profile image of an extension. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** | +| [post_batch_provision_users](#post_batch_provision_users) | Creates multiple user extensions with BYOD (customer provided) devices. If "extensionNumber" is not specified, the next available extension number will be assigned. | +| [bulk_delete_users_v2](#bulk_delete_users_v2) | Deletes user extension(s) and either keeps or destroys the assets - numbers and devices. Multiple extensions can be deleted with a single API call. **Please note:** This API cannot be tested on Sandbox. | +| [read_extension](#read_extension) | Returns basic information about a particular extension of an account. | +| [update_extension](#update_extension) | Updates the user settings. | +| [list_extension_grants](#list_extension_grants) | Returns the list of extensions with information on grants given to the current extension regarding them. Currently the list of grants include: picking up a call, monitoring, calling or receiving a call on behalf of somebody, call delegation and calling paging groups. | +| [read_conferencing_settings](#read_conferencing_settings) | Returns information on Free Conference Calling (FCC) feature for a given extension. | +| [update_conferencing_settings](#update_conferencing_settings) | Updates the default conferencing number for the current extension. The number can be selected from conferencing numbers of the current extension. Updates the setting, allowing participants join the conference before host. | +| [read_user_profile_image_legacy](#read_user_profile_image_legacy) | Returns a profile image of an extension. | +| [create_user_profile_image](#create_user_profile_image) | Uploads the extension profile image. | +| [update_user_profile_image](#update_user_profile_image) | Updates the extension profile image. | +| [delete_user_profile_image](#delete_user_profile_image) | Deletes the user profile image. | +| [read_extension_caller_id](#read_extension_caller_id) | Returns information on an outbound caller ID of an extension. | +| [update_extension_caller_id](#update_extension_caller_id) | Updates outbound caller ID information of an extension. | +| [read_notification_settings](#read_notification_settings) | Returns notification settings for the current extension. Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) | +| [update_notification_settings](#update_notification_settings) | Updates notification settings for the current extension. Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) | + +## read_scaled_profile_image + +Returns the scaled profile image of an extension. **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image/{scaleSize}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------------------------- | :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| scale_size | [ScaleSize](../models/ScaleSize.md) | ✅ | Dimensions of a profile image which will be returned in response. | +| content_disposition | [ContentDisposition](../models/ContentDisposition.md) | ❌ | Whether the content is expected to be displayed in the browser, or downloaded and saved locally | +| content_disposition_filename | str | ❌ | The default filename of the file to be downloaded | + +**Return Type** + +`bytes` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ScaleSize, ContentDisposition + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_scaled_profile_image( + account_id="~", + extension_id="~", + scale_size="original", + content_disposition="Inline", + content_disposition_filename="contentDispositionFilename" +) + +with open("output-file.ext", "wb") as f: + f.write(result) +``` + +## post_batch_provision_users + +Creates multiple user extensions with BYOD (customer provided) devices. If "extensionNumber" is not specified, the next available extension number will be assigned. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v2/accounts/{accountId}/batch-provisioning/users` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BatchProvisionUsersRequest](../models/BatchProvisionUsersRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`BatchProvisionUsersResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BatchProvisionUsersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BatchProvisionUsersRequest( + records=[ + { + "extension_number": "205", + "status": "Enabled", + "contact": { + "first_name": "John", + "last_name": "Smith", + "email": "john.smith@acme.com", + "mobile_number": "+16501234567", + "email_as_login_name": True + }, + "cost_center": { + "id_": "224149" + }, + "roles": [ + { + "id_": "1" + } + ], + "devices": [ + { + "device_info": { + "type_": "OtherPhone", + "emergency": { + "address": { + "street": "20 Davis Dr", + "street2": "non ea dolore", + "city": "Belmont", + "state": "CA", + "zip": "94002", + "country": "US" + } + }, + "phone_info": { + "toll_type": "Toll" + } + } + } + ], + "send_welcome_email": True + } + ] +) + +result = sdk.user_settings.post_batch_provision_users( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## bulk_delete_users_v2 + +Deletes user extension(s) and either keeps or destroys the assets - numbers and devices. Multiple extensions can be deleted with a single API call. **Please note:** This API cannot be tested on Sandbox. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v2/accounts/{accountId}/extensions` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [BulkDeleteUsersRequest](../models/BulkDeleteUsersRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | + +**Return Type** + +`BulkDeleteUsersResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import BulkDeleteUsersRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = BulkDeleteUsersRequest( + keep_assets_in_inventory=True, + records=[ + { + "id_": "12345" + } + ] +) + +result = sdk.user_settings.bulk_delete_users_v2( + request_body=request_body, + account_id="~" +) + +print(result) +``` + +## read_extension + +Returns basic information about a particular extension of an account. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetExtensionInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_extension( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_extension + +Updates the user settings. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ExtensionUpdateRequest](../models/ExtensionUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetExtensionInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ExtensionUpdateRequest( + status="Disabled", + status_info={ + "comment": "comment", + "reason": "SuspendedVoluntarily", + "till": "till" + }, + extension_number="extensionNumber", + contact={ + "first_name": "firstName", + "last_name": "lastName", + "company": "company", + "job_title": "jobTitle", + "email": "email", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": { + "country": "country", + "state": "state", + "city": "city", + "street": "street", + "zip": "zip" + }, + "email_as_login_name": True, + "pronounced_name": { + "type_": "Default", + "text": "text", + "prompt": { + "id_": "id", + "content_uri": "contentUri", + "content_type": "audio/mpeg" + } + }, + "department": "department" + }, + regional_settings={ + "home_country": { + "id_": "id" + }, + "timezone": { + "id_": "id" + }, + "language": { + "id_": "id" + }, + "greeting_language": { + "id_": "id" + }, + "formatting_locale": { + "id_": "id" + }, + "currency": { + "id_": "id" + }, + "time_format": "12h" + }, + setup_wizard_state="NotStarted", + partner_id="partnerId", + ivr_pin="ivrPin", + password="password", + call_queue_info={ + "sla_goal": 4, + "sla_threshold_seconds": 10, + "include_abandoned_calls": True, + "abandoned_threshold_seconds": 10 + }, + transition={ + "send_welcome_emails_to_users": False, + "send_welcome_email": False + }, + custom_fields=[ + { + "id_": "id", + "value": "value", + "display_name": "displayName" + } + ], + site={ + "id_": "id" + }, + type_="User", + sub_type="VideoPro", + references=[ + { + "ref": "ref", + "type_": "PartnerId", + "ref_acc_id": "refAccId" + } + ] +) + +result = sdk.user_settings.update_extension( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## list_extension_grants + +Returns the list of extensions with information on grants given to the current extension regarding them. Currently the list of grants include: picking up a call, monitoring, calling or receiving a call on behalf of somebody, call delegation and calling paging groups. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/grant` + +**Parameters** + +| Name | Type | Required | Description | +| :------------- | :------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| extension_type | [ExtensionType](../models/ExtensionType.md) | ❌ | Type of extension to be returned. Multiple values are supported. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology | +| page | int | ❌ | Indicates a page number to retrieve. Only positive number values are allowed | +| per_page | int | ❌ | Indicates a page size (number of items) | + +**Return Type** + +`GetExtensionGrantListResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionType + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.list_extension_grants( + account_id="~", + extension_id="~", + extension_type="User", + page=1, + per_page=100 +) + +print(result) +``` + +## read_conferencing_settings + +Returns information on Free Conference Calling (FCC) feature for a given extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/conferencing` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | +| country_id | str | ❌ | Internal identifier of a country. If not specified, the response is returned for the brand country | + +**Return Type** + +`GetConferencingInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_conferencing_settings( + account_id="~", + extension_id="~", + country_id="countryId" +) + +print(result) +``` + +## update_conferencing_settings + +Updates the default conferencing number for the current extension. The number can be selected from conferencing numbers of the current extension. Updates the setting, allowing participants join the conference before host. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/conferencing` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [UpdateConferencingInfoRequest](../models/UpdateConferencingInfoRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`GetConferencingInfoResponse` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateConferencingInfoRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateConferencingInfoRequest( + phone_numbers=[ + { + "phone_number": "phoneNumber", + "default": False + } + ], + allow_join_before_host=True +) + +result = sdk.user_settings.update_conferencing_settings( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_user_profile_image_legacy + +Returns a profile image of an extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`bytes` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_user_profile_image_legacy( + account_id="~", + extension_id="~" +) + +with open("output-image.png", "wb") as f: + f.write(result) +``` + +## create_user_profile_image + +Uploads the extension profile image. + +- HTTP Method: `POST` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateUserProfileImageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "image": "image" +} + +result = sdk.user_settings.create_user_profile_image( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_user_profile_image + +Updates the extension profile image. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [dict](../models/dict.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateUserProfileImageRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = { + "image": "image" +} + +result = sdk.user_settings.update_user_profile_image( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## delete_user_profile_image + +Deletes the user profile image. + +- HTTP Method: `DELETE` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.delete_user_profile_image( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_extension_caller_id + +Returns information on an outbound caller ID of an extension. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`ExtensionCallerIdInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_extension_caller_id( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_extension_caller_id + +Updates outbound caller ID information of an extension. + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [ExtensionCallerIdInfoRequest](../models/ExtensionCallerIdInfoRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`ExtensionCallerIdInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import ExtensionCallerIdInfoRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = ExtensionCallerIdInfoRequest( + uri="uri", + by_device=[ + { + "device": { + "id_": "id" + }, + "caller_id": { + "type_": "type", + "phone_info": { + "id_": "id" + } + } + } + ], + by_feature=[ + { + "feature": "RingOut", + "caller_id": { + "type_": "type", + "phone_info": { + "id_": "id" + } + } + } + ], + extension_name_for_outbound_calls=True, + extension_number_for_internal_calls=True +) + +result = sdk.user_settings.update_extension_caller_id( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + +## read_notification_settings + +Returns notification settings for the current extension. Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/notification-settings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`NotificationSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.user_settings.read_notification_settings( + account_id="~", + extension_id="~" +) + +print(result) +``` + +## update_notification_settings + +Updates notification settings for the current extension. Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) + +- HTTP Method: `PUT` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/notification-settings` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :---------------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| request_body | [NotificationSettingsUpdateRequest](../models/NotificationSettingsUpdateRequest.md) | ✅ | The request body. | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`NotificationSettings` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import NotificationSettingsUpdateRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = NotificationSettingsUpdateRequest( + email_addresses=[ + "emailAddresses" + ], + sms_email_addresses=[ + "smsEmailAddresses" + ], + advanced_mode=True, + voicemails={ + "notify_by_email": False, + "notify_by_sms": True, + "advanced_email_addresses": [ + "advancedEmailAddresses" + ], + "advanced_sms_email_addresses": [ + "advancedSmsEmailAddresses" + ], + "include_attachment": False, + "include_transcription": False, + "mark_as_read": True + }, + inbound_faxes={ + "notify_by_email": True, + "notify_by_sms": False, + "advanced_email_addresses": [ + "advancedEmailAddresses" + ], + "advanced_sms_email_addresses": [ + "advancedSmsEmailAddresses" + ], + "include_attachment": True, + "mark_as_read": False + }, + outbound_faxes={ + "notify_by_email": False, + "notify_by_sms": False, + "advanced_email_addresses": [ + "advancedEmailAddresses" + ], + "advanced_sms_email_addresses": [ + "advancedSmsEmailAddresses" + ] + }, + inbound_texts={ + "notify_by_email": False, + "notify_by_sms": False, + "advanced_email_addresses": [ + "advancedEmailAddresses" + ], + "advanced_sms_email_addresses": [ + "advancedSmsEmailAddresses" + ] + }, + missed_calls={ + "notify_by_email": False, + "notify_by_sms": True, + "advanced_email_addresses": [ + "advancedEmailAddresses" + ], + "advanced_sms_email_addresses": [ + "advancedSmsEmailAddresses" + ] + }, + include_managers=True +) + +result = sdk.user_settings.update_notification_settings( + request_body=request_body, + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/VideoConfigurationService.md b/documentation/services/VideoConfigurationService.md new file mode 100644 index 00000000..d458aeb3 --- /dev/null +++ b/documentation/services/VideoConfigurationService.md @@ -0,0 +1,45 @@ +# VideoConfigurationService + +A list of all methods in the `VideoConfigurationService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :-------------------------------------------------------------- | :-------------------------------------------------------------------------- | +| [read_user_video_configuration](#read_user_video_configuration) | Returns information about video configuration settings of the current user. | + +## read_user_video_configuration + +Returns information about video configuration settings of the current user. + +- HTTP Method: `GET` +- Endpoint: `/restapi/v1.0/account/{accountId}/extension/{extensionId}/video-configuration` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :--- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | str | ✅ | Internal identifier of the RingCentral account (can be set to "~" to indicate that the account associated with current authorization session should be used) | +| extension_id | str | ✅ | Internal identifier of the RingCentral extension/user (can be set to "~" to indicate that the extension associated with current authorization session should be used) | + +**Return Type** + +`UserVideoConfiguration` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.video_configuration.read_user_video_configuration( + account_id="~", + extension_id="~" +) + +print(result) +``` + + diff --git a/documentation/services/WebinarSubscriptionsService.md b/documentation/services/WebinarSubscriptionsService.md new file mode 100644 index 00000000..d8cc5dc6 --- /dev/null +++ b/documentation/services/WebinarSubscriptionsService.md @@ -0,0 +1,221 @@ +# WebinarSubscriptionsService + +A list of all methods in the `WebinarSubscriptionsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [rcw_n11s_list_subscriptions](#rcw_n11s_list_subscriptions) | Returns a list of webinar subscriptions created by the user for the current authorized client application. | +| [rcw_n11s_create_subscription](#rcw_n11s_create_subscription) | Creates a new webinar subscription for the current authorized user / client application. | +| [rcw_n11s_get_subscription](#rcw_n11s_get_subscription) | Returns the webinar subscription by ID | +| [rcw_n11s_update_subscription](#rcw_n11s_update_subscription) | Updates the existing subscription. The client application can extend/narrow the list of events for which it receives notifications within this subscription. If event filters are specified, calling this method modifies them for the existing subscription. The method also allows setting the subscription expiration time. If other than `events` and `expiresIn` parameters are passed in the request they will be ignored. If the request body is empty then the specified subscription will be just renewed without any event filter modifications and with default expiration time. | +| [rcw_n11s_delete_subscription](#rcw_n11s_delete_subscription) | Cancels the existing webinar subscription. | +| [rcw_n11s_renew_subscription](#rcw_n11s_renew_subscription) | Renews the existing webinar subscription. | + +## rcw_n11s_list_subscriptions + +Returns a list of webinar subscriptions created by the user for the current authorized client application. + +- HTTP Method: `GET` +- Endpoint: `/webinar/notifications/v1/subscriptions` + +**Return Type** + +`SubscriptionListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinar_subscriptions.rcw_n11s_list_subscriptions() + +print(result) +``` + +## rcw_n11s_create_subscription + +Creates a new webinar subscription for the current authorized user / client application. + +- HTTP Method: `POST` +- Endpoint: `/webinar/notifications/v1/subscriptions` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------------- | :------- | :---------------- | +| request_body | [CreateWebhookSubscriptionRequest](../models/CreateWebhookSubscriptionRequest.md) | ✅ | The request body. | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import CreateWebhookSubscriptionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = CreateWebhookSubscriptionRequest( + event_filters=[ + "sed" + ], + expires_in=1200, + delivery_mode={ + "transport_type": "WebHook", + "address": "https://acme.com/myservice/webhook", + "verification_token": "verificationToken" + } +) + +result = sdk.webinar_subscriptions.rcw_n11s_create_subscription(request_body=request_body) + +print(result) +``` + +## rcw_n11s_get_subscription + +Returns the webinar subscription by ID + +- HTTP Method: `GET` +- Endpoint: `/webinar/notifications/v1/subscriptions/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinar_subscriptions.rcw_n11s_get_subscription(subscription_id="eiusmod al") + +print(result) +``` + +## rcw_n11s_update_subscription + +Updates the existing subscription. The client application can extend/narrow the list of events for which it receives notifications within this subscription. If event filters are specified, calling this method modifies them for the existing subscription. The method also allows setting the subscription expiration time. If other than `events` and `expiresIn` parameters are passed in the request they will be ignored. If the request body is empty then the specified subscription will be just renewed without any event filter modifications and with default expiration time. + +- HTTP Method: `PUT` +- Endpoint: `/webinar/notifications/v1/subscriptions/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :------------------------------------------------------------------ | :------- | :------------------------------------ | +| request_body | [UpdateSubscriptionRequest](../models/UpdateSubscriptionRequest.md) | ✅ | The request body. | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import UpdateSubscriptionRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = UpdateSubscriptionRequest( + event_filters=[ + "ex" + ], + expires_in=1200 +) + +result = sdk.webinar_subscriptions.rcw_n11s_update_subscription( + request_body=request_body, + subscription_id="Excep" +) + +print(result) +``` + +## rcw_n11s_delete_subscription + +Cancels the existing webinar subscription. + +- HTTP Method: `DELETE` +- Endpoint: `/webinar/notifications/v1/subscriptions/{subscriptionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinar_subscriptions.rcw_n11s_delete_subscription(subscription_id="ad dolor q") + +print(result) +``` + +## rcw_n11s_renew_subscription + +Renews the existing webinar subscription. + +- HTTP Method: `POST` +- Endpoint: `/webinar/notifications/v1/subscriptions/{subscriptionId}/renew` + +**Parameters** + +| Name | Type | Required | Description | +| :-------------- | :--- | :------- | :------------------------------------ | +| subscription_id | str | ✅ | Internal identifier of a subscription | + +**Return Type** + +`SubscriptionInfo` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinar_subscriptions.rcw_n11s_renew_subscription(subscription_id="ex aliquip incid") + +print(result) +``` + + diff --git a/documentation/services/WebinarsAndSessionsService.md b/documentation/services/WebinarsAndSessionsService.md new file mode 100644 index 00000000..f284f8dd --- /dev/null +++ b/documentation/services/WebinarsAndSessionsService.md @@ -0,0 +1,511 @@ +# WebinarsAndSessionsService + +A list of all methods in the `WebinarsAndSessionsService` service. Click on the method name to view detailed information about that method. + +| Methods | Description | +| :---------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [rcw_config_list_webinars](#rcw_config_list_webinars) | Returns the list of Webinars hosted by a current authorized user sorted by 'scheduledStartTime' or 'creationTime' in the ascending order. | +| [rcw_config_create_webinar](#rcw_config_create_webinar) | Creates a new webinar. If "host" parameter is NOT passed then the current authorized user will become a Host. If "host" parameter is passed then the caller must be a company administrator and have "WebinarSettings" permission. "host.linkedUser.accountId" must be the same as authorized user's account ID. The webinar settings which are not mandated at account level or are unlocked can be specified. All other settings are defaulted according to account policy. | +| [rcw_config_get_webinar](#rcw_config_get_webinar) | Returns a Webinar information by ID. Some webinar settings are returned basing on webinar-level overrides, other - from default settings defined at account level. | +| [rcw_config_update_webinar](#rcw_config_update_webinar) | Updates a Webinar. The payload may contain just changed fields of a Webinar resource (it is a partial update): - host cannot be changed, and host user information cannot be updated; - only the settings which are not mandated at account level or are unlocked can be changed; - in order to reset a webinar password it should be passed as an empty string; - "registrationStatus" cannot be changed. | +| [rcw_config_delete_webinar](#rcw_config_delete_webinar) | Deletes a Webinar by ID. All child objects (Sessions, Invitees) will be also deleted. It is disallowed to delete a Webinar which has at least one Session in 'Active' or 'Finished' state. | +| [rcw_config_create_session](#rcw_config_create_session) | Creates a new Session for a given Webinar | +| [rcw_config_get_session](#rcw_config_get_session) | Returns a Webinar Session by ID. | +| [rcw_config_update_session](#rcw_config_update_session) | Updates a Webinar Session. The payload may contain certain attributes from the Session resource (it is a partial update). Changing the 'status' field usually invokes certain workflow actions. Updating a Session in 'Active' or 'Finished' status is prohibited. Some status transitions (for example, to 'Active" or 'Finished') may be prohibited. | +| [rcw_config_delete_session](#rcw_config_delete_session) | Deletes a Webinar Session. All child objects (Invitees) will be also deleted. It is disallowed to delete a Session which is in 'Active' or 'Finished' state | +| [rcw_config_list_all_company_sessions](#rcw_config_list_all_company_sessions) | Returns the list of Webinar Sessions hosted by all company users or particular user(s) sorted by 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending ordered. The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. | +| [rcw_config_list_all_sessions](#rcw_config_list_all_sessions) | Returns the list of Webinar Sessions hosted by a current authorized user sorted by 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending order | + +## rcw_config_list_webinars + +Returns the list of Webinars hosted by a current authorized user sorted by 'scheduledStartTime' or 'creationTime' in the ascending order. + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/webinars` + +**Parameters** + +| Name | Type | Required | Description | +| :----------------- | :--- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| creation_time_from | str | ✅ | The beginning of the time window by 'creationTime' . | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`WebinarListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_list_webinars( + creation_time_from="creationTimeFrom", + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_config_create_webinar + +Creates a new webinar. If "host" parameter is NOT passed then the current authorized user will become a Host. If "host" parameter is passed then the caller must be a company administrator and have "WebinarSettings" permission. "host.linkedUser.accountId" must be the same as authorized user's account ID. The webinar settings which are not mandated at account level or are unlocked can be specified. All other settings are defaulted according to account policy. + +- HTTP Method: `POST` +- Endpoint: `/webinar/configuration/v1/webinars` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------------------ | :------- | :---------------- | +| request_body | [WebinarCreationRequest](../models/WebinarCreationRequest.md) | ✅ | The request body. | + +**Return Type** + +`WcsWebinarResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WebinarCreationRequest + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = WebinarCreationRequest( + title="All-Hands Webinar", + description="Quarterly All-hands event to present recent news about our company to employees", + settings={ + "recording_enabled": True, + "auto_record": False, + "recording_sharing_enabled": True, + "recording_download_enabled": True, + "past_session_deletion_enabled": True, + "panelist_waiting_room": True, + "panelist_video_enabled": True, + "panelist_screen_sharing_enabled": True, + "panelist_mute_control_enabled": True, + "panelist_authentication": "Guest", + "attendee_authentication": "Guest", + "artifacts_access_authentication": "Guest", + "pstn_enabled": False, + "password": "reprehenderit nulla ", + "qna_enabled": True, + "qna_anonymous_enabled": True, + "polls_enabled": True, + "polls_anonymous_enabled": True, + "registration_enabled": False, + "post_webinar_redirect_uri": "https://www.acme.com/thankyou", + "external_livestream_enabled": True, + "moderated_qna_enabled": False + }, + host={ + "linked_user": { + "user_id": "amet ad", + "account_id": "mollit qui Excepteur anim dolore", + "domain": "pbx" + } + } +) + +result = sdk.webinars_and_sessions.rcw_config_create_webinar(request_body=request_body) + +print(result) +``` + +## rcw_config_get_webinar + +Returns a Webinar information by ID. Some webinar settings are returned basing on webinar-level overrides, other - from default settings defined at account level. + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | + +**Return Type** + +`WcsWebinarResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_get_webinar(webinar_id="cupidatat dolor D") + +print(result) +``` + +## rcw_config_update_webinar + +Updates a Webinar. The payload may contain just changed fields of a Webinar resource (it is a partial update): - host cannot be changed, and host user information cannot be updated; - only the settings which are not mandated at account level or are unlocked can be changed; - in order to reset a webinar password it should be passed as an empty string; - "registrationStatus" cannot be changed. + +- HTTP Method: `PATCH` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :------------------------------------------------ | :------- | :------------------------- | +| request_body | [WebinarBaseModel](../models/WebinarBaseModel.md) | ✅ | The request body. | +| webinar_id | str | ✅ | Identifier of the Webinar. | + +**Return Type** + +`WcsWebinarResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WebinarBaseModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = WebinarBaseModel( + title="All-Hands Webinar", + description="Quarterly All-hands event to present recent news about our company to employees", + settings={ + "recording_enabled": True, + "auto_record": False, + "recording_sharing_enabled": True, + "recording_download_enabled": True, + "past_session_deletion_enabled": True, + "panelist_waiting_room": True, + "panelist_video_enabled": True, + "panelist_screen_sharing_enabled": True, + "panelist_mute_control_enabled": True, + "panelist_authentication": "Guest", + "attendee_authentication": "Guest", + "artifacts_access_authentication": "Guest", + "pstn_enabled": False, + "password": "reprehenderit nulla ", + "qna_enabled": True, + "qna_anonymous_enabled": True, + "polls_enabled": True, + "polls_anonymous_enabled": True, + "registration_enabled": False, + "post_webinar_redirect_uri": "https://www.acme.com/thankyou", + "external_livestream_enabled": True, + "moderated_qna_enabled": False + } +) + +result = sdk.webinars_and_sessions.rcw_config_update_webinar( + request_body=request_body, + webinar_id="cupidatat dolor D" +) + +print(result) +``` + +## rcw_config_delete_webinar + +Deletes a Webinar by ID. All child objects (Sessions, Invitees) will be also deleted. It is disallowed to delete a Webinar which has at least one Session in 'Active' or 'Finished' state. + +- HTTP Method: `DELETE` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_delete_webinar(webinar_id="cupidatat dolor D") + +print(result) +``` + +## rcw_config_create_session + +Creates a new Session for a given Webinar + +- HTTP Method: `POST` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :------------------------- | +| request_body | [WcsSessionWithLocaleCodeModel](../models/WcsSessionWithLocaleCodeModel.md) | ✅ | The request body. | +| webinar_id | str | ✅ | Identifier of the Webinar. | + +**Return Type** + +`WcsSessionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WcsSessionWithLocaleCodeModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = WcsSessionWithLocaleCodeModel( + scheduled_start_time="scheduledStartTime", + scheduled_duration=1800, + time_zone="America/New_York", + localized_time_zone_description="Eastern Time (America/New_York)", + panel_join_time_offset=900, + title="Live Broadcasting US", + description="Live session for US-based participants", + status="Scheduled", + host_join_uri="https://v.ringcentral.com/w/join/de7yd8ew7yfsdfjh899843rgj", + locale_code="en-US" +) + +result = sdk.webinars_and_sessions.rcw_config_create_session( + request_body=request_body, + webinar_id="nulla aliquip commo" +) + +print(result) +``` + +## rcw_config_get_session + +Returns a Webinar Session by ID. + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`WcsSessionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_get_session( + webinar_id="anim est ", + session_id="magna Ut" +) + +print(result) +``` + +## rcw_config_update_session + +Updates a Webinar Session. The payload may contain certain attributes from the Session resource (it is a partial update). Changing the 'status' field usually invokes certain workflow actions. Updating a Session in 'Active' or 'Finished' status is prohibited. Some status transitions (for example, to 'Active" or 'Finished') may be prohibited. + +- HTTP Method: `PATCH` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :----------- | :-------------------------------------------------------------------------- | :------- | :------------------------- | +| request_body | [WcsSessionWithLocaleCodeModel](../models/WcsSessionWithLocaleCodeModel.md) | ✅ | The request body. | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Return Type** + +`WcsSessionResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WcsSessionWithLocaleCodeModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +request_body = WcsSessionWithLocaleCodeModel( + scheduled_start_time="scheduledStartTime", + scheduled_duration=1800, + time_zone="America/New_York", + localized_time_zone_description="Eastern Time (America/New_York)", + panel_join_time_offset=900, + title="Live Broadcasting US", + description="Live session for US-based participants", + status="Scheduled", + host_join_uri="https://v.ringcentral.com/w/join/de7yd8ew7yfsdfjh899843rgj", + locale_code="en-US" +) + +result = sdk.webinars_and_sessions.rcw_config_update_session( + request_body=request_body, + webinar_id="anim est ", + session_id="magna Ut" +) + +print(result) +``` + +## rcw_config_delete_session + +Deletes a Webinar Session. All child objects (Invitees) will be also deleted. It is disallowed to delete a Session which is in 'Active' or 'Finished' state + +- HTTP Method: `DELETE` +- Endpoint: `/webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}` + +**Parameters** + +| Name | Type | Required | Description | +| :--------- | :--- | :------- | :------------------------- | +| webinar_id | str | ✅ | Identifier of the Webinar. | +| session_id | str | ✅ | Identifier of the Session. | + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_delete_session( + webinar_id="anim est ", + session_id="magna Ut" +) + +print(result) +``` + +## rcw_config_list_all_company_sessions + +Returns the list of Webinar Sessions hosted by all company users or particular user(s) sorted by 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending ordered. The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/company/sessions` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :---------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| end_time_from | str | ✅ | The beginning of the time window by 'endTime' (it is calculated as scheduledStartTime+scheduledDuration) | +| status | [WcsSessionStatusModel](../models/WcsSessionStatusModel.md) | ❌ | Filter to return only webinar sessions in certain status. Multiple values are supported. | +| host_user_id | List[str] | ❌ | Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned) | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`WcsSessionGlobalListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WcsSessionStatusModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) +host_user_id=[ + "aliq" +] + +result = sdk.webinars_and_sessions.rcw_config_list_all_company_sessions( + end_time_from="endTimeFrom", + status="Scheduled", + host_user_id=host_user_id, + per_page=100, + page_token="pageToken" +) + +print(result) +``` + +## rcw_config_list_all_sessions + +Returns the list of Webinar Sessions hosted by a current authorized user sorted by 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending order + +- HTTP Method: `GET` +- Endpoint: `/webinar/configuration/v1/sessions` + +**Parameters** + +| Name | Type | Required | Description | +| :------------ | :---------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- | +| end_time_from | str | ✅ | The beginning of the time window by 'endTime' (it is calculated as scheduledStartTime+scheduledDuration) | +| name_fragment | str | ❌ | Filter to return only webinar sessions containing particular substring within their names | +| status | [WcsSessionStatusModel](../models/WcsSessionStatusModel.md) | ❌ | Filter to return only webinar sessions in certain status. Multiple values are supported. | +| per_page | int | ❌ | The number of items per page. If provided value in the request is greater than a maximum, the maximum value is applied | +| page_token | str | ❌ | The token indicating the particular page of the result set to be retrieved. If omitted the first page will be returned. | + +**Return Type** + +`WcsSessionGlobalListResource` + +**Example Usage Code Snippet** + +```python +from ring_central import RingCentral, Environment +from ring_central.models import WcsSessionStatusModel + +sdk = RingCentral( + access_token="YOUR_ACCESS_TOKEN", + base_url=Environment.DEFAULT.value +) + +result = sdk.webinars_and_sessions.rcw_config_list_all_sessions( + end_time_from="endTimeFrom", + name_fragment="nameFragment", + status="Scheduled", + per_page=100, + page_token="pageToken" +) + +print(result) +``` + + diff --git a/examples/.env.example b/examples/.env.example new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/examples/.env.example @@ -0,0 +1 @@ + diff --git a/examples/install.cmd b/examples/install.cmd new file mode 100644 index 00000000..4d819913 --- /dev/null +++ b/examples/install.cmd @@ -0,0 +1,5 @@ +python -m venv .venv +call .venv\Scripts\activate +pip install build +python -m build --outdir dist ..\ +pip install dist\ring_central_client-1.0.0-py3-none-any.whl --force-reinstall diff --git a/examples/install.sh b/examples/install.sh new file mode 100644 index 00000000..77e57a5e --- /dev/null +++ b/examples/install.sh @@ -0,0 +1,5 @@ +python -m venv .venv +. .venv/bin/activate +pip install build +python -m build --outdir dist ../ +pip install dist/ring_central_client-1.0.0-py3-none-any.whl --force-reinstall diff --git a/examples/sample.py b/examples/sample.py new file mode 100644 index 00000000..aca76396 --- /dev/null +++ b/examples/sample.py @@ -0,0 +1,9 @@ +# This file was generated by liblab | https://liblab.com/ + +from ring_central import RingCentral, Environment + +sdk = RingCentral(access_token="YOUR_ACCESS_TOKEN", base_url=Environment.DEFAULT.value) + +result = sdk.webinar_subscriptions.rcw_n11s_list_subscriptions() + +print(result) diff --git a/install.cmd b/install.cmd new file mode 100644 index 00000000..f8846913 --- /dev/null +++ b/install.cmd @@ -0,0 +1,22 @@ +@echo off +set USE_VENV=0 + +:loop +if "%~1"=="" goto afterloop +if "%~1"=="--use-venv" set USE_VENV=1 +shift +goto loop +:afterloop + +if "%USE_VENV%"=="1" ( + python -m venv .venv + call .venv\Scripts\activate +) + +pip install build +python -m build --outdir dist . +pip install dist\ring_central_client-1.0.0-py3-none-any.whl --force-reinstall + +if "%USE_VENV%"=="1" ( + deactivate +) diff --git a/install.sh b/install.sh new file mode 100644 index 00000000..f4736294 --- /dev/null +++ b/install.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +USE_VENV=0 + +for arg in "$@" +do + case $arg in + --use-venv) + USE_VENV=1 + shift + ;; + esac +done + +if [ "$USE_VENV" -eq 1 ]; then + python -m venv .venv + . .venv/bin/activate +fi + +pip install build +python -m build --outdir dist . +pip install dist/ring_central_client-1.0.0-py3-none-any.whl --force-reinstall + +if [ "$USE_VENV" -eq 1 ]; then + deactivate +fi \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..b67d1346 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "ring-central-client" +version = "1.0.0" +license = { text = "MIT" } +description = """RingCentral API specification""" +readme = "README.md" +requires-python = ">=3.7" +dependencies = [ + "requests>=2.31.0" +] diff --git a/src/ring_central/__init__.py b/src/ring_central/__init__.py new file mode 100644 index 00000000..bbc926b2 --- /dev/null +++ b/src/ring_central/__init__.py @@ -0,0 +1,4 @@ +# This file was generated by liblab | https://liblab.com/ + +from .sdk import RingCentral +from .net.environment import Environment diff --git a/src/ring_central/hooks/__init__.py b/src/ring_central/hooks/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/hooks/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/hooks/hook.py b/src/ring_central/hooks/hook.py new file mode 100644 index 00000000..e1b934ba --- /dev/null +++ b/src/ring_central/hooks/hook.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + + +class Request: + def __init__(self, method, url, headers, body=""): + self.method = method + self.url = url + self.headers = headers + self.body = body + + def __str__(self): + return f"method={self.method}, url={self.url}, headers={self.headers}, body={self.body})" + + +class Response: + def __init__(self, status, headers, body): + self.status = status + self.headers = headers + self.body = body + + def __str__(self): + return "Response(status={}, headers={}, body={})".format( + self.status, self.headers, self.body + ) + + +class DefaultHook: + + def before_request(self, request: Request, **kwargs): + pass + + def after_response(self, request: Request, response: Response, **kwargs): + pass + + def on_error( + self, error: Exception, request: Request, response: Response, **kwargs + ): + pass diff --git a/src/ring_central/models/__init__.py b/src/ring_central/models/__init__.py new file mode 100644 index 00000000..921d57ce --- /dev/null +++ b/src/ring_central/models/__init__.py @@ -0,0 +1,1258 @@ +# This file was generated by liblab | https://liblab.com/ + +from .subscription_list_resource import SubscriptionListResource +from .create_webhook_subscription_request import CreateWebhookSubscriptionRequest +from .subscription_info import SubscriptionInfo +from .update_subscription_request import UpdateSubscriptionRequest +from .webinar_resource import WebinarResource +from .session_resource import SessionResource +from .participant_list_resource import ParticipantListResource +from .rcw_role_enum import RcwRoleEnum +from .participant_reduced_model import ParticipantReducedModel +from .invitee_list_resource import InviteeListResource +from .invitee_model import InviteeModel +from .session_global_list_resource import SessionGlobalListResource +from .rcw_session_status_model import RcwSessionStatusModel +from .recording_admin_list_resource import RecordingAdminListResource +from .recording_status_model import RecordingStatusModel +from .recording_admin_extended_item_model import RecordingAdminExtendedItemModel +from .recording_list_resource import RecordingListResource +from .recording_item_extended_model import RecordingItemExtendedModel +from .recording_download_model import RecordingDownloadModel +from .recording_media_type import RecordingMediaType +from .reg_session_model import RegSessionModel +from .registrant_list_resource import RegistrantListResource +from .registrant_base_model_with_questionnaire import ( + RegistrantBaseModelWithQuestionnaire, +) +from .registrant_model_response_post_with_questionnaire import ( + RegistrantModelResponsePostWithQuestionnaire, +) +from .registrant_model_with_questionnaire import RegistrantModelWithQuestionnaire +from .webinar_list_resource import WebinarListResource +from .webinar_creation_request import WebinarCreationRequest +from .wcs_webinar_resource import WcsWebinarResource +from .webinar_base_model import WebinarBaseModel +from .wcs_session_with_locale_code_model import WcsSessionWithLocaleCodeModel +from .wcs_session_resource import WcsSessionResource +from .wcs_session_global_list_resource import WcsSessionGlobalListResource +from .wcs_session_status_model import WcsSessionStatusModel +from .wcs_invitee_list_resource import WcsInviteeListResource +from .bulk_update_invitees_request import BulkUpdateInviteesRequest +from .bulk_update_invitees_response import BulkUpdateInviteesResponse +from .invitee_resource import InviteeResource +from .update_invitee_request import UpdateInviteeRequest +from .content_disposition import ContentDisposition +from .call_recording_ids import CallRecordingIds +from .get_call_recording_response import GetCallRecordingResponse +from .greetings_create_company_greeting_request_1 import ( + GreetingsCreateCompanyGreetingRequest1, +) +from .greetings_create_company_greeting_request_2 import ( + GreetingsCreateCompanyGreetingRequest2, +) +from .custom_company_greeting_info import CustomCompanyGreetingInfo +from .greetings_create_custom_user_greeting_request_1 import ( + GreetingsCreateCustomUserGreetingRequest1, +) +from .greetings_create_custom_user_greeting_request_2 import ( + GreetingsCreateCustomUserGreetingRequest2, +) +from .custom_user_greeting_info import CustomUserGreetingInfo +from .dictionary_greeting_list import DictionaryGreetingList +from .list_standard_greetings_type import ListStandardGreetingsType +from .list_standard_greetings_usage_type import ListStandardGreetingsUsageType +from .dictionary_greeting_info import DictionaryGreetingInfo +from .scale_size import ScaleSize +from .batch_provision_users_request import BatchProvisionUsersRequest +from .batch_provision_users_response import BatchProvisionUsersResponse +from .bulk_delete_users_request import BulkDeleteUsersRequest +from .bulk_delete_users_response import BulkDeleteUsersResponse +from .get_extension_info_response import GetExtensionInfoResponse +from .extension_update_request import ExtensionUpdateRequest +from .get_extension_grant_list_response import GetExtensionGrantListResponse +from .extension_type import ExtensionType +from .get_conferencing_info_response import GetConferencingInfoResponse +from .update_conferencing_info_request import UpdateConferencingInfoRequest +from .create_user_profile_image_request import CreateUserProfileImageRequest +from .update_user_profile_image_request import UpdateUserProfileImageRequest +from .extension_caller_id_info import ExtensionCallerIdInfo +from .extension_caller_id_info_request import ExtensionCallerIdInfoRequest +from .notification_settings import NotificationSettings +from .notification_settings_update_request import NotificationSettingsUpdateRequest +from .message_store_configuration import MessageStoreConfiguration +from .get_message_sync_response import GetMessageSyncResponse +from .message_direction_enum import MessageDirectionEnum +from .message_type_enum import MessageTypeEnum +from .sync_type_enum import SyncTypeEnum +from .get_message_list import GetMessageList +from .message_availability_enum import MessageAvailabilityEnum +from .message_read_status_enum import MessageReadStatusEnum +from .delete_message_by_filter_type import DeleteMessageByFilterType +from .get_message_info_response import GetMessageInfoResponse +from .get_message_info_multi_response import GetMessageInfoMultiResponse +from .update_message_request import UpdateMessageRequest +from .update_message_bulk_request import UpdateMessageBulkRequest +from .patch_message_request import PatchMessageRequest +from .patch_message_bulk_request import PatchMessageBulkRequest +from .ivr_prompts import IvrPrompts +from .create_ivr_prompt_request import CreateIvrPromptRequest +from .prompt_info import PromptInfo +from .update_ivr_prompt_request import UpdateIvrPromptRequest +from .ivr_menu_list import IvrMenuList +from .ivr_menu_info import IvrMenuInfo +from .create_bridge_request import CreateBridgeRequest +from .bridge_response import BridgeResponse +from .update_bridge_request import UpdateBridgeRequest +from .cloud_recordings import CloudRecordings +from .delegators_list_result import DelegatorsListResult +from .meeting_page import MeetingPage +from .list_video_meetings_type import ListVideoMeetingsType +from .meeting import Meeting +from .api_versions_list import ApiVersionsList +from .api_version_info import ApiVersionInfo +from .get_token_request import GetTokenRequest +from .token_info import TokenInfo +from .authorize_response_type import AuthorizeResponseType +from .display_modes_enum import DisplayModesEnum +from .code_challenge_method_enum import CodeChallengeMethodEnum +from .authorize_request import AuthorizeRequest +from .revoke_token_request import RevokeTokenRequest +from .account_info import AccountInfo +from .send_welcome_email_v2_request import SendWelcomeEmailV2Request +from .get_account_info_response import GetAccountInfoResponse +from .account_service_info import AccountServiceInfo +from .account_business_address_resource import AccountBusinessAddressResource +from .modify_account_business_address_request import ModifyAccountBusinessAddressRequest +from .contracted_country_list_response import ContractedCountryListResponse +from .country_list_dictionary_model import CountryListDictionaryModel +from .add_device_to_inventory_request import AddDeviceToInventoryRequest +from .add_device_to_inventory_response import AddDeviceToInventoryResponse +from .delete_device_from_inventory_request import DeleteDeviceFromInventoryRequest +from .delete_device_from_inventory_response import DeleteDeviceFromInventoryResponse +from .remove_line_request import RemoveLineRequest +from .remove_line_response import RemoveLineResponse +from .bulk_add_devices_request import BulkAddDevicesRequest +from .bulk_add_devices_response import BulkAddDevicesResponse +from .swap_device_request import SwapDeviceRequest +from .device_resource import DeviceResource +from .account_device_update import AccountDeviceUpdate +from .sip_info_resource import SipInfoResource +from .get_extension_devices_response import GetExtensionDevicesResponse +from .line_pooling import LinePooling +from .device_feature_enum import DeviceFeatureEnum +from .list_extension_devices_type import ListExtensionDevicesType +from .phone_line_type_enum import PhoneLineTypeEnum +from .account_phone_number_list import AccountPhoneNumberList +from .phone_number_type import PhoneNumberType +from .phone_number_usage_type import PhoneNumberUsageType +from .phone_number_status import PhoneNumberStatus +from .phone_number_toll_type import PhoneNumberTollType +from .extension_status import ExtensionStatus +from .delete_phone_numbers_request import DeletePhoneNumbersRequest +from .delete_phone_numbers_response import DeletePhoneNumbersResponse +from .assign_phone_number_request import AssignPhoneNumberRequest +from .account_phone_number_info import AccountPhoneNumberInfo +from .replace_phone_number_request import ReplacePhoneNumberRequest +from .add_phone_numbers_request import AddPhoneNumbersRequest +from .add_phone_numbers_response import AddPhoneNumbersResponse +from .add_phone_numbers_task import AddPhoneNumbersTask +from .get_bulk_add_task_results_v2_ok_response import GetBulkAddTaskResultsV2OkResponse +from .get_extension_phone_numbers_response import GetExtensionPhoneNumbersResponse +from .list_extension_phone_numbers_status import ListExtensionPhoneNumbersStatus +from .list_extension_phone_numbers_usage_type import ListExtensionPhoneNumbersUsageType +from .account_phone_numbers import AccountPhoneNumbers +from .list_account_phone_numbers_usage_type import ListAccountPhoneNumbersUsageType +from .platform_payment_type import PlatformPaymentType +from .list_account_phone_numbers_status import ListAccountPhoneNumbersStatus +from .company_phone_number_info import CompanyPhoneNumberInfo +from .parse_phone_number_request import ParsePhoneNumberRequest +from .parse_phone_number_response import ParsePhoneNumberResponse +from .company_business_hours import CompanyBusinessHours +from .company_business_hours_update_request import CompanyBusinessHoursUpdateRequest +from .get_user_business_hours_response import GetUserBusinessHoursResponse +from .user_business_hours_update_request import UserBusinessHoursUpdateRequest +from .user_business_hours_update_response import UserBusinessHoursUpdateResponse +from .custom_field_list import CustomFieldList +from .custom_field_create_request import CustomFieldCreateRequest +from .custom_field_model import CustomFieldModel +from .custom_field_update_request import CustomFieldUpdateRequest +from .call_recording_settings_resource import CallRecordingSettingsResource +from .call_recording_custom_greetings import CallRecordingCustomGreetings +from .list_call_recording_custom_greetings_type import ( + ListCallRecordingCustomGreetingsType, +) +from .bulk_account_call_recordings_resource import BulkAccountCallRecordingsResource +from .call_recording_extensions import CallRecordingExtensions +from .make_call_out_request import MakeCallOutRequest +from .call_session import CallSession +from .call_session_object import CallSessionObject +from .add_party_request import AddPartyRequest +from .call_party import CallParty +from .party_update_request import PartyUpdateRequest +from .call_party_flip import CallPartyFlip +from .call_party_reply import CallPartyReply +from .reply_party import ReplyParty +from .bridge_target_request import BridgeTargetRequest +from .ignore_request_body import IgnoreRequestBody +from .party_supervise_request import PartySuperviseRequest +from .party_supervise_response import PartySuperviseResponse +from .call_recording_update import CallRecordingUpdate +from .call_recording import CallRecording +from .answer_target import AnswerTarget +from .transfer_target import TransferTarget +from .hold_call_party_request import HoldCallPartyRequest +from .pickup_target import PickupTarget +from .forward_target import ForwardTarget +from .forward_call_party_response import ForwardCallPartyResponse +from .supervise_call_session_request import SuperviseCallSessionRequest +from .supervise_call_session_response import SuperviseCallSessionResponse +from .message_templates_list_response import MessageTemplatesListResponse +from .message_template_request import MessageTemplateRequest +from .message_template_response import MessageTemplateResponse +from .visibility_type import VisibilityType +from .call_log_response import CallLogResponse +from .call_direction_enum import CallDirectionEnum +from .call_type_enum import CallTypeEnum +from .read_company_call_log_view import ReadCompanyCallLogView +from .recording_type import RecordingType +from .call_log_record import CallLogRecord +from .call_log_sync_response import CallLogSyncResponse +from .sync_account_call_log_sync_type import SyncAccountCallLogSyncType +from .status_group import StatusGroup +from .call_transport_enum import CallTransportEnum +from .conference_type import ConferenceType +from .extension_bulk_update_request import ExtensionBulkUpdateRequest +from .extension_bulk_update_task_resource import ExtensionBulkUpdateTaskResource +from .user_templates import UserTemplates +from .list_user_templates_type import ListUserTemplatesType +from .template_info import TemplateInfo +from .get_extension_list_response import GetExtensionListResponse +from .list_extensions_status import ListExtensionsStatus +from .list_extensions_type import ListExtensionsType +from .extension_creation_request import ExtensionCreationRequest +from .extension_creation_response import ExtensionCreationResponse +from .message_statuses_response import MessageStatusesResponse +from .sms_direction_enum import SmsDirectionEnum +from .message_list_response import MessageListResponse +from .list_a2_psms_view import ListA2PsmsView +from .message_details_response import MessageDetailsResponse +from .opt_out_list_response import OptOutListResponse +from .read_a2_psms_opt_outs_status import ReadA2PsmsOptOutsStatus +from .opt_out_bulk_assign_request import OptOutBulkAssignRequest +from .opt_out_bulk_assign_response import OptOutBulkAssignResponse +from .batch_list_response import BatchListResponse +from .list_a2_p_batches_status import ListA2PBatchesStatus +from .message_batch_create_request import MessageBatchCreateRequest +from .message_batch_response import MessageBatchResponse +from .company_answering_rule_list import CompanyAnsweringRuleList +from .company_answering_rule_request import CompanyAnsweringRuleRequest +from .company_answering_rule_info import CompanyAnsweringRuleInfo +from .company_answering_rule_update import CompanyAnsweringRuleUpdate +from .forward_all_company_calls_info import ForwardAllCompanyCallsInfo +from .forward_all_company_calls_request import ForwardAllCompanyCallsRequest +from .user_answering_rule_list import UserAnsweringRuleList +from .list_answering_rules_type import ListAnsweringRulesType +from .list_answering_rules_view import ListAnsweringRulesView +from .create_answering_rule_request import CreateAnsweringRuleRequest +from .custom_answering_rule_info import CustomAnsweringRuleInfo +from .answering_rule_info import AnsweringRuleInfo +from .update_answering_rule_request import UpdateAnsweringRuleRequest +from .address_book_bulk_upload_request import AddressBookBulkUploadRequest +from .address_book_bulk_upload_response import AddressBookBulkUploadResponse +from .favorite_contact_list import FavoriteContactList +from .favorite_collection import FavoriteCollection +from .contact_list import ContactList +from .sort_by import SortBy +from .personal_contact_request import PersonalContactRequest +from .personal_contact_resource import PersonalContactResource +from .address_book_sync import AddressBookSync +from .sync_address_book_sync_type import SyncAddressBookSyncType +from .call_queues import CallQueues +from .call_queue_details import CallQueueDetails +from .call_queue_bulk_assign_resource import CallQueueBulkAssignResource +from .call_queue_members import CallQueueMembers +from .department_member_list import DepartmentMemberList +from .department_bulk_assign_resource import DepartmentBulkAssignResource +from .user_call_queues import UserCallQueues +from .call_queue_overflow_settings import CallQueueOverflowSettings +from .call_queue_overflow_settings_request_resource import ( + CallQueueOverflowSettingsRequestResource, +) +from .call_queue_presence import CallQueuePresence +from .call_queue_update_presence import CallQueueUpdatePresence +from .account_presence_info import AccountPresenceInfo +from .extension_call_queue_presence_list import ExtensionCallQueuePresenceList +from .extension_call_queue_update_presence_list import ( + ExtensionCallQueueUpdatePresenceList, +) +from .get_presence_info import GetPresenceInfo +from .presence_info_request import PresenceInfoRequest +from .presence_info_response import PresenceInfoResponse +from .unified_presence import UnifiedPresence +from .unified_presence_list_entry import UnifiedPresenceListEntry +from .update_unified_presence import UpdateUnifiedPresence +from .emergency_locations_resource import EmergencyLocationsResource +from .emergency_address_status import EmergencyAddressStatus +from .emergency_location_usage_status import EmergencyLocationUsageStatus +from .list_emergency_locations_order_by import ListEmergencyLocationsOrderBy +from .emergency_location_request_resource import EmergencyLocationRequestResource +from .emergency_location_response_resource import EmergencyLocationResponseResource +from .common_emergency_location_resource import CommonEmergencyLocationResource +from .get_location_deletion_multi_response import GetLocationDeletionMultiResponse +from .get_extension_emergency_locations_order_by import ( + GetExtensionEmergencyLocationsOrderBy, +) +from .create_user_emergency_location_request import CreateUserEmergencyLocationRequest +from .automatic_location_updates_task_info import AutomaticLocationUpdatesTaskInfo +from .automatic_location_updates_user_list import AutomaticLocationUpdatesUserList +from .list_automatic_location_updates_users_type import ( + ListAutomaticLocationUpdatesUsersType, +) +from .emergency_address_auto_update_users_bulk_assign_resource import ( + EmergencyAddressAutoUpdateUsersBulkAssignResource, +) +from .create_multiple_wireless_points_request import CreateMultipleWirelessPointsRequest +from .create_multiple_wireless_points_response import ( + CreateMultipleWirelessPointsResponse, +) +from .networks_list import NetworksList +from .create_network_request import CreateNetworkRequest +from .network_info import NetworkInfo +from .update_network_request import UpdateNetworkRequest +from .validate_multiple_switches_request import ValidateMultipleSwitchesRequest +from .validate_multiple_switches_response import ValidateMultipleSwitchesResponse +from .switches_list import SwitchesList +from .create_switch_info import CreateSwitchInfo +from .switch_info import SwitchInfo +from .update_switch_info import UpdateSwitchInfo +from .validate_multiple_wireless_points_request import ( + ValidateMultipleWirelessPointsRequest, +) +from .validate_multiple_wireless_points_response import ( + ValidateMultipleWirelessPointsResponse, +) +from .wireless_points_list import WirelessPointsList +from .create_wireless_point import CreateWirelessPoint +from .wireless_point_info import WirelessPointInfo +from .update_wireless_point import UpdateWirelessPoint +from .list_devices_automatic_location_updates import ListDevicesAutomaticLocationUpdates +from .assign_multiple_devices_automatic_location_updates import ( + AssignMultipleDevicesAutomaticLocationUpdates, +) +from .create_multiple_switches_request import CreateMultipleSwitchesRequest +from .create_multiple_switches_response import CreateMultipleSwitchesResponse +from .update_multiple_wireless_points_request import UpdateMultipleWirelessPointsRequest +from .update_multiple_wireless_points_response import ( + UpdateMultipleWirelessPointsResponse, +) +from .update_multiple_switches_request import UpdateMultipleSwitchesRequest +from .update_multiple_switches_response import UpdateMultipleSwitchesResponse +from .account_locked_setting_response import AccountLockedSettingResponse +from .meeting_response_resource import MeetingResponseResource +from .list_meeting_recordings_response import ListMeetingRecordingsResponse +from .create_user_meeting_profile_image_request import ( + CreateUserMeetingProfileImageRequest, +) +from .meetings_resource import MeetingsResource +from .meeting_request_resource import MeetingRequestResource +from .meeting_user_settings_response import MeetingUserSettingsResponse +from .public_meeting_invitation_response import PublicMeetingInvitationResponse +from .meeting_service_info_resource import MeetingServiceInfoResource +from .meeting_service_info_request import MeetingServiceInfoRequest +from .assisted_users_resource import AssistedUsersResource +from .assistants_resource import AssistantsResource +from .extension_with_roles_collection_resource import ( + ExtensionWithRolesCollectionResource, +) +from .roles_collection_resource import RolesCollectionResource +from .role_resource import RoleResource +from .default_user_role import DefaultUserRole +from .default_user_role_request import DefaultUserRoleRequest +from .bulk_role_assign_resource import BulkRoleAssignResource +from .assigned_roles_resource import AssignedRolesResource +from .call_monitoring_groups import CallMonitoringGroups +from .create_call_monitoring_group_request import CreateCallMonitoringGroupRequest +from .call_monitoring_group import CallMonitoringGroup +from .call_monitoring_bulk_assign import CallMonitoringBulkAssign +from .call_monitoring_group_member_list import CallMonitoringGroupMemberList +from .account_history_search_public_request import AccountHistorySearchPublicRequest +from .account_history_search_public_response import AccountHistorySearchPublicResponse +from .create_message_store_report_request import CreateMessageStoreReportRequest +from .message_store_report import MessageStoreReport +from .message_store_report_archive import MessageStoreReportArchive +from .directory_resource import DirectoryResource +from .list_directory_entries_type import ListDirectoryEntriesType +from .type_group import TypeGroup +from .per_page import PerPage +from .contact_resource import ContactResource +from .search_directory_entries_request import SearchDirectoryEntriesRequest +from .search_directory_extension_type import SearchDirectoryExtensionType +from .federation_resource import FederationResource +from .federation_types import FederationTypes +from .paging_only_group_users import PagingOnlyGroupUsers +from .edit_paging_group_request import EditPagingGroupRequest +from .paging_only_group_devices import PagingOnlyGroupDevices +from .sites_list import SitesList +from .create_site_request import CreateSiteRequest +from .site_info import SiteInfo +from .site_update_request import SiteUpdateRequest +from .site_members_bulk_update import SiteMembersBulkUpdate +from .site_members_list import SiteMembersList +from .site_ivr_settings import SiteIvrSettings +from .site_ivr_settings_update import SiteIvrSettingsUpdate +from .user_video_configuration import UserVideoConfiguration +from .create_internal_text_message_request import CreateInternalTextMessageRequest +from .get_internal_text_message_info_response import GetInternalTextMessageInfoResponse +from .auth_profile_resource import AuthProfileResource +from .auth_profile_check_resource import AuthProfileCheckResource +from .permission_collection_resource import PermissionCollectionResource +from .permission_resource import PermissionResource +from .permission_category_collection_resource import ( + PermissionCategoryCollectionResource, +) +from .permission_category_resource import PermissionCategoryResource +from .get_extension_forwarding_number_list_response import ( + GetExtensionForwardingNumberListResponse, +) +from .create_forwarding_number_request import CreateForwardingNumberRequest +from .forwarding_number_info import ForwardingNumberInfo +from .delete_forwarding_numbers_request import DeleteForwardingNumbersRequest +from .forwarding_number_resource import ForwardingNumberResource +from .update_forwarding_number_request import UpdateForwardingNumberRequest +from .create_fax_message_request import CreateFaxMessageRequest +from .fax_response import FaxResponse +from .list_fax_cover_pages_response import ListFaxCoverPagesResponse +from .make_ring_out_request import MakeRingOutRequest +from .get_ring_out_status_response import GetRingOutStatusResponse +from .business_site_collection_resource import BusinessSiteCollectionResource +from .business_site_collection_request import BusinessSiteCollectionRequest +from .create_sms_message import CreateSmsMessage +from .get_sms_message_info_response import GetSmsMessageInfoResponse +from .create_mms_message import CreateMmsMessage +from .feature_list import FeatureList +from .caller_blocking_settings import CallerBlockingSettings +from .caller_blocking_settings_update import CallerBlockingSettingsUpdate +from .blocked_allowed_phone_numbers_list import BlockedAllowedPhoneNumbersList +from .blocked_number_status_enum import BlockedNumberStatusEnum +from .add_blocked_allowed_phone_number import AddBlockedAllowedPhoneNumber +from .blocked_allowed_phone_number_info import BlockedAllowedPhoneNumberInfo +from .create_subscription_request import CreateSubscriptionRequest +from .get_state_list_response import GetStateListResponse +from .get_state_info_response import GetStateInfoResponse +from .get_location_list_response import GetLocationListResponse +from .list_locations_order_by import ListLocationsOrderBy +from .language_list import LanguageList +from .language_info import LanguageInfo +from .get_timezone_list_response import GetTimezoneListResponse +from .get_timezone_info_response import GetTimezoneInfoResponse +from .country_info_dictionary_model import CountryInfoDictionaryModel +from .create_sip_registration_request import CreateSipRegistrationRequest +from .create_sip_registration_response import CreateSipRegistrationResponse +from .job_status_response import JobStatusResponse +from .summary_input import SummaryInput +from .cai_async_api_response import CaiAsyncApiResponse +from .punctuate_input import PunctuateInput +from .list_enrolled_speakers import ListEnrolledSpeakers +from .enrollment_input import EnrollmentInput +from .enrollment_status import EnrollmentStatus +from .enrollment_patch_input import EnrollmentPatchInput +from .asr_input import AsrInput +from .diarize_input import DiarizeInput +from .identify_input import IdentifyInput +from .interaction_input import InteractionInput +from .content_list import ContentList +from .content_status import ContentStatus +from .soc_msg_creation_time_order import SocMsgCreationTimeOrder +from .create_content_request import CreateContentRequest +from .content_model import ContentModel +from .identities_list import IdentitiesList +from .identity_model import IdentityModel +from .scim_schema_search_response import ScimSchemaSearchResponse +from .scim_schema_response import ScimSchemaResponse +from .scim_user_search_response import ScimUserSearchResponse +from .scim_user import ScimUser +from .scim_user_response import ScimUserResponse +from .scim_search_request import ScimSearchRequest +from .scim_user_patch import ScimUserPatch +from .scim_provider_config import ScimProviderConfig +from .scim_resource_type_search_response import ScimResourceTypeSearchResponse +from .scim_resource_type_response import ScimResourceTypeResponse +from .aggregation_request import AggregationRequest +from .aggregation_response import AggregationResponse +from .timeline_request import TimelineRequest +from .timeline_response import TimelineResponse +from .interval import Interval +from .tm_task_info import TmTaskInfo +from .tm_update_task_request import TmUpdateTaskRequest +from .tm_task_list import TmTaskList +from .tm_complete_task_request import TmCompleteTaskRequest +from .list_chat_tasks_new_status import ListChatTasksNewStatus +from .assignment_status import AssignmentStatus +from .assignee_status import AssigneeStatus +from .tm_create_task_request import TmCreateTaskRequest +from .tm_event_list import TmEventList +from .tm_create_event_request import TmCreateEventRequest +from .tm_event_info import TmEventInfo +from .tm_chat_list_without_navigation import TmChatListWithoutNavigation +from .list_recent_chats_new_type import ListRecentChatsNewType +from .tm_chat_list import TmChatList +from .list_glip_chats_new_type import ListGlipChatsNewType +from .tm_chat_info import TmChatInfo +from .create_glip_file_new_request import CreateGlipFileNewRequest +from .tm_add_file_request import TmAddFileRequest +from .tm_posts_list import TmPostsList +from .tm_create_post_request import TmCreatePostRequest +from .tm_post_info import TmPostInfo +from .tm_update_post_request import TmUpdatePostRequest +from .adaptive_card_request import AdaptiveCardRequest +from .adaptive_card_short_info import AdaptiveCardShortInfo +from .adaptive_card_info import AdaptiveCardInfo +from .tm_note_list import TmNoteList +from .list_chat_notes_new_status import ListChatNotesNewStatus +from .tm_create_note_request import TmCreateNoteRequest +from .tm_note_info import TmNoteInfo +from .tm_note_with_body_info import TmNoteWithBodyInfo +from .tm_webhook_list import TmWebhookList +from .tm_webhook_info import TmWebhookInfo +from .tm_company_info import TmCompanyInfo +from .tm_person_info import TmPersonInfo +from .tm_conversation_list import TmConversationList +from .create_conversation_request import CreateConversationRequest +from .tm_conversation_info import TmConversationInfo +from .data_export_task_list import DataExportTaskList +from .list_data_export_tasks_new_status import ListDataExportTasksNewStatus +from .create_data_export_task_request import CreateDataExportTaskRequest +from .data_export_task import DataExportTask +from .everyone_team_info import EveryoneTeamInfo +from .update_everyone_team_request import UpdateEveryoneTeamRequest +from .tm_team_list import TmTeamList +from .tm_create_team_request import TmCreateTeamRequest +from .tm_team_info import TmTeamInfo +from .tm_update_team_request import TmUpdateTeamRequest +from .tm_remove_team_members_request import TmRemoveTeamMembersRequest +from .tm_add_team_members_request import TmAddTeamMembersRequest +from .disabled_filter_info import DisabledFilterInfo +from .notification_delivery_mode import NotificationDeliveryMode +from .webhook_delivery_mode import WebhookDeliveryMode +from .mobile_delivery_mode import MobileDeliveryMode +from .pub_nub_delivery_mode import PubNubDeliveryMode +from .web_socket_delivery_mode import WebSocketDeliveryMode +from .webhook_delivery_mode_request import WebhookDeliveryModeRequest +from .webinar_settings_model import WebinarSettingsModel +from .host_model import HostModel +from .rcw_domain_user_model import RcwDomainUserModel +from .session_runtime_status_model import SessionRuntimeStatusModel +from .recording_extended_model import RecordingExtendedModel +from .session_livestream_minimal_model import SessionLivestreamMinimalModel +from .session_livestream_status_model import SessionLivestreamStatusModel +from .participant_extended_model import ParticipantExtendedModel +from .rcw_paging_model import RcwPagingModel +from .session_global_resource import SessionGlobalResource +from .webinar_ref_model import WebinarRefModel +from .recording_model import RecordingModel +from .recording_admin_model import RecordingAdminModel +from .session_ref_admin_model import SessionRefAdminModel +from .recording_item_model import RecordingItemModel +from .session_ref_model import SessionRefModel +from .rcw_paging_forward_model import RcwPagingForwardModel +from .reg_answer_model import RegAnswerModel +from .fixed_answer_model import FixedAnswerModel +from .variable_answer_model import VariableAnswerModel +from .wcs_webinar_settings_model import WcsWebinarSettingsModel +from .wcs_host_model import WcsHostModel +from .rcw_linked_user_model import RcwLinkedUserModel +from .session_global_list_entry import SessionGlobalListEntry +from .wcs_webinar_ref_model import WcsWebinarRefModel +from .rcw_invitee_type_enum import RcwInviteeTypeEnum +from .add_invitee_request import AddInviteeRequest +from .rcw_resource_id_model import RcwResourceIdModel +from .answering_rule_query_request import AnsweringRuleQueryRequest +from .custom_greeting_answering_rule_info import CustomGreetingAnsweringRuleInfo +from .custom_company_greeting_language_info import CustomCompanyGreetingLanguageInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel +from .greeting_type_enum import GreetingTypeEnum +from .page_navigation_uri import PageNavigationUri +from .batch_provision_users_request_item import BatchProvisionUsersRequestItem +from .device_definition import DeviceDefinition +from .postal_address import PostalAddress +from .phone_number_definition_toll_type import PhoneNumberDefinitionTollType +from .phone_number_definition_preferred_area_code import ( + PhoneNumberDefinitionPreferredAreaCode, +) +from .phone_number_definition_direct_number_with_reservation_id import ( + PhoneNumberDefinitionDirectNumberWithReservationId, +) +from .phone_number_definition_number_id import PhoneNumberDefinitionNumberId +from .batch_provision_users_success_item import BatchProvisionUsersSuccessItem +from .batch_provision_error_item import BatchProvisionErrorItem +from .api_error_with_parameter import ApiErrorWithParameter +from .bulk_operation_extension_reference import BulkOperationExtensionReference +from .get_extension_account_info import GetExtensionAccountInfo +from .contact_info import ContactInfo +from .cost_center_info import CostCenterInfo +from .custom_field_info import CustomFieldInfo +from .department_info import DepartmentInfo +from .extension_permissions import ExtensionPermissions +from .profile_image_info import ProfileImageInfo +from .reference_info import ReferenceInfo +from .roles import Roles +from .regional_settings import RegionalSettings +from .extension_service_feature_info import ExtensionServiceFeatureInfo +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .extension_status_info import ExtensionStatusInfo +from .call_queue_extension_info import CallQueueExtensionInfo +from .provisioning_site_info import ProvisioningSiteInfo +from .assigned_country_info import AssignedCountryInfo +from .contact_business_address_info import ContactBusinessAddressInfo +from .pronounced_name_info import PronouncedNameInfo +from .pronounced_name_prompt_info import PronouncedNamePromptInfo +from .permission_info_admin import PermissionInfoAdmin +from .permission_info_int import PermissionInfoInt +from .profile_image_info_uri import ProfileImageInfoUri +from .country_info_short_model import CountryInfoShortModel +from .timezone_info import TimezoneInfo +from .regional_language_info import RegionalLanguageInfo +from .greeting_language_info import GreetingLanguageInfo +from .formatting_locale_info import FormattingLocaleInfo +from .contact_info_update_request import ContactInfoUpdateRequest +from .extension_regional_setting_request import ExtensionRegionalSettingRequest +from .call_queue_info_request import CallQueueInfoRequest +from .user_transition_info import UserTransitionInfo +from .site_reference import SiteReference +from .extension_country_info_request import ExtensionCountryInfoRequest +from .extension_timezone_info_request import ExtensionTimezoneInfoRequest +from .extension_language_info_request import ExtensionLanguageInfoRequest +from .extension_greeting_language_info_request import ( + ExtensionGreetingLanguageInfoRequest, +) +from .extension_formatting_locale_info_request import ( + ExtensionFormattingLocaleInfoRequest, +) +from .extension_currency_info_request import ExtensionCurrencyInfoRequest +from .grant_info import GrantInfo +from .extension_info_grants import ExtensionInfoGrants +from .phone_number_info_conferencing import PhoneNumberInfoConferencing +from .conference_phone_number_info import ConferencePhoneNumberInfo +from .caller_id_by_device import CallerIdByDevice +from .caller_id_by_feature import CallerIdByFeature +from .caller_id_device_info import CallerIdDeviceInfo +from .caller_id_by_device_info import CallerIdByDeviceInfo +from .caller_id_phone_info import CallerIdPhoneInfo +from .caller_id_by_feature_info import CallerIdByFeatureInfo +from .caller_id_by_device_request import CallerIdByDeviceRequest +from .caller_id_by_feature_request import CallerIdByFeatureRequest +from .caller_id_device_info_request import CallerIdDeviceInfoRequest +from .caller_id_by_device_info_request import CallerIdByDeviceInfoRequest +from .caller_id_phone_info_request import CallerIdPhoneInfoRequest +from .caller_id_by_feature_info_request import CallerIdByFeatureInfoRequest +from .email_recipient_info import EmailRecipientInfo +from .voicemails_info import VoicemailsInfo +from .inbound_faxes_info import InboundFaxesInfo +from .outbound_faxes_info import OutboundFaxesInfo +from .inbound_texts_info import InboundTextsInfo +from .missed_calls_info import MissedCallsInfo +from .sync_info_messages import SyncInfoMessages +from .message_attachment_info import MessageAttachmentInfo +from .conversation_info import ConversationInfo +from .fax_resolution_enum import FaxResolutionEnum +from .message_store_caller_info_response_from import MessageStoreCallerInfoResponseFrom +from .message_status_enum import MessageStatusEnum +from .message_priority_enum import MessagePriorityEnum +from .message_store_caller_info_response_to import MessageStoreCallerInfoResponseTo +from .message_attachment_type_enum import MessageAttachmentTypeEnum +from .fax_error_code_enum import FaxErrorCodeEnum +from .messaging_navigation_info import MessagingNavigationInfo +from .messaging_paging_info import MessagingPagingInfo +from .messaging_navigation_info_uri import MessagingNavigationInfoUri +from .ivr_menu_list_info import IvrMenuListInfo +from .ivr_menu_site_info import IvrMenuSiteInfo +from .ivr_menu_prompt_info import IvrMenuPromptInfo +from .ivr_menu_actions_info import IvrMenuActionsInfo +from .audio_prompt_info import AudioPromptInfo +from .prompt_language_info import PromptLanguageInfo +from .ivr_menu_extension_info import IvrMenuExtensionInfo +from .bridge_pins import BridgePins +from .bridge_request_security import BridgeRequestSecurity +from .bridge_preferences import BridgePreferences +from .bridge_pstn_pins import BridgePstnPins +from .bridge_join_preferences import BridgeJoinPreferences +from .recordings_preferences import RecordingsPreferences +from .bridge_join_pstn_preferences import BridgeJoinPstnPreferences +from .everyone_can_control import EveryoneCanControl +from .auto_shared import AutoShared +from .user import User +from .bridge_pins_with_aliases import BridgePinsWithAliases +from .bridge_response_security import BridgeResponseSecurity +from .bridge_discovery import BridgeDiscovery +from .bridge_response_security_password import BridgeResponseSecurityPassword +from .bridge_pins_without_pstn import BridgePinsWithoutPstn +from .cloud_recording import CloudRecording +from .paging import Paging +from .host import Host +from .delegate import Delegate +from .participant import Participant +from .recording import Recording +from .account_status_info import AccountStatusInfo +from .service_info_v2 import ServiceInfoV2 +from .system_user_contact_info import SystemUserContactInfo +from .service_info_package import ServiceInfoPackage +from .service_info_brand import ServiceInfoBrand +from .service_info_country_short_model import ServiceInfoCountryShortModel +from .service_info_u_brand import ServiceInfoUBrand +from .service_info_plan import ServiceInfoPlan +from .account_operator_info import AccountOperatorInfo +from .service_info import ServiceInfo +from .setup_wizard_state_enum import SetupWizardStateEnum +from .signup_info_resource import SignupInfoResource +from .account_regional_settings import AccountRegionalSettings +from .account_limits import AccountLimits +from .billing_plan_info import BillingPlanInfo +from .brand_info import BrandInfo +from .service_plan_info import ServicePlanInfo +from .target_service_plan_info import TargetServicePlanInfo +from .u_brand_info import UBrandInfo +from .currency_info import CurrencyInfo +from .service_feature_info import ServiceFeatureInfo +from .package_info import PackageInfo +from .business_address_info import BusinessAddressInfo +from .site_basic_info import SiteBasicInfo +from .bulk_add_devices_item import BulkAddDevicesItem +from .bulk_add_devices_success_item import BulkAddDevicesSuccessItem +from .bulk_add_devices_error_item import BulkAddDevicesErrorItem +from .model_info import ModelInfo +from .extension_info_int_id import ExtensionInfoIntId +from .device_emergency_info import DeviceEmergencyInfo +from .emergency_service_address_resource import EmergencyServiceAddressResource +from .phone_lines_info import PhoneLinesInfo +from .shipping_info import ShippingInfo +from .device_site_info import DeviceSiteInfo +from .line_pooling_enum import LinePoolingEnum +from .billing_statement_info import BillingStatementInfo +from .addon_info import AddonInfo +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .device_emergency_location_info import DeviceEmergencyLocationInfo +from .phone_number_info_int_id import PhoneNumberInfoIntId +from .emergency_address import EmergencyAddress +from .phone_number_country_info import PhoneNumberCountryInfo +from .device_provisioning_extension_info import DeviceProvisioningExtensionInfo +from .shipping_status import ShippingStatus +from .shipping_method_info import ShippingMethodInfo +from .shipping_address_info import ShippingAddressInfo +from .billing_statement_charges import BillingStatementCharges +from .billing_statement_fees import BillingStatementFees +from .emergency_service_address_resource_request import ( + EmergencyServiceAddressResourceRequest, +) +from .device_update_extension_info import DeviceUpdateExtensionInfo +from .device_update_phone_lines_info import DeviceUpdatePhoneLinesInfo +from .update_device_phone_info import UpdateDevicePhoneInfo +from .outbound_proxy_info import OutboundProxyInfo +from .delete_phone_numbers_request_item import DeletePhoneNumbersRequestItem +from .delete_phone_numbers_response_item import DeletePhoneNumbersResponseItem +from .add_phone_number_request_item import AddPhoneNumberRequestItem +from .add_phone_numbers_response_item import AddPhoneNumbersResponseItem +from .user_phone_number_info import UserPhoneNumberInfo +from .country_info_basic_model import CountryInfoBasicModel +from .contact_center_provider import ContactCenterProvider +from .user_phone_number_extension_info import UserPhoneNumberExtensionInfo +from .extension_info import ExtensionInfo +from .temporary_number_info import TemporaryNumberInfo +from .get_country_info_number_parser import GetCountryInfoNumberParser +from .phone_number_info_number_parser import PhoneNumberInfoNumberParser +from .company_business_hours_schedule_info import CompanyBusinessHoursScheduleInfo +from .weekly_schedule_info import WeeklyScheduleInfo +from .time_interval import TimeInterval +from .schedule_info_user_business_hours import ScheduleInfoUserBusinessHours +from .user_business_hours_schedule_info import UserBusinessHoursScheduleInfo +from .on_demand_resource import OnDemandResource +from .automatic_recording_resource import AutomaticRecordingResource +from .greeting_resource import GreetingResource +from .call_recording_custom_greeting import CallRecordingCustomGreeting +from .call_recording_custom_greeting_data import CallRecordingCustomGreetingData +from .call_recording_custom_greeting_language import CallRecordingCustomGreetingLanguage +from .call_recording_extension_resource import CallRecordingExtensionResource +from .call_recording_extension_info import CallRecordingExtensionInfo +from .make_call_out_caller_info_request_from import MakeCallOutCallerInfoRequestFrom +from .make_call_out_caller_info_request_to import MakeCallOutCallerInfoRequestTo +from .origin_info import OriginInfo +from .call_status_info import CallStatusInfo +from .park_info import ParkInfo +from .party_info import PartyInfo +from .owner_info import OwnerInfo +from .recording_info import RecordingInfo +from .peer_info import PeerInfo +from .party_update_info import PartyUpdateInfo +from .reply_with_pattern import ReplyWithPattern +from .site import Site +from .extension_info_call_log import ExtensionInfoCallLog +from .call_log_from_party import CallLogFromParty +from .call_log_to_party import CallLogToParty +from .call_log_record_message import CallLogRecordMessage +from .call_log_delegate_info import CallLogDelegateInfo +from .delegation_type_enum import DelegationTypeEnum +from .call_action_enum import CallActionEnum +from .call_result_enum import CallResultEnum +from .call_result_reason_enum import CallResultReasonEnum +from .call_log_recording_info import CallLogRecordingInfo +from .billing_info import BillingInfo +from .call_internal_type_enum import CallInternalTypeEnum +from .call_log_record_leg_info import CallLogRecordLegInfo +from .call_log_record_device_info import CallLogRecordDeviceInfo +from .call_leg_type_enum import CallLegTypeEnum +from .call_log_sync_info import CallLogSyncInfo +from .call_log_sync_type_enum import CallLogSyncTypeEnum +from .extension_bulk_update_info import ExtensionBulkUpdateInfo +from .extension_bulk_update_task_result import ExtensionBulkUpdateTaskResult +from .extension_update_short_result import ExtensionUpdateShortResult +from .error_entity import ErrorEntity +from .get_extension_list_info_response import GetExtensionListInfoResponse +from .contact_info_creation_request import ContactInfoCreationRequest +from .operator_info import OperatorInfo +from .message_status_counts import MessageStatusCounts +from .message_list_message_response import MessageListMessageResponse +from .paging_resource import PagingResource +from .sms_status_enum import SmsStatusEnum +from .opt_out_response import OptOutResponse +from .opt_out_bulk_assign_failed_entry import OptOutBulkAssignFailedEntry +from .rejected_recipient_response_resource import RejectedRecipientResponseResource +from .message_create_request import MessageCreateRequest +from .list_company_answering_rule_info import ListCompanyAnsweringRuleInfo +from .called_number_info import CalledNumberInfo +from .company_answering_rule_extension_info import CompanyAnsweringRuleExtensionInfo +from .company_answering_rule_callers_info_request import ( + CompanyAnsweringRuleCallersInfoRequest, +) +from .company_answering_rule_called_number_info import ( + CompanyAnsweringRuleCalledNumberInfo, +) +from .company_answering_rule_schedule_info_request import ( + CompanyAnsweringRuleScheduleInfoRequest, +) +from .company_answering_rule_extension_info_request import ( + CompanyAnsweringRuleExtensionInfoRequest, +) +from .greeting_info import GreetingInfo +from .company_answering_rule_weekly_schedule_info_request import ( + CompanyAnsweringRuleWeeklyScheduleInfoRequest, +) +from .ranges_info import RangesInfo +from .company_answering_rule_time_interval_request import ( + CompanyAnsweringRuleTimeIntervalRequest, +) +from .preset_info import PresetInfo +from .custom_greeting_info_request import CustomGreetingInfoRequest +from .company_answering_rule_called_number_info_request import ( + CompanyAnsweringRuleCalledNumberInfoRequest, +) +from .company_answering_rule_schedule_info import CompanyAnsweringRuleScheduleInfo +from .ivr_call_handling_action_enum import IvrCallHandlingActionEnum +from .extension_short_info_resource import ExtensionShortInfoResource +from .forward_all_calls_reason import ForwardAllCallsReason +from .schedule_info import ScheduleInfo +from .callers_info import CallersInfo +from .forwarding_info import ForwardingInfo +from .unconditional_forwarding_info import UnconditionalForwardingInfo +from .queue_info import QueueInfo +from .transferred_extension_info import TransferredExtensionInfo +from .voicemail_info import VoicemailInfo +from .shared_lines_info import SharedLinesInfo +from .missed_call_info import MissedCallInfo +from .forwarding_rule_info import ForwardingRuleInfo +from .create_answering_rule_forwarding_number_info import ( + CreateAnsweringRuleForwardingNumberInfo, +) +from .transfer_info import TransferInfo +from .fixed_order_agents import FixedOrderAgents +from .transfer_extension_info import TransferExtensionInfo +from .fixed_order_agents_extension_info import FixedOrderAgentsExtensionInfo +from .transferred_extension import TransferredExtension +from .recipient_info import RecipientInfo +from .missed_call_extension_info import MissedCallExtensionInfo +from .missed_call_extension_info_external_number import ( + MissedCallExtensionInfoExternalNumber, +) +from .callers_info_request import CallersInfoRequest +from .forwarding_info_create_rule_request import ForwardingInfoCreateRuleRequest +from .forwarding_rule_create_request import ForwardingRuleCreateRequest +from .forwarding_number_info_rules_create_rule_request import ( + ForwardingNumberInfoRulesCreateRuleRequest, +) +from .address_book_bulk_upload_resource import AddressBookBulkUploadResource +from .address_book_bulk_contact_resource import AddressBookBulkContactResource +from .address_book_bulk_contact_address_info import AddressBookBulkContactAddressInfo +from .address_book_bulk_upload_task_result import AddressBookBulkUploadTaskResult +from .favorite_contact_resource import FavoriteContactResource +from .user_contacts_navigation_info import UserContactsNavigationInfo +from .user_contacts_paging_info import UserContactsPagingInfo +from .user_contacts_groups_info import UserContactsGroupsInfo +from .contact_address_info import ContactAddressInfo +from .user_contacts_navigation_info_uri import UserContactsNavigationInfoUri +from .sync_info import SyncInfo +from .call_queue_info import CallQueueInfo +from .call_queue_service_level_settings import CallQueueServiceLevelSettings +from .call_queue_member_info import CallQueueMemberInfo +from .bulk_assign_item import BulkAssignItem +from .queue_short_info_resource import QueueShortInfoResource +from .call_queue_id_resource import CallQueueIdResource +from .call_queue_member_presence import CallQueueMemberPresence +from .call_queue_member import CallQueueMember +from .site_resource import SiteResource +from .call_queue_update_member_presence import CallQueueUpdateMemberPresence +from .call_queue_member_id import CallQueueMemberId +from .presence_navigation_info import PresenceNavigationInfo +from .presence_paging_info import PresencePagingInfo +from .get_presence_extension_info import GetPresenceExtensionInfo +from .active_call_info import ActiveCallInfo +from .detailed_call_info import DetailedCallInfo +from .call_info_cq import CallInfoCq +from .primary_cq_info import PrimaryCqInfo +from .additional_cq_info import AdditionalCqInfo +from .presence_navigation_info_uri import PresenceNavigationInfoUri +from .extension_call_queue_presence import ExtensionCallQueuePresence +from .presence_call_queue_info import PresenceCallQueueInfo +from .extension_call_queue_update_presence import ExtensionCallQueueUpdatePresence +from .call_queue_id import CallQueueId +from .unified_presence_glip import UnifiedPresenceGlip +from .unified_presence_telephony import UnifiedPresenceTelephony +from .unified_presence_meeting import UnifiedPresenceMeeting +from .update_unified_presence_glip import UpdateUnifiedPresenceGlip +from .update_unified_presence_telephony import UpdateUnifiedPresenceTelephony +from .emergency_locations_paging import EmergencyLocationsPaging +from .common_emergency_location_address_info import CommonEmergencyLocationAddressInfo +from .short_site_info import ShortSiteInfo +from .address_status import AddressStatus +from .usage_status import UsageStatus +from .sync_status import SyncStatus +from .emergency_address_type import EmergencyAddressType +from .visibility import Visibility +from .location_owner_info import LocationOwnerInfo +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) +from .location_deletion_info import LocationDeletionInfo +from .location_deletion_error_info import LocationDeletionErrorInfo +from .task_result_info import TaskResultInfo +from .task_result_record import TaskResultRecord +from .task_result_record_errors_info import TaskResultRecordErrorsInfo +from .automatic_location_updates_user_info import AutomaticLocationUpdatesUserInfo +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo +from .emergency_address_auto_update_site_info import EmergencyAddressAutoUpdateSiteInfo +from .emergency_address_info import EmergencyAddressInfo +from .emergency_location_info import EmergencyLocationInfo +from .bulk_task_info import BulkTaskInfo +from .public_ip_range_info import PublicIpRangeInfo +from .private_ip_range_info import PrivateIpRangeInfo +from .private_ip_range_info_request import PrivateIpRangeInfoRequest +from .location_updates_emergency_address_info_request import ( + LocationUpdatesEmergencyAddressInfoRequest, +) +from .erl_location_info import ErlLocationInfo +from .switch_site_info import SwitchSiteInfo +from .switch_validated import SwitchValidated +from .validation_error import ValidationError +from .wireless_point_validated import WirelessPointValidated +from .automatic_location_updates_device_info import AutomaticLocationUpdatesDeviceInfo +from .automatic_location_updates_device_type import AutomaticLocationUpdatesDeviceType +from .automatic_location_updates_model_info import AutomaticLocationUpdatesModelInfo +from .automatic_location_updates_phone_line import AutomaticLocationUpdatesPhoneLine +from .automatic_location_updates_model_feature import ( + AutomaticLocationUpdatesModelFeature, +) +from .automatic_location_updates_phone_line_type import ( + AutomaticLocationUpdatesPhoneLineType, +) +from .automatic_location_updates_phone_number_info import ( + AutomaticLocationUpdatesPhoneNumberInfo, +) +from .schedule_meeting_response import ScheduleMeetingResponse +from .account_lock_setting_record_response import AccountLockSettingRecordResponse +from .meeting_links import MeetingLinks +from .meeting_schedule_resource import MeetingScheduleResource +from .host_info_request import HostInfoRequest +from .recurrence_info import RecurrenceInfo +from .meeting_occurrence_info import MeetingOccurrenceInfo +from .meetings_timezone_resource import MeetingsTimezoneResource +from .meeting_frequency import MeetingFrequency +from .week_day import WeekDay +from .monthly_week import MonthlyWeek +from .meeting_recordings import MeetingRecordings +from .meeting_recordings_paging_info import MeetingRecordingsPagingInfo +from .meeting_recordings_navigation_info import MeetingRecordingsNavigationInfo +from .meeting_info import MeetingInfo +from .meeting_recording_info import MeetingRecordingInfo +from .meeting_recordings_navigation_info_uri import MeetingRecordingsNavigationInfoUri +from .meetings_paging_info import MeetingsPagingInfo +from .meetings_navigation_info import MeetingsNavigationInfo +from .meetings_navigation_info_uri import MeetingsNavigationInfoUri +from .user_meeting_recording_setting import UserMeetingRecordingSetting +from .schedule_user_meeting_info import ScheduleUserMeetingInfo +from .telephony_user_meeting_settings import TelephonyUserMeetingSettings +from .user_in_meeting_response import UserInMeetingResponse +from .global_dial_in_country_response import GlobalDialInCountryResponse +from .meeting_external_user_info_resource import MeetingExternalUserInfoResource +from .dial_in_number_resource import DialInNumberResource +from .meetings_country_resource import MeetingsCountryResource +from .assisted_user_resource import AssistedUserResource +from .assistant_resource import AssistantResource +from .extension_with_roles_resource import ExtensionWithRolesResource +from .assigned_role_resource import AssignedRoleResource +from .permission_id_resource import PermissionIdResource +from .permissions_capabilities import PermissionsCapabilities +from .call_monitoring_extension_info import CallMonitoringExtensionInfo +from .call_monitoring_group_member_info import CallMonitoringGroupMemberInfo +from .account_history_public_record import AccountHistoryPublicRecord +from .account_history_paging import AccountHistoryPaging +from .account_history_record_public_initiator import AccountHistoryRecordPublicInitiator +from .account_history_record_target import AccountHistoryRecordTarget +from .account_history_record_public_details import AccountHistoryRecordPublicDetails +from .account_history_record_details_parameters import ( + AccountHistoryRecordDetailsParameters, +) +from .pic_message_type_enum import PicMessageTypeEnum +from .archive_info import ArchiveInfo +from .account_resource import AccountResource +from .phone_number_resource import PhoneNumberResource +from .account_directory_profile_image_resource import ( + AccountDirectoryProfileImageResource, +) +from .business_site_resource import BusinessSiteResource +from .directory_role_resource import DirectoryRoleResource +from .call_queue_resource import CallQueueResource +from .custom_field_resource import CustomFieldResource +from .group_resource import GroupResource +from .cost_center_resource import CostCenterResource +from .external_integration_resource import ExternalIntegrationResource +from .contact_sub_type_enum import ContactSubTypeEnum +from .search_directory_contact_type import SearchDirectoryContactType +from .order_by import OrderBy +from .federated_account_resource import FederatedAccountResource +from .federation_type import FederationType +from .paging_group_extension_info import PagingGroupExtensionInfo +from .paging_device_info import PagingDeviceInfo +from .site_operator_reference import SiteOperatorReference +from .site_member_info import SiteMemberInfo +from .site_ivr_top_menu import SiteIvrTopMenu +from .site_ivr_actions import SiteIvrActions +from .site_ivr_actions_extension_info import SiteIvrActionsExtensionInfo +from .site_ivr_top_menu_update import SiteIvrTopMenuUpdate +from .site_ivr_actions_update import SiteIvrActionsUpdate +from .site_ivr_actions_extension_info_update import SiteIvrActionsExtensionInfoUpdate +from .pager_caller_info_request import PagerCallerInfoRequest +from .active_permission_resource import ActivePermissionResource +from .role_id_resource import RoleIdResource +from .permission_category_id_resource import PermissionCategoryIdResource +from .create_forwarding_number_device_info import CreateForwardingNumberDeviceInfo +from .forwarding_number_id import ForwardingNumberId +from .fax_request_to import FaxRequestTo +from .fax_response_to import FaxResponseTo +from .message_attachment_info_int_id import MessageAttachmentInfoIntId +from .fax_cover_page_info import FaxCoverPageInfo +from .make_ring_out_caller_info_request_from import MakeRingOutCallerInfoRequestFrom +from .make_ring_out_caller_info_request_to import MakeRingOutCallerInfoRequestTo +from .make_ring_out_caller_id_info import MakeRingOutCallerIdInfo +from .make_ring_out_country_info import MakeRingOutCountryInfo +from .ring_out_status_info import RingOutStatusInfo +from .roles_business_site_resource import RolesBusinessSiteResource +from .basic_extension_info_resource import BasicExtensionInfoResource +from .roles_regional_settings_resource import RolesRegionalSettingsResource +from .contact_address_info_resource import ContactAddressInfoResource +from .roles_timezone_resource import RolesTimezoneResource +from .roles_country_resource import RolesCountryResource +from .roles_language_resource import RolesLanguageResource +from .currency_resource import CurrencyResource +from .message_store_caller_info_request import MessageStoreCallerInfoRequest +from .sms_request_country_info import SmsRequestCountryInfo +from .feature_info import FeatureInfo +from .params_info import ParamsInfo +from .reason_info import ReasonInfo +from .blocked_caller_greeting_info import BlockedCallerGreetingInfo +from .notification_delivery_mode_request import NotificationDeliveryModeRequest +from .mobile_delivery_mode_request import MobileDeliveryModeRequest +from .pub_nub_delivery_mode_request import PubNubDeliveryModeRequest +from .country_info_minimal_model import CountryInfoMinimalModel +from .location_info import LocationInfo +from .location_state_info import LocationStateInfo +from .device_info_request import DeviceInfoRequest +from .sip_info_request import SipInfoRequest +from .sip_registration_device_info import SipRegistrationDeviceInfo +from .sip_info_response import SipInfoResponse +from .sip_flags_response import SipFlagsResponse +from .device_model_info import DeviceModelInfo +from .device_extension_info import DeviceExtensionInfo +from .device_emergency_service_address_resource_default import ( + DeviceEmergencyServiceAddressResourceDefault, +) +from .sip_registration_device_emergency_info import SipRegistrationDeviceEmergencyInfo +from .device_phone_lines_info import DevicePhoneLinesInfo +from .device_addon_info import DeviceAddonInfo +from .sip_registration_device_location_info import SipRegistrationDeviceLocationInfo +from .device_emergency_service_address_resource_au import ( + DeviceEmergencyServiceAddressResourceAu, +) +from .device_emergency_service_address_resource_fr import ( + DeviceEmergencyServiceAddressResourceFr, +) +from .device_phone_lines_emergency_address_info import ( + DevicePhoneLinesEmergencyAddressInfo, +) +from .device_phone_number_info import DevicePhoneNumberInfo +from .device_phone_number_country_info import DevicePhoneNumberCountryInfo +from .authorization_type import AuthorizationType +from .summary_api_response import SummaryApiResponse +from .summary_output import SummaryOutput +from .cai_error_response import CaiErrorResponse +from .summary_output_unit import SummaryOutputUnit +from .summary_timings_unit import SummaryTimingsUnit +from .cai_error_code_response import CaiErrorCodeResponse +from .punctuate_api_response import PunctuateApiResponse +from .punctuate_output import PunctuateOutput +from .diarized_object import DiarizedObject +from .diarize_segment import DiarizeSegment +from .speaker_identification_object import SpeakerIdentificationObject +from .transcribed_object import TranscribedObject +from .utterance_object import UtteranceObject +from .word_segment import WordSegment +from .word_timings_unit import WordTimingsUnit +from .emotion_segment import EmotionSegment +from .interaction_object import InteractionObject +from .utterance_insights_object import UtteranceInsightsObject +from .speaker_insights_object import SpeakerInsightsObject +from .conversational_insights_unit import ConversationalInsightsUnit +from .utterance_insights_unit import UtteranceInsightsUnit +from .speaker_insights_unit import SpeakerInsightsUnit +from .speaker_insights_values_items import SpeakerInsightsValuesItems +from .conversational_insights_unit_values import ConversationalInsightsUnitValues +from .summary_unit import SummaryUnit +from .paging_schema import PagingSchema +from .speech_context_phrases_input import SpeechContextPhrasesInput +from .insights_enum import InsightsEnum +from .non_enumerated_paging_model import NonEnumeratedPagingModel +from .content_attachment import ContentAttachment +from .content_body_formatted import ContentBodyFormatted +from .content_body_input_format import ContentBodyInputFormat +from .content_created_from import ContentCreatedFrom +from .content_source_type import ContentSourceType +from .content_type import ContentType +from .content_components import ContentComponents +from .soc_msg_gender import SocMsgGender +from .identity_type import IdentityType +from .scim_schema_attribute import ScimSchemaAttribute +from .scim_meta import ScimMeta +from .scim_user_address import ScimUserAddress +from .scim_email import ScimEmail +from .scim_name import ScimName +from .scim_phone_number import ScimPhoneNumber +from .scim_photo import ScimPhoto +from .scim_enterprise_user import ScimEnterpriseUser +from .scim_patch_operation import ScimPatchOperation +from .scim_authentication_scheme import ScimAuthenticationScheme +from .scim_bulk_supported import ScimBulkSupported +from .scim_supported import ScimSupported +from .scim_filter_supported import ScimFilterSupported +from .scim_schema_extension import ScimSchemaExtension +from .grouping import Grouping +from .time_settings import TimeSettings +from .call_filters import CallFilters +from .aggregation_response_options import AggregationResponseOptions +from .direct_grouping import DirectGrouping +from .grouping_by_members import GroupingByMembers +from .grouping_options import GroupingOptions +from .members_grouping_options import MembersGroupingOptions +from .time_range import TimeRange +from .advanced_time_settings import AdvancedTimeSettings +from .day_of_week import DayOfWeek +from .hours_interval import HoursInterval +from .extension_filters import ExtensionFilters +from .direction import Direction +from .origin import Origin +from .call_response import CallResponse +from .call_result import CallResult +from .call_segment_filter import CallSegmentFilter +from .call_action import CallAction +from .company_hours_options import CompanyHoursOptions +from .call_duration_filter import CallDurationFilter +from .time_spent_filter import TimeSpentFilter +from .queue_sla_options import QueueSlaOptions +from .call_type import CallType +from .call_segment_options import CallSegmentOptions +from .call_segment_length_filter import CallSegmentLengthFilter +from .aggregation_response_options_counters import AggregationResponseOptionsCounters +from .aggregation_response_options_timers import AggregationResponseOptionsTimers +from .aggregation_type import AggregationType +from .aggregation_interval import AggregationInterval +from .queue_opportunities_aggregation_type import QueueOpportunitiesAggregationType +from .response_paging import ResponsePaging +from .aggregation_response_data import AggregationResponseData +from .aggregation_response_record import AggregationResponseRecord +from .key_info import KeyInfo +from .calls_timers import CallsTimers +from .calls_counters import CallsCounters +from .all_calls import AllCalls +from .calls_by_direction import CallsByDirection +from .calls_by_origin import CallsByOrigin +from .calls_by_response import CallsByResponse +from .calls_by_segments import CallsBySegments +from .calls_by_result import CallsByResult +from .calls_by_company_hours import CallsByCompanyHours +from .calls_by_queue_sla import CallsByQueueSla +from .calls_by_type import CallsByType +from .value_type import ValueType +from .calls_by_direction_breakdown import CallsByDirectionBreakdown +from .calls_by_origin_breakdown import CallsByOriginBreakdown +from .calls_by_response_breakdown import CallsByResponseBreakdown +from .calls_by_segments_breakdown import CallsBySegmentsBreakdown +from .calls_by_result_breakdown import CallsByResultBreakdown +from .calls_by_company_hours_breakdown import CallsByCompanyHoursBreakdown +from .calls_by_queue_sla_breakdown import CallsByQueueSlaBreakdown +from .calls_by_type_breakdown import CallsByTypeBreakdown +from .calls_by_actions import CallsByActions +from .queue_opportunities import QueueOpportunities +from .calls_by_actions_breakdown import CallsByActionsBreakdown +from .timeline_response_options import TimelineResponseOptions +from .timeline_response_options_counters import TimelineResponseOptionsCounters +from .timeline_response_options_timers import TimelineResponseOptionsTimers +from .timeline_response_data import TimelineResponseData +from .timeline_response_record import TimelineResponseRecord +from .timeline_response_point import TimelineResponsePoint +from .task_recurrence_info import TaskRecurrenceInfo +from .task_attachment import TaskAttachment +from .tm_attachment_info import TmAttachmentInfo +from .tm_navigation_info import TmNavigationInfo +from .event_recurrence_info import EventRecurrenceInfo +from .tm_chat_member_info import TmChatMemberInfo +from .tm_message_attachment_info import TmMessageAttachmentInfo +from .tm_mentions_info import TmMentionsInfo +from .tm_attachment_author_info import TmAttachmentAuthorInfo +from .tm_attachment_fields_info import TmAttachmentFieldsInfo +from .tm_attachment_footnote_info import TmAttachmentFootnoteInfo +from .adaptive_card_info_request import AdaptiveCardInfoRequest +from .adaptive_card_action import AdaptiveCardAction +from .adaptive_card_select_action import AdaptiveCardSelectAction +from .vertical_content_alignment import VerticalContentAlignment +from .adaptive_card_info_request_item import AdaptiveCardInfoRequestItem +from .adaptive_card_column_info import AdaptiveCardColumnInfo +from .adaptive_card_column_item_info import AdaptiveCardColumnItemInfo +from .action_adaptive_card_info import ActionAdaptiveCardInfo +from .action_card_body import ActionCardBody +from .background_image import BackgroundImage +from .image_fill_mode import ImageFillMode +from .horizontal_alignment import HorizontalAlignment +from .vertical_alignment import VerticalAlignment +from .adaptive_card_creator import AdaptiveCardCreator +from .tm_creator_info import TmCreatorInfo +from .last_modified_by_info import LastModifiedByInfo +from .locked_by_info import LockedByInfo +from .glip_data_export_navigation_info import GlipDataExportNavigationInfo +from .glip_data_export_paging_info import GlipDataExportPagingInfo +from .creator_info import CreatorInfo +from .specific_info import SpecificInfo +from .export_task_result_info import ExportTaskResultInfo +from .data_export_task_contact_info import DataExportTaskContactInfo +from .glip_data_export_navigation_info_uri import GlipDataExportNavigationInfoUri diff --git a/src/ring_central/models/account_business_address_resource.py b/src/ring_central/models/account_business_address_resource.py new file mode 100644 index 00000000..2cd15215 --- /dev/null +++ b/src/ring_central/models/account_business_address_resource.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo + + +@JsonMap({"business_address": "businessAddress", "main_site_name": "mainSiteName"}) +class AccountBusinessAddressResource(BaseModel): + """AccountBusinessAddressResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param company: Company business name, defaults to None + :type company: str, optional + :param email: Company business email address, defaults to None + :type email: str, optional + :param main_site_name: Custom site name, defaults to None + :type main_site_name: str, optional + """ + + def __init__( + self, + uri: str = None, + business_address: ContactBusinessAddressInfo = None, + company: str = None, + email: str = None, + main_site_name: str = None, + ): + if uri is not None: + self.uri = uri + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if company is not None: + self.company = company + if email is not None: + self.email = email + if main_site_name is not None: + self.main_site_name = main_site_name diff --git a/src/ring_central/models/account_device_update.py b/src/ring_central/models/account_device_update.py new file mode 100644 index 00000000..b0543b45 --- /dev/null +++ b/src/ring_central/models/account_device_update.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .emergency_service_address_resource_request import ( + EmergencyServiceAddressResourceRequest, +) +from .device_emergency_info import DeviceEmergencyInfo +from .device_update_extension_info import DeviceUpdateExtensionInfo +from .device_update_phone_lines_info import DeviceUpdatePhoneLinesInfo + + +@JsonMap( + { + "emergency_service_address": "emergencyServiceAddress", + "phone_lines": "phoneLines", + "use_as_common_phone": "useAsCommonPhone", + } +) +class AccountDeviceUpdate(BaseModel): + """AccountDeviceUpdate + + :param emergency_service_address: Address for emergency cases. The same emergency address is assigned to all numbers of a single device. If the emergency address is also specified in `emergency` resource, then this value is ignored , defaults to None + :type emergency_service_address: EmergencyServiceAddressResourceRequest, optional + :param emergency: Device emergency settings, defaults to None + :type emergency: DeviceEmergencyInfo, optional + :param extension: Information on extension that the device is assigned to, defaults to None + :type extension: DeviceUpdateExtensionInfo, optional + :param phone_lines: Information on phone lines added to a device, defaults to None + :type phone_lines: DeviceUpdatePhoneLinesInfo, optional + :param use_as_common_phone: Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone , defaults to None + :type use_as_common_phone: bool, optional + :param name: Device label, maximum number of symbols is 64, defaults to None + :type name: str, optional + """ + + def __init__( + self, + emergency_service_address: EmergencyServiceAddressResourceRequest = None, + emergency: DeviceEmergencyInfo = None, + extension: DeviceUpdateExtensionInfo = None, + phone_lines: DeviceUpdatePhoneLinesInfo = None, + use_as_common_phone: bool = None, + name: str = None, + ): + if emergency_service_address is not None: + self.emergency_service_address = self._define_object( + emergency_service_address, EmergencyServiceAddressResourceRequest + ) + if emergency is not None: + self.emergency = self._define_object(emergency, DeviceEmergencyInfo) + if extension is not None: + self.extension = self._define_object(extension, DeviceUpdateExtensionInfo) + if phone_lines is not None: + self.phone_lines = self._define_object( + phone_lines, DeviceUpdatePhoneLinesInfo + ) + if use_as_common_phone is not None: + self.use_as_common_phone = use_as_common_phone + if name is not None: + self.name = name diff --git a/src/ring_central/models/account_directory_profile_image_resource.py b/src/ring_central/models/account_directory_profile_image_resource.py new file mode 100644 index 00000000..35c226b8 --- /dev/null +++ b/src/ring_central/models/account_directory_profile_image_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class AccountDirectoryProfileImageResource(BaseModel): + """AccountDirectoryProfileImageResource + + :param etag: etag, defaults to None + :type etag: str, optional + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, etag: str = None, uri: str = None): + if etag is not None: + self.etag = etag + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/account_history_paging.py b/src/ring_central/models/account_history_paging.py new file mode 100644 index 00000000..98ea6a86 --- /dev/null +++ b/src/ring_central/models/account_history_paging.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"per_page": "perPage", "total_found": "totalFound"}) +class AccountHistoryPaging(BaseModel): + """AccountHistoryPaging + + :param page: The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) , defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items are in each page. Matches "perPage" parameter from the request, defaults to None + :type per_page: int, optional + :param total: Total number of pages in a dataset. May be omitted for some resources due to performance reasons, defaults to None + :type total: int, optional + :param total_found: Total number of elements in a dataset. May be omitted for some resources due to performance reasons, defaults to None + :type total_found: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + total: int = None, + total_found: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if total is not None: + self.total = total + if total_found is not None: + self.total_found = total_found diff --git a/src/ring_central/models/account_history_public_record.py b/src/ring_central/models/account_history_public_record.py new file mode 100644 index 00000000..6b22b0b3 --- /dev/null +++ b/src/ring_central/models/account_history_public_record.py @@ -0,0 +1,88 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_history_record_public_initiator import AccountHistoryRecordPublicInitiator +from .account_history_record_target import AccountHistoryRecordTarget +from .account_history_record_public_details import AccountHistoryRecordPublicDetails + + +@JsonMap( + { + "id_": "id", + "event_time": "eventTime", + "action_id": "actionId", + "event_type": "eventType", + "account_id": "accountId", + "account_name": "accountName", + "client_ip": "clientIp", + } +) +class AccountHistoryPublicRecord(BaseModel): + """AccountHistoryPublicRecord + + :param id_: Internal record identifier, defaults to None + :type id_: str, optional + :param event_time: Timestamp of an event (provided by a client), RFC3339 date-time format, UTC time zone., defaults to None + :type event_time: str, optional + :param initiator: Event initiator info, defaults to None + :type initiator: AccountHistoryRecordPublicInitiator, optional + :param action_id: Action type, defaults to None + :type action_id: str, optional + :param event_type: Operation: "CREATE", "UPDATE", "DELETE" or custom, defaults to None + :type event_type: str, optional + :param account_id: Account identifier which is related with the particular record., defaults to None + :type account_id: str, optional + :param account_name: Account (company) name, defaults to None + :type account_name: str, optional + :param target: Action target object (company/extension), defaults to None + :type target: AccountHistoryRecordTarget, optional + :param client_ip: IP-address of a client., defaults to None + :type client_ip: str, optional + :param comment: Custom top-level comment, defaults to None + :type comment: str, optional + :param details: details, defaults to None + :type details: AccountHistoryRecordPublicDetails, optional + """ + + def __init__( + self, + id_: str = None, + event_time: str = None, + initiator: AccountHistoryRecordPublicInitiator = None, + action_id: str = None, + event_type: str = None, + account_id: str = None, + account_name: str = None, + target: AccountHistoryRecordTarget = None, + client_ip: str = None, + comment: str = None, + details: AccountHistoryRecordPublicDetails = None, + ): + if id_ is not None: + self.id_ = id_ + if event_time is not None: + self.event_time = event_time + if initiator is not None: + self.initiator = self._define_object( + initiator, AccountHistoryRecordPublicInitiator + ) + if action_id is not None: + self.action_id = action_id + if event_type is not None: + self.event_type = event_type + if account_id is not None: + self.account_id = account_id + if account_name is not None: + self.account_name = account_name + if target is not None: + self.target = self._define_object(target, AccountHistoryRecordTarget) + if client_ip is not None: + self.client_ip = client_ip + if comment is not None: + self.comment = comment + if details is not None: + self.details = self._define_object( + details, AccountHistoryRecordPublicDetails + ) diff --git a/src/ring_central/models/account_history_record_details_parameters.py b/src/ring_central/models/account_history_record_details_parameters.py new file mode 100644 index 00000000..2c2fbed7 --- /dev/null +++ b/src/ring_central/models/account_history_record_details_parameters.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class AccountHistoryRecordDetailsParameters(BaseModel): + """AccountHistoryRecordDetailsParameters + + :param key: key + :type key: str + :param value: value + :type value: str + """ + + def __init__(self, key: str, value: str): + self.key = key + self.value = value diff --git a/src/ring_central/models/account_history_record_public_details.py b/src/ring_central/models/account_history_record_public_details.py new file mode 100644 index 00000000..36077fd6 --- /dev/null +++ b/src/ring_central/models/account_history_record_public_details.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_history_record_details_parameters import ( + AccountHistoryRecordDetailsParameters, +) + + +@JsonMap({}) +class AccountHistoryRecordPublicDetails(BaseModel): + """AccountHistoryRecordPublicDetails + + :param parameters: Event details (additional parameters), defaults to None + :type parameters: List[AccountHistoryRecordDetailsParameters], optional + """ + + def __init__(self, parameters: List[AccountHistoryRecordDetailsParameters] = None): + if parameters is not None: + self.parameters = self._define_list( + parameters, AccountHistoryRecordDetailsParameters + ) diff --git a/src/ring_central/models/account_history_record_public_initiator.py b/src/ring_central/models/account_history_record_public_initiator.py new file mode 100644 index 00000000..d6bd44f0 --- /dev/null +++ b/src/ring_central/models/account_history_record_public_initiator.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"extension_id": "extensionId", "extension_number": "extensionNumber"}) +class AccountHistoryRecordPublicInitiator(BaseModel): + """Event initiator info + + :param extension_id: Current user extension identifier, defaults to None + :type extension_id: str, optional + :param extension_number: Current user extension (short) number, defaults to None + :type extension_number: str, optional + :param name: Current user full name, defaults to None + :type name: str, optional + :param role: Current user role, defaults to None + :type role: str, optional + """ + + def __init__( + self, + extension_id: str = None, + extension_number: str = None, + name: str = None, + role: str = None, + ): + if extension_id is not None: + self.extension_id = extension_id + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if role is not None: + self.role = role diff --git a/src/ring_central/models/account_history_record_target.py b/src/ring_central/models/account_history_record_target.py new file mode 100644 index 00000000..ce8a36a0 --- /dev/null +++ b/src/ring_central/models/account_history_record_target.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ObjectType(Enum): + """An enumeration representing different categories. + + :cvar EXTENSION: "Extension" + :vartype EXTENSION: str + :cvar ACCOUNT: "Account" + :vartype ACCOUNT: str + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar TEMPLATE: "Template" + :vartype TEMPLATE: str + """ + + EXTENSION = "Extension" + ACCOUNT = "Account" + COMPANY = "Company" + TEMPLATE = "Template" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ObjectType._member_map_.values())) + + +@JsonMap( + { + "object_id": "objectId", + "object_type": "objectType", + "extension_number": "extensionNumber", + "site_id": "siteId", + } +) +class AccountHistoryRecordTarget(BaseModel): + """Action target object (company/extension) + + :param object_id: Extension identifier of the affected entity or "0" for Company level, defaults to None + :type object_id: str, optional + :param object_type: Type of the entity., defaults to None + :type object_type: ObjectType, optional + :param name: Target extension name, defaults to None + :type name: str, optional + :param extension_number: Target extension (short) number of the affected entity (if the objectType is EXTENSION)., defaults to None + :type extension_number: str, optional + :param site_id: Target extension site identifier (if any), defaults to None + :type site_id: str, optional + """ + + def __init__( + self, + object_id: str = None, + object_type: ObjectType = None, + name: str = None, + extension_number: str = None, + site_id: str = None, + ): + if object_id is not None: + self.object_id = object_id + if object_type is not None: + self.object_type = self._enum_matching( + object_type, ObjectType.list(), "object_type" + ) + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if site_id is not None: + self.site_id = site_id diff --git a/src/ring_central/models/account_history_search_public_request.py b/src/ring_central/models/account_history_search_public_request.py new file mode 100644 index 00000000..90ca4086 --- /dev/null +++ b/src/ring_central/models/account_history_search_public_request.py @@ -0,0 +1,123 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ActionIds(Enum): + """An enumeration representing different categories. + + :cvar CHANGE_SECRET_INFO: "CHANGE_SECRET_INFO" + :vartype CHANGE_SECRET_INFO: str + :cvar CHANGE_USER_INFO: "CHANGE_USER_INFO" + :vartype CHANGE_USER_INFO: str + """ + + CHANGE_SECRET_INFO = "CHANGE_SECRET_INFO" + CHANGE_USER_INFO = "CHANGE_USER_INFO" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ActionIds._member_map_.values())) + + +class ExcludeActionIds(Enum): + """An enumeration representing different categories. + + :cvar CHANGE_SECRET_INFO: "CHANGE_SECRET_INFO" + :vartype CHANGE_SECRET_INFO: str + :cvar CHANGE_USER_INFO: "CHANGE_USER_INFO" + :vartype CHANGE_USER_INFO: str + """ + + CHANGE_SECRET_INFO = "CHANGE_SECRET_INFO" + CHANGE_USER_INFO = "CHANGE_USER_INFO" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ExcludeActionIds._member_map_.values())) + + +@JsonMap( + { + "event_time_from": "eventTimeFrom", + "event_time_to": "eventTimeTo", + "initiator_ids": "initiatorIds", + "per_page": "perPage", + "target_ids": "targetIds", + "site_id": "siteId", + "action_ids": "actionIds", + "search_string": "searchString", + "exclude_action_ids": "excludeActionIds", + } +) +class AccountHistorySearchPublicRequest(BaseModel): + """AccountHistorySearchPublicRequest + + :param event_time_from: The beginning of the time range to return records in ISO 8601 format in UTC timezone, default is "eventTimeFrom"-24 hours , defaults to None + :type event_time_from: str, optional + :param event_time_to: The end of the time range to return records in ISO 8601 format in UTC timezone, default is the current time, defaults to None + :type event_time_to: str, optional + :param initiator_ids: List of extension IDs of change initiators., defaults to None + :type initiator_ids: List[str], optional + :param page: Page number in the result set, defaults to None + :type page: int, optional + :param per_page: Number of records to be returned per page., defaults to None + :type per_page: int, optional + :param target_ids: List of extension (user) IDs affected by this action., defaults to None + :type target_ids: List[str], optional + :param site_id: Site ID to apply as a filter, defaults to None + :type site_id: str, optional + :param action_ids: List of action IDs (exact keys) to search for (alternatively "excludeActionIds" option can be used)., defaults to None + :type action_ids: List[ActionIds], optional + :param search_string: The (sub)string to search, applied to the following fields: - initiator.name - initiator.role - initiator.extensionNumber - target.name - target.extensionNumber - details.parameters.value, defaults to None + :type search_string: str, optional + :param exclude_action_ids: List of action IDs (exact keys) to exclude from your search (alternatively "actionIds" option can be used)., defaults to None + :type exclude_action_ids: List[ExcludeActionIds], optional + """ + + def __init__( + self, + event_time_from: str = None, + event_time_to: str = None, + initiator_ids: List[str] = None, + page: int = None, + per_page: int = None, + target_ids: List[str] = None, + site_id: str = None, + action_ids: List[ActionIds] = None, + search_string: str = None, + exclude_action_ids: List[ExcludeActionIds] = None, + ): + if event_time_from is not None: + self.event_time_from = event_time_from + if event_time_to is not None: + self.event_time_to = event_time_to + if initiator_ids is not None: + self.initiator_ids = initiator_ids + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if target_ids is not None: + self.target_ids = target_ids + if site_id is not None: + self.site_id = site_id + if action_ids is not None: + self.action_ids = self._define_list(action_ids, ActionIds) + if search_string is not None: + self.search_string = search_string + if exclude_action_ids is not None: + self.exclude_action_ids = self._define_list( + exclude_action_ids, ExcludeActionIds + ) diff --git a/src/ring_central/models/account_history_search_public_response.py b/src/ring_central/models/account_history_search_public_response.py new file mode 100644 index 00000000..02c1a305 --- /dev/null +++ b/src/ring_central/models/account_history_search_public_response.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_history_public_record import AccountHistoryPublicRecord +from .account_history_paging import AccountHistoryPaging + + +@JsonMap({}) +class AccountHistorySearchPublicResponse(BaseModel): + """AccountHistorySearchPublicResponse + + :param records: List of records, defaults to None + :type records: List[AccountHistoryPublicRecord], optional + :param paging: paging, defaults to None + :type paging: AccountHistoryPaging, optional + """ + + def __init__( + self, + records: List[AccountHistoryPublicRecord] = None, + paging: AccountHistoryPaging = None, + ): + if records is not None: + self.records = self._define_list(records, AccountHistoryPublicRecord) + if paging is not None: + self.paging = self._define_object(paging, AccountHistoryPaging) diff --git a/src/ring_central/models/account_info.py b/src/ring_central/models/account_info.py new file mode 100644 index 00000000..264b3a45 --- /dev/null +++ b/src/ring_central/models/account_info.py @@ -0,0 +1,109 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_status_info import AccountStatusInfo +from .postal_address import PostalAddress +from .service_info_v2 import ServiceInfoV2 +from .system_user_contact_info import SystemUserContactInfo + + +class AccountInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar INITIAL: "Initial" + :vartype INITIAL: str + :cvar UNCONFIRMED: "Unconfirmed" + :vartype UNCONFIRMED: str + :cvar CONFIRMED: "Confirmed" + :vartype CONFIRMED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + """ + + INITIAL = "Initial" + UNCONFIRMED = "Unconfirmed" + CONFIRMED = "Confirmed" + DISABLED = "Disabled" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AccountInfoStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "external_account_id": "externalAccountId", + "main_number": "mainNumber", + "status_info": "statusInfo", + "company_name": "companyName", + "company_address": "companyAddress", + "service_info": "serviceInfo", + "contact_info": "contactInfo", + "opportunity_id": "opportunityId", + } +) +class AccountInfo(BaseModel): + """AccountInfo + + :param id_: Internal identifier of RingCentral account + :type id_: str + :param external_account_id: External account ID. Used as a primary key to link accounts between RingCentral and partner systems. , defaults to None + :type external_account_id: str, optional + :param main_number: Phone number in e.164 format (with '+' prefix), defaults to None + :type main_number: str, optional + :param status: Account status + :type status: AccountInfoStatus + :param status_info: Optional information to be used when account is moved to "Disabled" status, defaults to None + :type status_info: AccountStatusInfo, optional + :param company_name: Company name, defaults to None + :type company_name: str, optional + :param company_address: Postal address/location, defaults to None + :type company_address: PostalAddress, optional + :param service_info: Service Plan information (billing package, brand, etc.) + :type service_info: ServiceInfoV2 + :param contact_info: contact_info, defaults to None + :type contact_info: SystemUserContactInfo, optional + :param opportunity_id: Opportunity identifier (typically created by SalesForce), defaults to None + :type opportunity_id: str, optional + """ + + def __init__( + self, + id_: str, + status: AccountInfoStatus, + service_info: ServiceInfoV2, + external_account_id: str = None, + main_number: str = None, + status_info: AccountStatusInfo = None, + company_name: str = None, + company_address: PostalAddress = None, + contact_info: SystemUserContactInfo = None, + opportunity_id: str = None, + ): + self.id_ = id_ + if external_account_id is not None: + self.external_account_id = external_account_id + if main_number is not None: + self.main_number = self._pattern_matching( + main_number, "^\+[1-9]\d{1,14}$", "main_number" + ) + self.status = self._enum_matching(status, AccountInfoStatus.list(), "status") + if status_info is not None: + self.status_info = self._define_object(status_info, AccountStatusInfo) + if company_name is not None: + self.company_name = company_name + if company_address is not None: + self.company_address = self._define_object(company_address, PostalAddress) + self.service_info = self._define_object(service_info, ServiceInfoV2) + if contact_info is not None: + self.contact_info = self._define_object(contact_info, SystemUserContactInfo) + if opportunity_id is not None: + self.opportunity_id = opportunity_id diff --git a/src/ring_central/models/account_limits.py b/src/ring_central/models/account_limits.py new file mode 100644 index 00000000..86f36e80 --- /dev/null +++ b/src/ring_central/models/account_limits.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "free_soft_phone_lines_per_extension": "freeSoftPhoneLinesPerExtension", + "meeting_size": "meetingSize", + "cloud_recording_storage": "cloudRecordingStorage", + "max_monitored_extensions_per_user": "maxMonitoredExtensionsPerUser", + "max_extension_number_length": "maxExtensionNumberLength", + "site_code_length": "siteCodeLength", + "short_extension_number_length": "shortExtensionNumberLength", + } +) +class AccountLimits(BaseModel): + """Limits which are effective for the account + + :param free_soft_phone_lines_per_extension: Max number of free softphone phone lines per user extension , defaults to None + :type free_soft_phone_lines_per_extension: int, optional + :param meeting_size: Max number of participants in RingCentral meeting hosted by this account's user , defaults to None + :type meeting_size: int, optional + :param cloud_recording_storage: Meetings recording cloud storage limitation in Gb , defaults to None + :type cloud_recording_storage: int, optional + :param max_monitored_extensions_per_user: Max number of extensions which can be included in the list of users monitored for Presence , defaults to None + :type max_monitored_extensions_per_user: int, optional + :param max_extension_number_length: Max length of extension numbers of an account; the supported value is up to 8 symbols, depends on account type , defaults to None + :type max_extension_number_length: int, optional + :param site_code_length: Length of a site code, defaults to None + :type site_code_length: int, optional + :param short_extension_number_length: Length of a short extension number, defaults to None + :type short_extension_number_length: int, optional + """ + + def __init__( + self, + free_soft_phone_lines_per_extension: int = None, + meeting_size: int = None, + cloud_recording_storage: int = None, + max_monitored_extensions_per_user: int = None, + max_extension_number_length: int = None, + site_code_length: int = None, + short_extension_number_length: int = None, + ): + if free_soft_phone_lines_per_extension is not None: + self.free_soft_phone_lines_per_extension = ( + free_soft_phone_lines_per_extension + ) + if meeting_size is not None: + self.meeting_size = meeting_size + if cloud_recording_storage is not None: + self.cloud_recording_storage = cloud_recording_storage + if max_monitored_extensions_per_user is not None: + self.max_monitored_extensions_per_user = max_monitored_extensions_per_user + if max_extension_number_length is not None: + self.max_extension_number_length = max_extension_number_length + if site_code_length is not None: + self.site_code_length = site_code_length + if short_extension_number_length is not None: + self.short_extension_number_length = short_extension_number_length diff --git a/src/ring_central/models/account_lock_setting_record_response.py b/src/ring_central/models/account_lock_setting_record_response.py new file mode 100644 index 00000000..1396d161 --- /dev/null +++ b/src/ring_central/models/account_lock_setting_record_response.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "local_recording": "localRecording", + "cloud_recording": "cloudRecording", + "auto_recording": "autoRecording", + "cloud_recording_download": "cloudRecordingDownload", + "host_delete_cloud_recording": "hostDeleteCloudRecording", + "account_user_access_recording": "accountUserAccessRecording", + "auto_delete_cmr": "autoDeleteCmr", + } +) +class AccountLockSettingRecordResponse(BaseModel): + """AccountLockSettingRecordResponse + + :param local_recording: local_recording, defaults to None + :type local_recording: bool, optional + :param cloud_recording: cloud_recording, defaults to None + :type cloud_recording: bool, optional + :param auto_recording: auto_recording, defaults to None + :type auto_recording: bool, optional + :param cloud_recording_download: cloud_recording_download, defaults to None + :type cloud_recording_download: bool, optional + :param host_delete_cloud_recording: host_delete_cloud_recording, defaults to None + :type host_delete_cloud_recording: bool, optional + :param account_user_access_recording: account_user_access_recording, defaults to None + :type account_user_access_recording: bool, optional + :param auto_delete_cmr: auto_delete_cmr, defaults to None + :type auto_delete_cmr: bool, optional + """ + + def __init__( + self, + local_recording: bool = None, + cloud_recording: bool = None, + auto_recording: bool = None, + cloud_recording_download: bool = None, + host_delete_cloud_recording: bool = None, + account_user_access_recording: bool = None, + auto_delete_cmr: bool = None, + ): + if local_recording is not None: + self.local_recording = local_recording + if cloud_recording is not None: + self.cloud_recording = cloud_recording + if auto_recording is not None: + self.auto_recording = auto_recording + if cloud_recording_download is not None: + self.cloud_recording_download = cloud_recording_download + if host_delete_cloud_recording is not None: + self.host_delete_cloud_recording = host_delete_cloud_recording + if account_user_access_recording is not None: + self.account_user_access_recording = account_user_access_recording + if auto_delete_cmr is not None: + self.auto_delete_cmr = auto_delete_cmr diff --git a/src/ring_central/models/account_locked_setting_response.py b/src/ring_central/models/account_locked_setting_response.py new file mode 100644 index 00000000..496dfb5c --- /dev/null +++ b/src/ring_central/models/account_locked_setting_response.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .schedule_meeting_response import ScheduleMeetingResponse +from .account_lock_setting_record_response import AccountLockSettingRecordResponse + + +@JsonMap({"schedule_meeting": "scheduleMeeting"}) +class AccountLockedSettingResponse(BaseModel): + """AccountLockedSettingResponse + + :param schedule_meeting: schedule_meeting, defaults to None + :type schedule_meeting: ScheduleMeetingResponse, optional + :param recording: recording, defaults to None + :type recording: AccountLockSettingRecordResponse, optional + """ + + def __init__( + self, + schedule_meeting: ScheduleMeetingResponse = None, + recording: AccountLockSettingRecordResponse = None, + ): + if schedule_meeting is not None: + self.schedule_meeting = self._define_object( + schedule_meeting, ScheduleMeetingResponse + ) + if recording is not None: + self.recording = self._define_object( + recording, AccountLockSettingRecordResponse + ) diff --git a/src/ring_central/models/account_operator_info.py b/src/ring_central/models/account_operator_info.py new file mode 100644 index 00000000..37bc1a0b --- /dev/null +++ b/src/ring_central/models/account_operator_info.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "extension_number": "extensionNumber", "partner_id": "partnerId"} +) +class AccountOperatorInfo(BaseModel): + """Operator extension information. This extension will receive + all calls and messages addressed to an operator. + + + :param uri: Link to an operator extension resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an operator extension, defaults to None + :type id_: int, optional + :param extension_number: Number of an operator extension, defaults to None + :type extension_number: str, optional + :param partner_id: Internal identifier of an extension created by partner. Supported for Partner Applications. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: int = None, + extension_number: str = None, + partner_id: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if partner_id is not None: + self.partner_id = partner_id diff --git a/src/ring_central/models/account_phone_number_info.py b/src/ring_central/models/account_phone_number_info.py new file mode 100644 index 00000000..e04c5406 --- /dev/null +++ b/src/ring_central/models/account_phone_number_info.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_type import PhoneNumberType +from .phone_number_toll_type import PhoneNumberTollType +from .phone_number_usage_type import PhoneNumberUsageType +from .phone_number_status import PhoneNumberStatus + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class AccountPhoneNumberInfoExtension(BaseModel): + """Reference to the extension this number is assigned to. Omitted for company numbers + + :param id_: Unique identifier of extension + :type id_: str + :param extension_number: Short number of an extension. Actual max length depends on system length limit for extension. , defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: str, extension_number: str = None): + self.id_ = id_ + if extension_number is not None: + self.extension_number = self._pattern_matching( + extension_number, "^\d{3,8}$", "extension_number" + ) + + +@JsonMap( + { + "id_": "id", + "phone_number": "phoneNumber", + "type_": "type", + "toll_type": "tollType", + "usage_type": "usageType", + "byoc_number": "byocNumber", + } +) +class AccountPhoneNumberInfo(BaseModel): + """AccountPhoneNumberInfo + + :param id_: Internal unique identifier of a phone number + :type id_: str + :param phone_number: Phone number in e.164 format (with '+' prefix) + :type phone_number: str + :param type_: Type of phone number, defaults to None + :type type_: PhoneNumberType, optional + :param toll_type: Indicates if a number is toll or toll-free + :type toll_type: PhoneNumberTollType + :param usage_type: Usage type of phone number + :type usage_type: PhoneNumberUsageType + :param byoc_number: byoc_number, defaults to None + :type byoc_number: bool, optional + :param status: Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral + :type status: PhoneNumberStatus + :param extension: Reference to the extension this number is assigned to. Omitted for company numbers, defaults to None + :type extension: AccountPhoneNumberInfoExtension, optional + """ + + def __init__( + self, + id_: str, + phone_number: str, + toll_type: PhoneNumberTollType, + usage_type: PhoneNumberUsageType, + status: PhoneNumberStatus, + type_: PhoneNumberType = None, + byoc_number: bool = None, + extension: AccountPhoneNumberInfoExtension = None, + ): + self.id_ = self._pattern_matching(id_, "^[1-9]\d{1,14}$", "id_") + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) + if type_ is not None: + self.type_ = self._enum_matching(type_, PhoneNumberType.list(), "type_") + self.toll_type = self._enum_matching( + toll_type, PhoneNumberTollType.list(), "toll_type" + ) + self.usage_type = self._enum_matching( + usage_type, PhoneNumberUsageType.list(), "usage_type" + ) + if byoc_number is not None: + self.byoc_number = byoc_number + self.status = self._enum_matching(status, PhoneNumberStatus.list(), "status") + if extension is not None: + self.extension = self._define_object( + extension, AccountPhoneNumberInfoExtension + ) diff --git a/src/ring_central/models/account_phone_number_list.py b/src/ring_central/models/account_phone_number_list.py new file mode 100644 index 00000000..a96b3ec4 --- /dev/null +++ b/src/ring_central/models/account_phone_number_list.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_phone_number_info import AccountPhoneNumberInfo +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class AccountPhoneNumberList(BaseModel): + """AccountPhoneNumberList + + :param records: List of account phone numbers + :type records: List[AccountPhoneNumberInfo] + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, records: List[AccountPhoneNumberInfo], paging: EnumeratedPagingModel + ): + self.records = self._define_list(records, AccountPhoneNumberInfo) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/account_phone_numbers.py b/src/ring_central/models/account_phone_numbers.py new file mode 100644 index 00000000..5d034d2f --- /dev/null +++ b/src/ring_central/models/account_phone_numbers.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_phone_number_info import CompanyPhoneNumberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class AccountPhoneNumbers(BaseModel): + """AccountPhoneNumbers + + :param uri: Link to a list of account phone numbers, defaults to None + :type uri: str, optional + :param records: List of account phone numbers, defaults to None + :type records: List[CompanyPhoneNumberInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[CompanyPhoneNumberInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, CompanyPhoneNumberInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/account_presence_info.py b/src/ring_central/models/account_presence_info.py new file mode 100644 index 00000000..8710a51a --- /dev/null +++ b/src/ring_central/models/account_presence_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_presence_info import GetPresenceInfo +from .presence_navigation_info import PresenceNavigationInfo +from .presence_paging_info import PresencePagingInfo + + +@JsonMap({}) +class AccountPresenceInfo(BaseModel): + """AccountPresenceInfo + + :param uri: Canonical URI of account presence resource, defaults to None + :type uri: str, optional + :param records: List of Prompts, defaults to None + :type records: List[GetPresenceInfo], optional + :param navigation: Information on navigation, defaults to None + :type navigation: PresenceNavigationInfo, optional + :param paging: Information on paging, defaults to None + :type paging: PresencePagingInfo, optional + """ + + def __init__( + self, + uri: str = None, + records: List[GetPresenceInfo] = None, + navigation: PresenceNavigationInfo = None, + paging: PresencePagingInfo = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, GetPresenceInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PresenceNavigationInfo) + if paging is not None: + self.paging = self._define_object(paging, PresencePagingInfo) diff --git a/src/ring_central/models/account_regional_settings.py b/src/ring_central/models/account_regional_settings.py new file mode 100644 index 00000000..5f1625cd --- /dev/null +++ b/src/ring_central/models/account_regional_settings.py @@ -0,0 +1,98 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_short_model import CountryInfoShortModel +from .timezone_info import TimezoneInfo +from .regional_language_info import RegionalLanguageInfo +from .greeting_language_info import GreetingLanguageInfo +from .formatting_locale_info import FormattingLocaleInfo +from .currency_info import CurrencyInfo + + +class AccountRegionalSettingsTimeFormat(Enum): + """An enumeration representing different categories. + + :cvar _12H: "12h" + :vartype _12H: str + :cvar _24H: "24h" + :vartype _24H: str + """ + + _12H = "12h" + _24H = "24h" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AccountRegionalSettingsTimeFormat._member_map_.values(), + ) + ) + + +@JsonMap( + { + "home_country": "homeCountry", + "greeting_language": "greetingLanguage", + "formatting_locale": "formattingLocale", + "time_format": "timeFormat", + } +) +class AccountRegionalSettings(BaseModel): + """Account level region data (web service Auto-Receptionist settings) + + + :param home_country: home_country, defaults to None + :type home_country: CountryInfoShortModel, optional + :param timezone: Extension timezone information, defaults to None + :type timezone: TimezoneInfo, optional + :param language: Information on a language set as regional, defaults to None + :type language: RegionalLanguageInfo, optional + :param greeting_language: Information on language used for telephony greetings , defaults to None + :type greeting_language: GreetingLanguageInfo, optional + :param formatting_locale: Formatting language preferences for numbers, dates and currencies , defaults to None + :type formatting_locale: FormattingLocaleInfo, optional + :param time_format: Time format setting. The default value is '12h' = ['12h', '24h'], defaults to None + :type time_format: AccountRegionalSettingsTimeFormat, optional + :param currency: Currency information, defaults to None + :type currency: CurrencyInfo, optional + """ + + def __init__( + self, + home_country: CountryInfoShortModel = None, + timezone: TimezoneInfo = None, + language: RegionalLanguageInfo = None, + greeting_language: GreetingLanguageInfo = None, + formatting_locale: FormattingLocaleInfo = None, + time_format: AccountRegionalSettingsTimeFormat = None, + currency: CurrencyInfo = None, + ): + if home_country is not None: + self.home_country = self._define_object(home_country, CountryInfoShortModel) + if timezone is not None: + self.timezone = self._define_object(timezone, TimezoneInfo) + if language is not None: + self.language = self._define_object(language, RegionalLanguageInfo) + if greeting_language is not None: + self.greeting_language = self._define_object( + greeting_language, GreetingLanguageInfo + ) + if formatting_locale is not None: + self.formatting_locale = self._define_object( + formatting_locale, FormattingLocaleInfo + ) + if time_format is not None: + self.time_format = self._enum_matching( + time_format, AccountRegionalSettingsTimeFormat.list(), "time_format" + ) + if currency is not None: + self.currency = self._define_object(currency, CurrencyInfo) diff --git a/src/ring_central/models/account_resource.py b/src/ring_central/models/account_resource.py new file mode 100644 index 00000000..fd78d40c --- /dev/null +++ b/src/ring_central/models/account_resource.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_resource import PhoneNumberResource + + +@JsonMap( + { + "company_name": "companyName", + "federated_name": "federatedName", + "id_": "id", + "main_number": "mainNumber", + } +) +class AccountResource(BaseModel): + """AccountResource + + :param company_name: company_name, defaults to None + :type company_name: str, optional + :param federated_name: federated_name, defaults to None + :type federated_name: str, optional + :param id_: id_ + :type id_: str + :param main_number: main_number, defaults to None + :type main_number: PhoneNumberResource, optional + """ + + def __init__( + self, + id_: str, + company_name: str = None, + federated_name: str = None, + main_number: PhoneNumberResource = None, + ): + if company_name is not None: + self.company_name = company_name + if federated_name is not None: + self.federated_name = federated_name + self.id_ = id_ + if main_number is not None: + self.main_number = self._define_object(main_number, PhoneNumberResource) diff --git a/src/ring_central/models/account_service_info.py b/src/ring_central/models/account_service_info.py new file mode 100644 index 00000000..17095624 --- /dev/null +++ b/src/ring_central/models/account_service_info.py @@ -0,0 +1,97 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .brand_info import BrandInfo +from .country_info_short_model import CountryInfoShortModel +from .service_plan_info import ServicePlanInfo +from .target_service_plan_info import TargetServicePlanInfo +from .billing_plan_info import BillingPlanInfo +from .service_feature_info import ServiceFeatureInfo +from .account_limits import AccountLimits +from .package_info import PackageInfo +from .u_brand_info import UBrandInfo + + +@JsonMap( + { + "service_plan_name": "servicePlanName", + "contracted_country": "contractedCountry", + "service_plan": "servicePlan", + "target_service_plan": "targetServicePlan", + "billing_plan": "billingPlan", + "service_features": "serviceFeatures", + "u_brand": "uBrand", + } +) +class AccountServiceInfo(BaseModel): + """AccountServiceInfo + + :param uri: Canonical URI of the account Service Info resource, defaults to None + :type uri: str, optional + :param service_plan_name: Account Service Plan name, defaults to None + :type service_plan_name: str, optional + :param brand: Information on account brand, defaults to None + :type brand: BrandInfo, optional + :param contracted_country: contracted_country, defaults to None + :type contracted_country: CountryInfoShortModel, optional + :param service_plan: Information on account service plan, defaults to None + :type service_plan: ServicePlanInfo, optional + :param target_service_plan: Information on account target service plan, defaults to None + :type target_service_plan: TargetServicePlanInfo, optional + :param billing_plan: Information on account billing plan, defaults to None + :type billing_plan: BillingPlanInfo, optional + :param service_features: Service features information, see Service Feature List, defaults to None + :type service_features: List[ServiceFeatureInfo], optional + :param limits: Limits which are effective for the account, defaults to None + :type limits: AccountLimits, optional + :param package: package, defaults to None + :type package: PackageInfo, optional + :param u_brand: Account sub-brand information, defaults to None + :type u_brand: UBrandInfo, optional + """ + + def __init__( + self, + uri: str = None, + service_plan_name: str = None, + brand: BrandInfo = None, + contracted_country: CountryInfoShortModel = None, + service_plan: ServicePlanInfo = None, + target_service_plan: TargetServicePlanInfo = None, + billing_plan: BillingPlanInfo = None, + service_features: List[ServiceFeatureInfo] = None, + limits: AccountLimits = None, + package: PackageInfo = None, + u_brand: UBrandInfo = None, + ): + if uri is not None: + self.uri = uri + if service_plan_name is not None: + self.service_plan_name = service_plan_name + if brand is not None: + self.brand = self._define_object(brand, BrandInfo) + if contracted_country is not None: + self.contracted_country = self._define_object( + contracted_country, CountryInfoShortModel + ) + if service_plan is not None: + self.service_plan = self._define_object(service_plan, ServicePlanInfo) + if target_service_plan is not None: + self.target_service_plan = self._define_object( + target_service_plan, TargetServicePlanInfo + ) + if billing_plan is not None: + self.billing_plan = self._define_object(billing_plan, BillingPlanInfo) + if service_features is not None: + self.service_features = self._define_list( + service_features, ServiceFeatureInfo + ) + if limits is not None: + self.limits = self._define_object(limits, AccountLimits) + if package is not None: + self.package = self._define_object(package, PackageInfo) + if u_brand is not None: + self.u_brand = self._define_object(u_brand, UBrandInfo) diff --git a/src/ring_central/models/account_status_info.py b/src/ring_central/models/account_status_info.py new file mode 100644 index 00000000..c78a684f --- /dev/null +++ b/src/ring_central/models/account_status_info.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AccountStatusInfoReason(Enum): + """An enumeration representing different categories. + + :cvar SUSPENDEDVOLUNTARILY: "SuspendedVoluntarily" + :vartype SUSPENDEDVOLUNTARILY: str + :cvar SUSPENDEDINVOLUNTARILY: "SuspendedInvoluntarily" + :vartype SUSPENDEDINVOLUNTARILY: str + :cvar CANCELLEDVOLUNTARILY: "CancelledVoluntarily" + :vartype CANCELLEDVOLUNTARILY: str + :cvar CANCELLEDINVOLUNTARILY: "CancelledInvoluntarily" + :vartype CANCELLEDINVOLUNTARILY: str + """ + + SUSPENDEDVOLUNTARILY = "SuspendedVoluntarily" + SUSPENDEDINVOLUNTARILY = "SuspendedInvoluntarily" + CANCELLEDVOLUNTARILY = "CancelledVoluntarily" + CANCELLEDINVOLUNTARILY = "CancelledInvoluntarily" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AccountStatusInfoReason._member_map_.values()) + ) + + +@JsonMap({}) +class AccountStatusInfo(BaseModel): + """Optional information to be used when account is moved to "Disabled" status + + :param reason: Type of suspension, voluntarily or not, defaults to None + :type reason: AccountStatusInfoReason, optional + :param comment: A meaningful description of the reason to change the status, defaults to None + :type comment: str, optional + :param till: Date after which the account will get deleted. Parameter can be used to overwrite default retention period, defaults to None + :type till: str, optional + """ + + def __init__( + self, + reason: AccountStatusInfoReason = None, + comment: str = None, + till: str = None, + ): + if reason is not None: + self.reason = self._enum_matching( + reason, AccountStatusInfoReason.list(), "reason" + ) + if comment is not None: + self.comment = comment + if till is not None: + self.till = till diff --git a/src/ring_central/models/action_adaptive_card_info.py b/src/ring_central/models/action_adaptive_card_info.py new file mode 100644 index 00000000..b8e05022 --- /dev/null +++ b/src/ring_central/models/action_adaptive_card_info.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .action_card_body import ActionCardBody + + +class ActionAdaptiveCardInfoType(Enum): + """An enumeration representing different categories. + + :cvar ADAPTIVECARD: "AdaptiveCard" + :vartype ADAPTIVECARD: str + """ + + ADAPTIVECARD = "AdaptiveCard" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ActionAdaptiveCardInfoType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class ActionAdaptiveCardInfo(BaseModel): + """ActionAdaptiveCardInfo + + :param type_: type_, defaults to None + :type type_: ActionAdaptiveCardInfoType, optional + :param body: body, defaults to None + :type body: List[ActionCardBody], optional + """ + + def __init__( + self, + type_: ActionAdaptiveCardInfoType = None, + body: List[ActionCardBody] = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, ActionAdaptiveCardInfoType.list(), "type_" + ) + if body is not None: + self.body = self._define_list(body, ActionCardBody) diff --git a/src/ring_central/models/action_card_body.py b/src/ring_central/models/action_card_body.py new file mode 100644 index 00000000..f463b1f8 --- /dev/null +++ b/src/ring_central/models/action_card_body.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ActionCardBodyType(Enum): + """An enumeration representing different categories. + + :cvar INPUT_TEXT: "Input.Text" + :vartype INPUT_TEXT: str + """ + + INPUT_TEXT = "Input.Text" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ActionCardBodyType._member_map_.values())) + + +@JsonMap({"type_": "type", "id_": "id", "is_multiline": "isMultiline"}) +class ActionCardBody(BaseModel): + """ActionCardBody + + :param type_: type_, defaults to None + :type type_: ActionCardBodyType, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param is_multiline: If set to `true`, allows multiple lines of input, defaults to None + :type is_multiline: bool, optional + :param placeholder: Description of the input desired. Displayed when no text has been input, defaults to None + :type placeholder: str, optional + """ + + def __init__( + self, + type_: ActionCardBodyType = None, + id_: str = None, + is_multiline: bool = None, + placeholder: str = None, + ): + if type_ is not None: + self.type_ = self._enum_matching(type_, ActionCardBodyType.list(), "type_") + if id_ is not None: + self.id_ = id_ + if is_multiline is not None: + self.is_multiline = is_multiline + if placeholder is not None: + self.placeholder = placeholder diff --git a/src/ring_central/models/active_call_info.py b/src/ring_central/models/active_call_info.py new file mode 100644 index 00000000..cf936655 --- /dev/null +++ b/src/ring_central/models/active_call_info.py @@ -0,0 +1,177 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .detailed_call_info import DetailedCallInfo +from .call_info_cq import CallInfoCq + + +class ActiveCallInfoDirection(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ActiveCallInfoDirection._member_map_.values()) + ) + + +class ActiveCallInfoTelephonyStatus(Enum): + """An enumeration representing different categories. + + :cvar NOCALL: "NoCall" + :vartype NOCALL: str + :cvar CALLCONNECTED: "CallConnected" + :vartype CALLCONNECTED: str + :cvar RINGING: "Ringing" + :vartype RINGING: str + :cvar ONHOLD: "OnHold" + :vartype ONHOLD: str + :cvar PARKEDCALL: "ParkedCall" + :vartype PARKEDCALL: str + """ + + NOCALL = "NoCall" + CALLCONNECTED = "CallConnected" + RINGING = "Ringing" + ONHOLD = "OnHold" + PARKEDCALL = "ParkedCall" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ActiveCallInfoTelephonyStatus._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "queue_call": "queueCall", + "from_": "from", + "from_name": "fromName", + "to_name": "toName", + "start_time": "startTime", + "telephony_status": "telephonyStatus", + "sip_data": "sipData", + "session_id": "sessionId", + "telephony_session_id": "telephonySessionId", + "on_behalf_of": "onBehalfOf", + "party_id": "partyId", + "termination_type": "terminationType", + "call_info": "callInfo", + } +) +class ActiveCallInfo(BaseModel): + """ActiveCallInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param direction: direction, defaults to None + :type direction: ActiveCallInfoDirection, optional + :param queue_call: Identifies if a call belongs to the call queue, defaults to None + :type queue_call: bool, optional + :param from_: Phone number or extension number of a caller. For GCM transport type '_from' property should be used, defaults to None + :type from_: str, optional + :param from_name: Name of a caller, defaults to None + :type from_name: str, optional + :param to: Phone number or extension number of a callee, defaults to None + :type to: str, optional + :param to_name: Name of a callee, defaults to None + :type to_name: str, optional + :param start_time: Time when the call is actually started, defaults to None + :type start_time: str, optional + :param telephony_status: Telephony presence status, defaults to None + :type telephony_status: ActiveCallInfoTelephonyStatus, optional + :param sip_data: sip_data, defaults to None + :type sip_data: DetailedCallInfo, optional + :param session_id: session_id, defaults to None + :type session_id: str, optional + :param telephony_session_id: Telephony identifier of a call session, defaults to None + :type telephony_session_id: str, optional + :param on_behalf_of: Extension ID of the call owner on whose behalf a call is performed, defaults to None + :type on_behalf_of: str, optional + :param party_id: Internal identifier of a call party, defaults to None + :type party_id: str, optional + :param termination_type: termination_type, defaults to None + :type termination_type: str, optional + :param call_info: Primary/additional CQ information, defaults to None + :type call_info: CallInfoCq, optional + """ + + def __init__( + self, + id_: str = None, + direction: ActiveCallInfoDirection = None, + queue_call: bool = None, + from_: str = None, + from_name: str = None, + to: str = None, + to_name: str = None, + start_time: str = None, + telephony_status: ActiveCallInfoTelephonyStatus = None, + sip_data: DetailedCallInfo = None, + session_id: str = None, + telephony_session_id: str = None, + on_behalf_of: str = None, + party_id: str = None, + termination_type: str = None, + call_info: CallInfoCq = None, + ): + if id_ is not None: + self.id_ = id_ + if direction is not None: + self.direction = self._enum_matching( + direction, ActiveCallInfoDirection.list(), "direction" + ) + if queue_call is not None: + self.queue_call = queue_call + if from_ is not None: + self.from_ = from_ + if from_name is not None: + self.from_name = from_name + if to is not None: + self.to = to + if to_name is not None: + self.to_name = to_name + if start_time is not None: + self.start_time = start_time + if telephony_status is not None: + self.telephony_status = self._enum_matching( + telephony_status, + ActiveCallInfoTelephonyStatus.list(), + "telephony_status", + ) + if sip_data is not None: + self.sip_data = self._define_object(sip_data, DetailedCallInfo) + if session_id is not None: + self.session_id = session_id + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + if on_behalf_of is not None: + self.on_behalf_of = on_behalf_of + if party_id is not None: + self.party_id = party_id + if termination_type is not None: + self.termination_type = termination_type + if call_info is not None: + self.call_info = self._define_object(call_info, CallInfoCq) diff --git a/src/ring_central/models/active_permission_resource.py b/src/ring_central/models/active_permission_resource.py new file mode 100644 index 00000000..6b1431df --- /dev/null +++ b/src/ring_central/models/active_permission_resource.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_id_resource import PermissionIdResource +from .role_id_resource import RoleIdResource + + +class Scopes(Enum): + """An enumeration representing different categories. + + :cvar ACCOUNT: "Account" + :vartype ACCOUNT: str + :cvar ALLEXTENSIONS: "AllExtensions" + :vartype ALLEXTENSIONS: str + :cvar FEDERATION: "Federation" + :vartype FEDERATION: str + :cvar NONUSEREXTENSIONS: "NonUserExtensions" + :vartype NONUSEREXTENSIONS: str + :cvar ROLEBASED: "RoleBased" + :vartype ROLEBASED: str + :cvar SELF: "Self" + :vartype SELF: str + :cvar USEREXTENSIONS: "UserExtensions" + :vartype USEREXTENSIONS: str + """ + + ACCOUNT = "Account" + ALLEXTENSIONS = "AllExtensions" + FEDERATION = "Federation" + NONUSEREXTENSIONS = "NonUserExtensions" + ROLEBASED = "RoleBased" + SELF = "Self" + USEREXTENSIONS = "UserExtensions" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Scopes._member_map_.values())) + + +@JsonMap({"effective_role": "effectiveRole"}) +class ActivePermissionResource(BaseModel): + """ActivePermissionResource + + :param permission: permission, defaults to None + :type permission: PermissionIdResource, optional + :param effective_role: effective_role, defaults to None + :type effective_role: RoleIdResource, optional + :param scopes: scopes, defaults to None + :type scopes: List[Scopes], optional + """ + + def __init__( + self, + permission: PermissionIdResource = None, + effective_role: RoleIdResource = None, + scopes: List[Scopes] = None, + ): + if permission is not None: + self.permission = self._define_object(permission, PermissionIdResource) + if effective_role is not None: + self.effective_role = self._define_object(effective_role, RoleIdResource) + if scopes is not None: + self.scopes = self._define_list(scopes, Scopes) diff --git a/src/ring_central/models/adaptive_card_action.py b/src/ring_central/models/adaptive_card_action.py new file mode 100644 index 00000000..51705575 --- /dev/null +++ b/src/ring_central/models/adaptive_card_action.py @@ -0,0 +1,69 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .action_adaptive_card_info import ActionAdaptiveCardInfo + + +class AdaptiveCardActionType(Enum): + """An enumeration representing different categories. + + :cvar ACTION_SHOWCARD: "Action.ShowCard" + :vartype ACTION_SHOWCARD: str + :cvar ACTION_SUBMIT: "Action.Submit" + :vartype ACTION_SUBMIT: str + :cvar ACTION_OPENURL: "Action.OpenUrl" + :vartype ACTION_OPENURL: str + :cvar ACTION_TOGGLEVISIBILITY: "Action.ToggleVisibility" + :vartype ACTION_TOGGLEVISIBILITY: str + """ + + ACTION_SHOWCARD = "Action.ShowCard" + ACTION_SUBMIT = "Action.Submit" + ACTION_OPENURL = "Action.OpenUrl" + ACTION_TOGGLEVISIBILITY = "Action.ToggleVisibility" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardActionType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class AdaptiveCardAction(BaseModel): + """AdaptiveCardAction + + :param type_: type_, defaults to None + :type type_: AdaptiveCardActionType, optional + :param title: title, defaults to None + :type title: str, optional + :param card: card, defaults to None + :type card: ActionAdaptiveCardInfo, optional + :param url: url, defaults to None + :type url: str, optional + """ + + def __init__( + self, + type_: AdaptiveCardActionType = None, + title: str = None, + card: ActionAdaptiveCardInfo = None, + url: str = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdaptiveCardActionType.list(), "type_" + ) + if title is not None: + self.title = title + if card is not None: + self.card = self._define_object(card, ActionAdaptiveCardInfo) + if url is not None: + self.url = url diff --git a/src/ring_central/models/adaptive_card_column_info.py b/src/ring_central/models/adaptive_card_column_info.py new file mode 100644 index 00000000..e540633b --- /dev/null +++ b/src/ring_central/models/adaptive_card_column_info.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .adaptive_card_column_item_info import AdaptiveCardColumnItemInfo + + +@JsonMap({"type_": "type"}) +class AdaptiveCardColumnInfo(BaseModel): + """AdaptiveCardColumnInfo + + :param type_: type_, defaults to None + :type type_: str, optional + :param width: width, defaults to None + :type width: str, optional + :param items: items, defaults to None + :type items: List[AdaptiveCardColumnItemInfo], optional + """ + + def __init__( + self, + type_: str = None, + width: str = None, + items: List[AdaptiveCardColumnItemInfo] = None, + ): + if type_ is not None: + self.type_ = type_ + if width is not None: + self.width = width + if items is not None: + self.items = self._define_list(items, AdaptiveCardColumnItemInfo) diff --git a/src/ring_central/models/adaptive_card_column_item_info.py b/src/ring_central/models/adaptive_card_column_item_info.py new file mode 100644 index 00000000..5344b2b2 --- /dev/null +++ b/src/ring_central/models/adaptive_card_column_item_info.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"type_": "type", "is_subtle": "isSubtle"}) +class AdaptiveCardColumnItemInfo(BaseModel): + """AdaptiveCardColumnItemInfo + + :param type_: type_, defaults to None + :type type_: str, optional + :param url: url, defaults to None + :type url: str, optional + :param size: size, defaults to None + :type size: str, optional + :param style: style, defaults to None + :type style: str, optional + :param wrap: wrap, defaults to None + :type wrap: bool, optional + :param spacing: spacing, defaults to None + :type spacing: str, optional + :param text: text, defaults to None + :type text: str, optional + :param is_subtle: is_subtle, defaults to None + :type is_subtle: bool, optional + """ + + def __init__( + self, + type_: str = None, + url: str = None, + size: str = None, + style: str = None, + wrap: bool = None, + spacing: str = None, + text: str = None, + is_subtle: bool = None, + ): + if type_ is not None: + self.type_ = type_ + if url is not None: + self.url = url + if size is not None: + self.size = size + if style is not None: + self.style = style + if wrap is not None: + self.wrap = wrap + if spacing is not None: + self.spacing = spacing + if text is not None: + self.text = text + if is_subtle is not None: + self.is_subtle = is_subtle diff --git a/src/ring_central/models/adaptive_card_creator.py b/src/ring_central/models/adaptive_card_creator.py new file mode 100644 index 00000000..a81531b0 --- /dev/null +++ b/src/ring_central/models/adaptive_card_creator.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AdaptiveCardCreator(BaseModel): + """AdaptiveCardCreator + + :param id_: Internal identifier of a creator, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/adaptive_card_info.py b/src/ring_central/models/adaptive_card_info.py new file mode 100644 index 00000000..7bdc8ff3 --- /dev/null +++ b/src/ring_central/models/adaptive_card_info.py @@ -0,0 +1,185 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .adaptive_card_creator import AdaptiveCardCreator +from .adaptive_card_info_request import AdaptiveCardInfoRequest +from .adaptive_card_action import AdaptiveCardAction +from .adaptive_card_select_action import AdaptiveCardSelectAction +from .vertical_content_alignment import ( + VerticalContentAlignment, + VerticalContentAlignmentGuard, +) +from .background_image import BackgroundImage + + +class AdaptiveCardInfoType(Enum): + """An enumeration representing different categories. + + :cvar ADAPTIVECARD: "AdaptiveCard" + :vartype ADAPTIVECARD: str + """ + + ADAPTIVECARD = "AdaptiveCard" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AdaptiveCardInfoType._member_map_.values())) + + +class AdaptiveCardInfoBackgroundImageGuard(OneOfBaseModel): + class_list = {"BackgroundImage": BackgroundImage, "str": str} + + +AdaptiveCardInfoBackgroundImage = Union[BackgroundImage, str] + + +class AdaptiveCardInfoLang(Enum): + """An enumeration representing different categories. + + :cvar EN: "en" + :vartype EN: str + :cvar FR: "fr" + :vartype FR: str + :cvar ES: "es" + :vartype ES: str + """ + + EN = "en" + FR = "fr" + ES = "es" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AdaptiveCardInfoLang._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "schema": "$schema", + "type_": "type", + "chat_ids": "chatIds", + "select_action": "selectAction", + "fallback_text": "fallbackText", + "background_image": "backgroundImage", + "min_height": "minHeight", + "vertical_content_alignment": "verticalContentAlignment", + } +) +class AdaptiveCardInfo(BaseModel): + """AdaptiveCardInfo + + :param id_: Internal identifier of an adaptive card, defaults to None + :type id_: str, optional + :param creation_time: Adaptive Card creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type last_modified_time: str, optional + :param schema: Schema of an adaptive card, defaults to None + :type schema: str, optional + :param type_: type_, defaults to None + :type type_: AdaptiveCardInfoType, optional + :param version: Version of an adaptive card, defaults to None + :type version: str, optional + :param creator: creator, defaults to None + :type creator: AdaptiveCardCreator, optional + :param chat_ids: Chat IDs where an adaptive card is posted or shared., defaults to None + :type chat_ids: List[str], optional + :param body: List of card elements to show in the primary card region, defaults to None + :type body: List[AdaptiveCardInfoRequest], optional + :param actions: actions, defaults to None + :type actions: List[AdaptiveCardAction], optional + :param select_action: An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported, defaults to None + :type select_action: AdaptiveCardSelectAction, optional + :param fallback_text: Text shown when the client doesn't support the version specified (may contain markdown), defaults to None + :type fallback_text: str, optional + :param background_image: Specifies the background image of a card, defaults to None + :type background_image: AdaptiveCardInfoBackgroundImage, optional + :param min_height: Specifies the minimum height of the card in pixels, defaults to None + :type min_height: str, optional + :param speak: Specifies what should be spoken for this entire card. This is simple text or SSML fragment, defaults to None + :type speak: str, optional + :param lang: The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions, defaults to None + :type lang: AdaptiveCardInfoLang, optional + :param vertical_content_alignment: Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified, defaults to None + :type vertical_content_alignment: VerticalContentAlignment, optional + """ + + def __init__( + self, + id_: str = None, + creation_time: str = None, + last_modified_time: str = None, + schema: str = None, + type_: AdaptiveCardInfoType = None, + version: str = None, + creator: AdaptiveCardCreator = None, + chat_ids: List[str] = None, + body: List[AdaptiveCardInfoRequest] = None, + actions: List[AdaptiveCardAction] = None, + select_action: AdaptiveCardSelectAction = None, + fallback_text: str = None, + background_image: AdaptiveCardInfoBackgroundImage = None, + min_height: str = None, + speak: str = None, + lang: AdaptiveCardInfoLang = None, + vertical_content_alignment: VerticalContentAlignment = None, + ): + if id_ is not None: + self.id_ = id_ + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if schema is not None: + self.schema = schema + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdaptiveCardInfoType.list(), "type_" + ) + if version is not None: + self.version = version + if creator is not None: + self.creator = self._define_object(creator, AdaptiveCardCreator) + if chat_ids is not None: + self.chat_ids = chat_ids + if body is not None: + self.body = self._define_list(body, AdaptiveCardInfoRequest) + if actions is not None: + self.actions = self._define_list(actions, AdaptiveCardAction) + if select_action is not None: + self.select_action = self._define_object( + select_action, AdaptiveCardSelectAction + ) + if fallback_text is not None: + self.fallback_text = fallback_text + if background_image is not None: + self.background_image = AdaptiveCardInfoBackgroundImageGuard.return_one_of( + background_image + ) + if min_height is not None: + self.min_height = min_height + if speak is not None: + self.speak = speak + if lang is not None: + self.lang = self._enum_matching(lang, AdaptiveCardInfoLang.list(), "lang") + if vertical_content_alignment is not None: + self.vertical_content_alignment = ( + VerticalContentAlignmentGuard.return_one_of(vertical_content_alignment) + ) diff --git a/src/ring_central/models/adaptive_card_info_request.py b/src/ring_central/models/adaptive_card_info_request.py new file mode 100644 index 00000000..9f27b537 --- /dev/null +++ b/src/ring_central/models/adaptive_card_info_request.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .adaptive_card_info_request_item import AdaptiveCardInfoRequestItem + + +class AdaptiveCardInfoRequestType(Enum): + """An enumeration representing different categories. + + :cvar CONTAINER: "Container" + :vartype CONTAINER: str + """ + + CONTAINER = "Container" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardInfoRequestType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class AdaptiveCardInfoRequest(BaseModel): + """AdaptiveCardInfoRequest + + :param type_: type_, defaults to None + :type type_: AdaptiveCardInfoRequestType, optional + :param items: items, defaults to None + :type items: List[AdaptiveCardInfoRequestItem], optional + """ + + def __init__( + self, + type_: AdaptiveCardInfoRequestType = None, + items: List[AdaptiveCardInfoRequestItem] = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdaptiveCardInfoRequestType.list(), "type_" + ) + if items is not None: + self.items = self._define_list(items, AdaptiveCardInfoRequestItem) diff --git a/src/ring_central/models/adaptive_card_info_request_item.py b/src/ring_central/models/adaptive_card_info_request_item.py new file mode 100644 index 00000000..5f212d3f --- /dev/null +++ b/src/ring_central/models/adaptive_card_info_request_item.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .adaptive_card_column_info import AdaptiveCardColumnInfo + + +class AdaptiveCardInfoRequestItemType(Enum): + """An enumeration representing different categories. + + :cvar TEXTBLOCK: "TextBlock" + :vartype TEXTBLOCK: str + :cvar COLUMNSET: "ColumnSet" + :vartype COLUMNSET: str + :cvar COLUMN: "Column" + :vartype COLUMN: str + :cvar FACTSET: "FactSet" + :vartype FACTSET: str + """ + + TEXTBLOCK = "TextBlock" + COLUMNSET = "ColumnSet" + COLUMN = "Column" + FACTSET = "FactSet" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, AdaptiveCardInfoRequestItemType._member_map_.values() + ) + ) + + +@JsonMap({"type_": "type"}) +class AdaptiveCardInfoRequestItem(BaseModel): + """AdaptiveCardInfoRequestItem + + :param type_: type_, defaults to None + :type type_: AdaptiveCardInfoRequestItemType, optional + :param text: text, defaults to None + :type text: str, optional + :param weight: weight, defaults to None + :type weight: str, optional + :param size: size, defaults to None + :type size: str, optional + :param columns: columns, defaults to None + :type columns: List[AdaptiveCardColumnInfo], optional + """ + + def __init__( + self, + type_: AdaptiveCardInfoRequestItemType = None, + text: str = None, + weight: str = None, + size: str = None, + columns: List[AdaptiveCardColumnInfo] = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdaptiveCardInfoRequestItemType.list(), "type_" + ) + if text is not None: + self.text = text + if weight is not None: + self.weight = weight + if size is not None: + self.size = size + if columns is not None: + self.columns = self._define_list(columns, AdaptiveCardColumnInfo) diff --git a/src/ring_central/models/adaptive_card_request.py b/src/ring_central/models/adaptive_card_request.py new file mode 100644 index 00000000..ce55a355 --- /dev/null +++ b/src/ring_central/models/adaptive_card_request.py @@ -0,0 +1,151 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .adaptive_card_info_request import AdaptiveCardInfoRequest +from .adaptive_card_action import AdaptiveCardAction +from .adaptive_card_select_action import AdaptiveCardSelectAction +from .vertical_content_alignment import ( + VerticalContentAlignment, + VerticalContentAlignmentGuard, +) +from .background_image import BackgroundImage + + +class AdaptiveCardRequestType(Enum): + """An enumeration representing different categories. + + :cvar ADAPTIVECARD: "AdaptiveCard" + :vartype ADAPTIVECARD: str + """ + + ADAPTIVECARD = "AdaptiveCard" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardRequestType._member_map_.values()) + ) + + +class AdaptiveCardRequestBackgroundImageGuard(OneOfBaseModel): + class_list = {"str": str, "BackgroundImage": BackgroundImage} + + +AdaptiveCardRequestBackgroundImage = Union[str, BackgroundImage] + + +class AdaptiveCardRequestLang(Enum): + """An enumeration representing different categories. + + :cvar EN: "en" + :vartype EN: str + :cvar FR: "fr" + :vartype FR: str + :cvar ES: "es" + :vartype ES: str + """ + + EN = "en" + FR = "fr" + ES = "es" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardRequestLang._member_map_.values()) + ) + + +@JsonMap( + { + "type_": "type", + "select_action": "selectAction", + "fallback_text": "fallbackText", + "background_image": "backgroundImage", + "min_height": "minHeight", + "vertical_content_alignment": "verticalContentAlignment", + } +) +class AdaptiveCardRequest(BaseModel): + """AdaptiveCardRequest + + :param type_: Type of attachment. This field is mandatory and filled on server side - will be ignored if set in request body + :type type_: AdaptiveCardRequestType + :param version: Version. This field is mandatory and filled on server side - will be ignored if set in request body + :type version: str + :param body: List of adaptive cards with the detailed information, defaults to None + :type body: List[AdaptiveCardInfoRequest], optional + :param actions: actions, defaults to None + :type actions: List[AdaptiveCardAction], optional + :param select_action: An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported, defaults to None + :type select_action: AdaptiveCardSelectAction, optional + :param fallback_text: fallback_text, defaults to None + :type fallback_text: str, optional + :param background_image: Specifies the background image of a card, defaults to None + :type background_image: AdaptiveCardRequestBackgroundImage, optional + :param min_height: Specifies the minimum height of the card in pixels, defaults to None + :type min_height: str, optional + :param speak: Specifies what should be spoken for this entire card. This is simple text or SSML fragment, defaults to None + :type speak: str, optional + :param lang: The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions, defaults to None + :type lang: AdaptiveCardRequestLang, optional + :param vertical_content_alignment: Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified, defaults to None + :type vertical_content_alignment: VerticalContentAlignment, optional + """ + + def __init__( + self, + type_: AdaptiveCardRequestType, + version: str, + body: List[AdaptiveCardInfoRequest] = None, + actions: List[AdaptiveCardAction] = None, + select_action: AdaptiveCardSelectAction = None, + fallback_text: str = None, + background_image: AdaptiveCardRequestBackgroundImage = None, + min_height: str = None, + speak: str = None, + lang: AdaptiveCardRequestLang = None, + vertical_content_alignment: VerticalContentAlignment = None, + ): + self.type_ = self._enum_matching(type_, AdaptiveCardRequestType.list(), "type_") + self.version = version + if body is not None: + self.body = self._define_list(body, AdaptiveCardInfoRequest) + if actions is not None: + self.actions = self._define_list(actions, AdaptiveCardAction) + if select_action is not None: + self.select_action = self._define_object( + select_action, AdaptiveCardSelectAction + ) + if fallback_text is not None: + self.fallback_text = fallback_text + if background_image is not None: + self.background_image = ( + AdaptiveCardRequestBackgroundImageGuard.return_one_of(background_image) + ) + if min_height is not None: + self.min_height = min_height + if speak is not None: + self.speak = speak + if lang is not None: + self.lang = self._enum_matching( + lang, AdaptiveCardRequestLang.list(), "lang" + ) + if vertical_content_alignment is not None: + self.vertical_content_alignment = ( + VerticalContentAlignmentGuard.return_one_of(vertical_content_alignment) + ) diff --git a/src/ring_central/models/adaptive_card_select_action.py b/src/ring_central/models/adaptive_card_select_action.py new file mode 100644 index 00000000..4ecbfb44 --- /dev/null +++ b/src/ring_central/models/adaptive_card_select_action.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AdaptiveCardSelectActionType(Enum): + """An enumeration representing different categories. + + :cvar ACTION_SUBMIT: "Action.Submit" + :vartype ACTION_SUBMIT: str + :cvar ACTION_OPENURL: "Action.OpenUrl" + :vartype ACTION_OPENURL: str + :cvar ACTION_TOGGLEVISIBILITY: "Action.ToggleVisibility" + :vartype ACTION_TOGGLEVISIBILITY: str + """ + + ACTION_SUBMIT = "Action.Submit" + ACTION_OPENURL = "Action.OpenUrl" + ACTION_TOGGLEVISIBILITY = "Action.ToggleVisibility" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardSelectActionType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class AdaptiveCardSelectAction(BaseModel): + """An action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported + + :param type_: type_ + :type type_: AdaptiveCardSelectActionType + """ + + def __init__(self, type_: AdaptiveCardSelectActionType): + self.type_ = self._enum_matching( + type_, AdaptiveCardSelectActionType.list(), "type_" + ) diff --git a/src/ring_central/models/adaptive_card_short_info.py b/src/ring_central/models/adaptive_card_short_info.py new file mode 100644 index 00000000..950b7004 --- /dev/null +++ b/src/ring_central/models/adaptive_card_short_info.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .adaptive_card_creator import AdaptiveCardCreator + + +class AdaptiveCardShortInfoType(Enum): + """An enumeration representing different categories. + + :cvar ADAPTIVECARD: "AdaptiveCard" + :vartype ADAPTIVECARD: str + """ + + ADAPTIVECARD = "AdaptiveCard" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AdaptiveCardShortInfoType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "schema": "$schema", + "type_": "type", + "chat_ids": "chatIds", + } +) +class AdaptiveCardShortInfo(BaseModel): + """AdaptiveCardShortInfo + + :param id_: Internal identifier of an adaptive card, defaults to None + :type id_: str, optional + :param creation_time: Adaptive Card creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type last_modified_time: str, optional + :param schema: Schema of an adaptive card, defaults to None + :type schema: str, optional + :param type_: type_, defaults to None + :type type_: AdaptiveCardShortInfoType, optional + :param version: Version of an adaptive card. Filled on server-side, defaults to None + :type version: str, optional + :param creator: creator, defaults to None + :type creator: AdaptiveCardCreator, optional + :param chat_ids: Chat IDs where an adaptive card is posted or shared., defaults to None + :type chat_ids: List[str], optional + """ + + def __init__( + self, + id_: str = None, + creation_time: str = None, + last_modified_time: str = None, + schema: str = None, + type_: AdaptiveCardShortInfoType = None, + version: str = None, + creator: AdaptiveCardCreator = None, + chat_ids: List[str] = None, + ): + if id_ is not None: + self.id_ = id_ + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if schema is not None: + self.schema = schema + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdaptiveCardShortInfoType.list(), "type_" + ) + if version is not None: + self.version = version + if creator is not None: + self.creator = self._define_object(creator, AdaptiveCardCreator) + if chat_ids is not None: + self.chat_ids = chat_ids diff --git a/src/ring_central/models/add_blocked_allowed_phone_number.py b/src/ring_central/models/add_blocked_allowed_phone_number.py new file mode 100644 index 00000000..a149e560 --- /dev/null +++ b/src/ring_central/models/add_blocked_allowed_phone_number.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .blocked_number_status_enum import BlockedNumberStatusEnum + + +@JsonMap({"phone_number": "phoneNumber"}) +class AddBlockedAllowedPhoneNumber(BaseModel): + """Updates either blocked or allowed phone number list with a new phone number. + + :param phone_number: A blocked/allowed phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, defaults to None + :type phone_number: str, optional + :param label: Custom name of a blocked/allowed phone number, defaults to None + :type label: str, optional + :param status: Status of a phone number, defaults to None + :type status: BlockedNumberStatusEnum, optional + """ + + def __init__( + self, + phone_number: str = None, + label: str = None, + status: BlockedNumberStatusEnum = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if status is not None: + self.status = self._enum_matching( + status, BlockedNumberStatusEnum.list(), "status" + ) diff --git a/src/ring_central/models/add_device_to_inventory_request.py b/src/ring_central/models/add_device_to_inventory_request.py new file mode 100644 index 00000000..e8c7597c --- /dev/null +++ b/src/ring_central/models/add_device_to_inventory_request.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AddDeviceToInventoryRequestType(Enum): + """An enumeration representing different categories. + + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + """ + + OTHERPHONE = "OtherPhone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, AddDeviceToInventoryRequestType._member_map_.values() + ) + ) + + +@JsonMap({"id_": "id"}) +class AddDeviceToInventoryRequestSite(BaseModel): + """AddDeviceToInventoryRequestSite + + :param id_: Site extension identifier or "main-site" for the main site, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +@JsonMap({"type_": "type"}) +class AddDeviceToInventoryRequest(BaseModel): + """AddDeviceToInventoryRequest + + :param type_: Device type. Use `OtherPhone` to indicate BYOD (customer provided) device + :type type_: AddDeviceToInventoryRequestType + :param quantity: Quantity of devices (total quantity should not exceed 50) + :type quantity: int + :param site: site, defaults to None + :type site: AddDeviceToInventoryRequestSite, optional + """ + + def __init__( + self, + type_: AddDeviceToInventoryRequestType, + quantity: int, + site: AddDeviceToInventoryRequestSite = None, + ): + self.type_ = self._enum_matching( + type_, AddDeviceToInventoryRequestType.list(), "type_" + ) + self.quantity = quantity + if site is not None: + self.site = self._define_object(site, AddDeviceToInventoryRequestSite) diff --git a/src/ring_central/models/add_device_to_inventory_response.py b/src/ring_central/models/add_device_to_inventory_response.py new file mode 100644 index 00000000..862089dd --- /dev/null +++ b/src/ring_central/models/add_device_to_inventory_response.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_basic_info import SiteBasicInfo + + +@JsonMap({"id_": "id"}) +class AddDeviceToInventoryResponseDevices(BaseModel): + """AddDeviceToInventoryResponseDevices + + :param id_: Internal identifier of a created device + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({}) +class AddDeviceToInventoryResponse(BaseModel): + """AddDeviceToInventoryResponse + + :param devices: devices + :type devices: List[AddDeviceToInventoryResponseDevices] + :param site: site + :type site: SiteBasicInfo + """ + + def __init__( + self, devices: List[AddDeviceToInventoryResponseDevices], site: SiteBasicInfo + ): + self.devices = self._define_list(devices, AddDeviceToInventoryResponseDevices) + self.site = self._define_object(site, SiteBasicInfo) diff --git a/src/ring_central/models/add_invitee_request.py b/src/ring_central/models/add_invitee_request.py new file mode 100644 index 00000000..f387dd22 --- /dev/null +++ b/src/ring_central/models/add_invitee_request.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_domain_user_model import RcwDomainUserModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_invitee_type_enum import RcwInviteeTypeEnum + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "linked_user": "linkedUser", + "type_": "type", + "send_invite": "sendInvite", + } +) +class AddInviteeRequest(BaseModel): + """AddInviteeRequest + + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param email: User's contact email, defaults to None + :type email: str, optional + :param job_title: Job title, defaults to None + :type job_title: str, optional + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param type_: The type of the webinar invitee, defaults to None + :type type_: RcwInviteeTypeEnum, optional + :param send_invite: Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. , defaults to None + :type send_invite: bool, optional + """ + + def __init__( + self, + role: RcwRoleEnum, + first_name: str = None, + last_name: str = None, + email: str = None, + job_title: str = None, + linked_user: RcwDomainUserModel = None, + type_: RcwInviteeTypeEnum = None, + send_invite: bool = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if job_title is not None: + self.job_title = job_title + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + if type_ is not None: + self.type_ = self._enum_matching(type_, RcwInviteeTypeEnum.list(), "type_") + if send_invite is not None: + self.send_invite = send_invite diff --git a/src/ring_central/models/add_party_request.py b/src/ring_central/models/add_party_request.py new file mode 100644 index 00000000..ffb7dcd4 --- /dev/null +++ b/src/ring_central/models/add_party_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"session_id": "sessionId", "party_id": "partyId"}) +class AddPartyRequest(BaseModel): + """AddPartyRequest + + :param session_id: Internal identifier of a call session + :type session_id: str + :param party_id: Internal identifier of a party that should be added to the call session + :type party_id: str + """ + + def __init__(self, session_id: str, party_id: str): + self.session_id = session_id + self.party_id = party_id diff --git a/src/ring_central/models/add_phone_number_request_item.py b/src/ring_central/models/add_phone_number_request_item.py new file mode 100644 index 00000000..a435e5f4 --- /dev/null +++ b/src/ring_central/models/add_phone_number_request_item.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AddPhoneNumberRequestItemUsageType(Enum): + """An enumeration representing different categories. + + :cvar INVENTORY: "Inventory" + :vartype INVENTORY: str + :cvar INVENTORYPARTNERBUSINESSMOBILENUMBER: "InventoryPartnerBusinessMobileNumber" + :vartype INVENTORYPARTNERBUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + """ + + INVENTORY = "Inventory" + INVENTORYPARTNERBUSINESSMOBILENUMBER = "InventoryPartnerBusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AddPhoneNumberRequestItemUsageType._member_map_.values(), + ) + ) + + +@JsonMap({"phone_number": "phoneNumber", "usage_type": "usageType"}) +class AddPhoneNumberRequestItem(BaseModel): + """AddPhoneNumberRequestItem + + :param phone_number: Phone number in e.164 format (with '+' prefix). Wildcards are supported to pass large sets (for example 100 numbers); only one phone number record must be passed in request in that case, for example '+1650123456*' + :type phone_number: str + :param usage_type: Usage type of phone number. Currently, we support the following values: `Inventory`, `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. + :type usage_type: AddPhoneNumberRequestItemUsageType + """ + + def __init__( + self, phone_number: str, usage_type: AddPhoneNumberRequestItemUsageType + ): + self.phone_number = phone_number + self.usage_type = self._enum_matching( + usage_type, AddPhoneNumberRequestItemUsageType.list(), "usage_type" + ) diff --git a/src/ring_central/models/add_phone_numbers_request.py b/src/ring_central/models/add_phone_numbers_request.py new file mode 100644 index 00000000..d38ce138 --- /dev/null +++ b/src/ring_central/models/add_phone_numbers_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .add_phone_number_request_item import AddPhoneNumberRequestItem + + +@JsonMap({}) +class AddPhoneNumbersRequest(BaseModel): + """AddPhoneNumbersRequest + + :param records: List of account phone numbers + :type records: List[AddPhoneNumberRequestItem] + """ + + def __init__(self, records: List[AddPhoneNumberRequestItem]): + self.records = self._define_list(records, AddPhoneNumberRequestItem) diff --git a/src/ring_central/models/add_phone_numbers_response.py b/src/ring_central/models/add_phone_numbers_response.py new file mode 100644 index 00000000..c5eef9ec --- /dev/null +++ b/src/ring_central/models/add_phone_numbers_response.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .add_phone_numbers_response_item import AddPhoneNumbersResponseItem + + +@JsonMap({}) +class AddPhoneNumbersResponse(BaseModel): + """AddPhoneNumbersResponse + + :param records: List of account phone numbers + :type records: List[AddPhoneNumbersResponseItem] + """ + + def __init__(self, records: List[AddPhoneNumbersResponseItem]): + self.records = self._define_list(records, AddPhoneNumbersResponseItem) diff --git a/src/ring_central/models/add_phone_numbers_response_item.py b/src/ring_central/models/add_phone_numbers_response_item.py new file mode 100644 index 00000000..87c9b63e --- /dev/null +++ b/src/ring_central/models/add_phone_numbers_response_item.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "bulk_item_successful": "bulkItemSuccessful", + "bulk_item_errors": "bulkItemErrors", + "id_": "id", + "phone_number": "phoneNumber", + } +) +class AddPhoneNumbersResponseItem(BaseModel): + """AddPhoneNumbersResponseItem + + :param bulk_item_successful: Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors + :type bulk_item_successful: bool + :param bulk_item_errors: The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false , defaults to None + :type bulk_item_errors: List[dict], optional + :param id_: Internal unique identifier of a phone number, defaults to None + :type id_: str, optional + :param phone_number: Phone number in e.164 format (with '+' prefix) + :type phone_number: str + """ + + def __init__( + self, + bulk_item_successful: bool, + phone_number: str, + bulk_item_errors: List[dict] = None, + id_: str = None, + ): + self.bulk_item_successful = bulk_item_successful + if bulk_item_errors is not None: + self.bulk_item_errors = bulk_item_errors + if id_ is not None: + self.id_ = self._pattern_matching(id_, "^[1-9]\d{1,14}$", "id_") + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) diff --git a/src/ring_central/models/add_phone_numbers_task.py b/src/ring_central/models/add_phone_numbers_task.py new file mode 100644 index 00000000..ce7f70b2 --- /dev/null +++ b/src/ring_central/models/add_phone_numbers_task.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "creation_time": "creationTime"}) +class AddPhoneNumbersTask(BaseModel): + """AddPhoneNumbersTask + + :param id_: Internal identifier of a task, defaults to None + :type id_: str, optional + :param creation_time: Task creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param status: Task status, defaults to None + :type status: str, optional + """ + + def __init__(self, id_: str = None, creation_time: str = None, status: str = None): + if id_ is not None: + self.id_ = id_ + if creation_time is not None: + self.creation_time = creation_time + if status is not None: + self.status = status diff --git a/src/ring_central/models/additional_cq_info.py b/src/ring_central/models/additional_cq_info.py new file mode 100644 index 00000000..fde8a262 --- /dev/null +++ b/src/ring_central/models/additional_cq_info.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AdditionalCqInfoType(Enum): + """An enumeration representing different categories. + + :cvar PHONENUMBERLABEL: "PhoneNumberLabel" + :vartype PHONENUMBERLABEL: str + :cvar PHONENUMBER: "PhoneNumber" + :vartype PHONENUMBER: str + :cvar QUEUEEXTENSION: "QueueExtension" + :vartype QUEUEEXTENSION: str + :cvar QUEUENAME: "QueueName" + :vartype QUEUENAME: str + :cvar CALLERIDNAME: "CallerIdName" + :vartype CALLERIDNAME: str + :cvar CALLERIDNUMBER: "CallerIdNumber" + :vartype CALLERIDNUMBER: str + :cvar NONE: "None" + :vartype NONE: str + """ + + PHONENUMBERLABEL = "PhoneNumberLabel" + PHONENUMBER = "PhoneNumber" + QUEUEEXTENSION = "QueueExtension" + QUEUENAME = "QueueName" + CALLERIDNAME = "CallerIdName" + CALLERIDNUMBER = "CallerIdNumber" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AdditionalCqInfoType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class AdditionalCqInfo(BaseModel): + """Additional call session information. Supported for Call Queues only + + :param type_: Call information to be displayed as 'Line 2' for a call queue call session, defaults to None + :type type_: AdditionalCqInfoType, optional + :param value: Call information value, defaults to None + :type value: str, optional + """ + + def __init__(self, type_: AdditionalCqInfoType = None, value: str = None): + if type_ is not None: + self.type_ = self._enum_matching( + type_, AdditionalCqInfoType.list(), "type_" + ) + if value is not None: + self.value = value diff --git a/src/ring_central/models/addon_info.py b/src/ring_central/models/addon_info.py new file mode 100644 index 00000000..84b203bc --- /dev/null +++ b/src/ring_central/models/addon_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AddonInfo(BaseModel): + """AddonInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param count: count, defaults to None + :type count: int, optional + """ + + def __init__(self, id_: str = None, name: str = None, count: int = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if count is not None: + self.count = count diff --git a/src/ring_central/models/address_book_bulk_contact_address_info.py b/src/ring_central/models/address_book_bulk_contact_address_info.py new file mode 100644 index 00000000..da7a342b --- /dev/null +++ b/src/ring_central/models/address_book_bulk_contact_address_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class AddressBookBulkContactAddressInfo(BaseModel): + """AddressBookBulkContactAddressInfo + + :param country: Country name of the extension user company. Not returned for Address Book , defaults to None + :type country: str, optional + :param state: State/province name of the extension user company, defaults to None + :type state: str, optional + :param city: City name of the extension user company, defaults to None + :type city: str, optional + :param street: Street address of the extension user company, defaults to None + :type street: str, optional + :param zip: Zip code of the extension user company, defaults to None + :type zip: str, optional + """ + + def __init__( + self, + country: str = None, + state: str = None, + city: str = None, + street: str = None, + zip: str = None, + ): + if country is not None: + self.country = country + if state is not None: + self.state = state + if city is not None: + self.city = city + if street is not None: + self.street = street + if zip is not None: + self.zip = zip diff --git a/src/ring_central/models/address_book_bulk_contact_resource.py b/src/ring_central/models/address_book_bulk_contact_resource.py new file mode 100644 index 00000000..dbd50121 --- /dev/null +++ b/src/ring_central/models/address_book_bulk_contact_resource.py @@ -0,0 +1,182 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .address_book_bulk_contact_address_info import AddressBookBulkContactAddressInfo + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "web_page": "webPage", + "middle_name": "middleName", + "nick_name": "nickName", + "home_phone": "homePhone", + "home_phone2": "homePhone2", + "business_phone": "businessPhone", + "business_phone2": "businessPhone2", + "mobile_phone": "mobilePhone", + "business_fax": "businessFax", + "company_phone": "companyPhone", + "assistant_phone": "assistantPhone", + "car_phone": "carPhone", + "other_phone": "otherPhone", + "other_fax": "otherFax", + "callback_phone": "callbackPhone", + "business_address": "businessAddress", + "home_address": "homeAddress", + "other_address": "otherAddress", + } +) +class AddressBookBulkContactResource(BaseModel): + """AddressBookBulkContactResource + + :param email: Email of a contact, defaults to None + :type email: str, optional + :param notes: Notes for a contact, defaults to None + :type notes: str, optional + :param company: Company name of a contact, defaults to None + :type company: str, optional + :param first_name: First name of a contact, defaults to None + :type first_name: str, optional + :param last_name: Last name of a contact, defaults to None + :type last_name: str, optional + :param job_title: Job title of a contact, defaults to None + :type job_title: str, optional + :param birthday: Date of birth of a contact, defaults to None + :type birthday: str, optional + :param web_page: Link to a contact home page, defaults to None + :type web_page: str, optional + :param middle_name: Middle name of a contact, defaults to None + :type middle_name: str, optional + :param nick_name: Nick name of a contact, defaults to None + :type nick_name: str, optional + :param email2: Second email of a contact, defaults to None + :type email2: str, optional + :param email3: Third email of the contact, defaults to None + :type email3: str, optional + :param home_phone: Home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone: str, optional + :param home_phone2: Second home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone2: str, optional + :param business_phone: Business phone of a contact in e.164 (with "+") format, defaults to None + :type business_phone: str, optional + :param business_phone2: Second business phone of a contact in e.164 (with "+") format, defaults to None + :type business_phone2: str, optional + :param mobile_phone: Mobile phone of the contact in e.164 (with "+") format, defaults to None + :type mobile_phone: str, optional + :param business_fax: Business fax number of a contact in e.164 (with "+") format, defaults to None + :type business_fax: str, optional + :param company_phone: Company number of a contact in e.164 (with "+") format, defaults to None + :type company_phone: str, optional + :param assistant_phone: Phone number of a contact assistant in e.164 (with "+") format, defaults to None + :type assistant_phone: str, optional + :param car_phone: Car phone number of a contact in e.164 (with "+") format, defaults to None + :type car_phone: str, optional + :param other_phone: Other phone number of a contact in e.164 (with "+") format, defaults to None + :type other_phone: str, optional + :param other_fax: Other fax number of a contact in e.164 (with "+") format, defaults to None + :type other_fax: str, optional + :param callback_phone: Callback phone number of a contact in e.164 (with "+") format, defaults to None + :type callback_phone: str, optional + :param business_address: business_address, defaults to None + :type business_address: AddressBookBulkContactAddressInfo, optional + :param home_address: home_address, defaults to None + :type home_address: AddressBookBulkContactAddressInfo, optional + :param other_address: other_address, defaults to None + :type other_address: AddressBookBulkContactAddressInfo, optional + """ + + def __init__( + self, + email: str = None, + notes: str = None, + company: str = None, + first_name: str = None, + last_name: str = None, + job_title: str = None, + birthday: str = None, + web_page: str = None, + middle_name: str = None, + nick_name: str = None, + email2: str = None, + email3: str = None, + home_phone: str = None, + home_phone2: str = None, + business_phone: str = None, + business_phone2: str = None, + mobile_phone: str = None, + business_fax: str = None, + company_phone: str = None, + assistant_phone: str = None, + car_phone: str = None, + other_phone: str = None, + other_fax: str = None, + callback_phone: str = None, + business_address: AddressBookBulkContactAddressInfo = None, + home_address: AddressBookBulkContactAddressInfo = None, + other_address: AddressBookBulkContactAddressInfo = None, + ): + if email is not None: + self.email = email + if notes is not None: + self.notes = notes + if company is not None: + self.company = company + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if job_title is not None: + self.job_title = job_title + if birthday is not None: + self.birthday = birthday + if web_page is not None: + self.web_page = web_page + if middle_name is not None: + self.middle_name = middle_name + if nick_name is not None: + self.nick_name = nick_name + if email2 is not None: + self.email2 = email2 + if email3 is not None: + self.email3 = email3 + if home_phone is not None: + self.home_phone = home_phone + if home_phone2 is not None: + self.home_phone2 = home_phone2 + if business_phone is not None: + self.business_phone = business_phone + if business_phone2 is not None: + self.business_phone2 = business_phone2 + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_fax is not None: + self.business_fax = business_fax + if company_phone is not None: + self.company_phone = company_phone + if assistant_phone is not None: + self.assistant_phone = assistant_phone + if car_phone is not None: + self.car_phone = car_phone + if other_phone is not None: + self.other_phone = other_phone + if other_fax is not None: + self.other_fax = other_fax + if callback_phone is not None: + self.callback_phone = callback_phone + if business_address is not None: + self.business_address = self._define_object( + business_address, AddressBookBulkContactAddressInfo + ) + if home_address is not None: + self.home_address = self._define_object( + home_address, AddressBookBulkContactAddressInfo + ) + if other_address is not None: + self.other_address = self._define_object( + other_address, AddressBookBulkContactAddressInfo + ) diff --git a/src/ring_central/models/address_book_bulk_upload_request.py b/src/ring_central/models/address_book_bulk_upload_request.py new file mode 100644 index 00000000..fe065146 --- /dev/null +++ b/src/ring_central/models/address_book_bulk_upload_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .address_book_bulk_upload_resource import AddressBookBulkUploadResource + + +@JsonMap({}) +class AddressBookBulkUploadRequest(BaseModel): + """AddressBookBulkUploadRequest + + :param records: records + :type records: List[AddressBookBulkUploadResource] + """ + + def __init__(self, records: List[AddressBookBulkUploadResource]): + self.records = self._define_list(records, AddressBookBulkUploadResource) diff --git a/src/ring_central/models/address_book_bulk_upload_resource.py b/src/ring_central/models/address_book_bulk_upload_resource.py new file mode 100644 index 00000000..d3a4bc4d --- /dev/null +++ b/src/ring_central/models/address_book_bulk_upload_resource.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .address_book_bulk_contact_resource import AddressBookBulkContactResource + + +@JsonMap({"extension_id": "extensionId"}) +class AddressBookBulkUploadResource(BaseModel): + """AddressBookBulkUploadResource + + :param extension_id: extension_id + :type extension_id: str + :param contacts: contacts + :type contacts: List[AddressBookBulkContactResource] + """ + + def __init__( + self, extension_id: str, contacts: List[AddressBookBulkContactResource] + ): + self.extension_id = extension_id + self.contacts = self._define_list(contacts, AddressBookBulkContactResource) diff --git a/src/ring_central/models/address_book_bulk_upload_response.py b/src/ring_central/models/address_book_bulk_upload_response.py new file mode 100644 index 00000000..79db8786 --- /dev/null +++ b/src/ring_central/models/address_book_bulk_upload_response.py @@ -0,0 +1,84 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .address_book_bulk_upload_task_result import AddressBookBulkUploadTaskResult + + +class AddressBookBulkUploadResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + ACCEPTED = "Accepted" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AddressBookBulkUploadResponseStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class AddressBookBulkUploadResponse(BaseModel): + """Information on a task for adding multiple contacts to multiple extensions + + + :param id_: Internal identifier of a task + :type id_: str + :param uri: Link for the task status retrieval + :type uri: str + :param status: Task status + :type status: AddressBookBulkUploadResponseStatus + :param creation_time: Date/time of a task creation + :type creation_time: str + :param last_modified_time: Date/time of a task latest update + :type last_modified_time: str + :param results: results, defaults to None + :type results: AddressBookBulkUploadTaskResult, optional + """ + + def __init__( + self, + id_: str, + uri: str, + status: AddressBookBulkUploadResponseStatus, + creation_time: str, + last_modified_time: str, + results: AddressBookBulkUploadTaskResult = None, + ): + self.id_ = id_ + self.uri = uri + self.status = self._enum_matching( + status, AddressBookBulkUploadResponseStatus.list(), "status" + ) + self.creation_time = creation_time + self.last_modified_time = last_modified_time + if results is not None: + self.results = self._define_object(results, AddressBookBulkUploadTaskResult) diff --git a/src/ring_central/models/address_book_bulk_upload_task_result.py b/src/ring_central/models/address_book_bulk_upload_task_result.py new file mode 100644 index 00000000..e49dc852 --- /dev/null +++ b/src/ring_central/models/address_book_bulk_upload_task_result.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .address_book_bulk_upload_resource import AddressBookBulkUploadResource +from .error_entity import ErrorEntity + + +@JsonMap({"affected_items": "affectedItems"}) +class AddressBookBulkUploadTaskResult(BaseModel): + """AddressBookBulkUploadTaskResult + + :param affected_items: affected_items, defaults to None + :type affected_items: List[AddressBookBulkUploadResource], optional + :param errors: errors, defaults to None + :type errors: List[ErrorEntity], optional + """ + + def __init__( + self, + affected_items: List[AddressBookBulkUploadResource] = None, + errors: List[ErrorEntity] = None, + ): + if affected_items is not None: + self.affected_items = self._define_list( + affected_items, AddressBookBulkUploadResource + ) + if errors is not None: + self.errors = self._define_list(errors, ErrorEntity) diff --git a/src/ring_central/models/address_book_sync.py b/src/ring_central/models/address_book_sync.py new file mode 100644 index 00000000..1da3fa4e --- /dev/null +++ b/src/ring_central/models/address_book_sync.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .personal_contact_resource import PersonalContactResource +from .sync_info import SyncInfo + + +@JsonMap( + { + "sync_info": "syncInfo", + "next_page_id": "nextPageId", + "next_page_uri": "nextPageUri", + } +) +class AddressBookSync(BaseModel): + """AddressBookSync + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[PersonalContactResource], optional + :param sync_info: sync_info, defaults to None + :type sync_info: SyncInfo, optional + :param next_page_id: next_page_id, defaults to None + :type next_page_id: int, optional + :param next_page_uri: next_page_uri, defaults to None + :type next_page_uri: str, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PersonalContactResource] = None, + sync_info: SyncInfo = None, + next_page_id: int = None, + next_page_uri: str = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PersonalContactResource) + if sync_info is not None: + self.sync_info = self._define_object(sync_info, SyncInfo) + if next_page_id is not None: + self.next_page_id = next_page_id + if next_page_uri is not None: + self.next_page_uri = next_page_uri diff --git a/src/ring_central/models/address_status.py b/src/ring_central/models/address_status.py new file mode 100644 index 00000000..449e861e --- /dev/null +++ b/src/ring_central/models/address_status.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AddressStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar PROVISIONING: "Provisioning" + :vartype PROVISIONING: str + """ + + VALID = "Valid" + INVALID = "Invalid" + PROVISIONING = "Provisioning" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AddressStatus._member_map_.values())) diff --git a/src/ring_central/models/advanced_time_settings.py b/src/ring_central/models/advanced_time_settings.py new file mode 100644 index 00000000..32a08afb --- /dev/null +++ b/src/ring_central/models/advanced_time_settings.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .day_of_week import DayOfWeek +from .hours_interval import HoursInterval + + +@JsonMap({"include_days": "includeDays", "include_hours": "includeHours"}) +class AdvancedTimeSettings(BaseModel): + """Allows more granular control over time included in the report + + :param include_days: Days of the week for which the report is calculated, defaults to None + :type include_days: List[DayOfWeek], optional + :param include_hours: Hours of the day for which the report is calculated, defaults to None + :type include_hours: List[HoursInterval], optional + """ + + def __init__( + self, + include_days: List[DayOfWeek] = None, + include_hours: List[HoursInterval] = None, + ): + if include_days is not None: + self.include_days = self._define_list(include_days, DayOfWeek) + if include_hours is not None: + self.include_hours = self._define_list(include_hours, HoursInterval) diff --git a/src/ring_central/models/aggregation_interval.py b/src/ring_central/models/aggregation_interval.py new file mode 100644 index 00000000..b3098d39 --- /dev/null +++ b/src/ring_central/models/aggregation_interval.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AggregationInterval(Enum): + """An enumeration representing different categories. + + :cvar HOUR: "Hour" + :vartype HOUR: str + :cvar DAY: "Day" + :vartype DAY: str + :cvar WEEK: "Week" + :vartype WEEK: str + :cvar MONTH: "Month" + :vartype MONTH: str + """ + + HOUR = "Hour" + DAY = "Day" + WEEK = "Week" + MONTH = "Month" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AggregationInterval._member_map_.values())) diff --git a/src/ring_central/models/aggregation_request.py b/src/ring_central/models/aggregation_request.py new file mode 100644 index 00000000..3c98d1c5 --- /dev/null +++ b/src/ring_central/models/aggregation_request.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .grouping import Grouping, GroupingGuard +from .direct_grouping import DirectGrouping +from .grouping_by_members import GroupingByMembers +from .time_settings import TimeSettings +from .call_filters import CallFilters +from .aggregation_response_options import AggregationResponseOptions + + +@JsonMap( + { + "time_settings": "timeSettings", + "call_filters": "callFilters", + "response_options": "responseOptions", + } +) +class AggregationRequest(BaseModel): + """AggregationRequest + + :param grouping: This field specifies the dimensions by which the response should be grouped and specific keys to narrow the response. See also [Call Aggregate reports](https://developers.ringcentral.com/guide/analytics/aggregate) or [Call Timeline reports](https://developers.ringcentral.com/guide/analytics/timeline) pages in the developer guide for more information + :type grouping: Grouping + :param time_settings: Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive + :type time_settings: TimeSettings + :param call_filters: Optional filters that limit the scope of calls (joined via AND), defaults to None + :type call_filters: CallFilters, optional + :param response_options: This field provides mapping of possible breakdown options for call aggregation and aggregation formula + :type response_options: AggregationResponseOptions + """ + + def __init__( + self, + grouping: Grouping, + time_settings: TimeSettings, + response_options: AggregationResponseOptions, + call_filters: CallFilters = None, + ): + self.grouping = GroupingGuard.return_one_of(grouping) + self.time_settings = self._define_object(time_settings, TimeSettings) + if call_filters is not None: + self.call_filters = self._define_object(call_filters, CallFilters) + self.response_options = self._define_object( + response_options, AggregationResponseOptions + ) diff --git a/src/ring_central/models/aggregation_response.py b/src/ring_central/models/aggregation_response.py new file mode 100644 index 00000000..c04d7292 --- /dev/null +++ b/src/ring_central/models/aggregation_response.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .response_paging import ResponsePaging +from .aggregation_response_data import AggregationResponseData + + +@JsonMap({}) +class AggregationResponse(BaseModel): + """AggregationResponse + + :param paging: Paging information + :type paging: ResponsePaging + :param data: Aggregation result + :type data: AggregationResponseData + """ + + def __init__(self, paging: ResponsePaging, data: AggregationResponseData): + self.paging = self._define_object(paging, ResponsePaging) + self.data = self._define_object(data, AggregationResponseData) diff --git a/src/ring_central/models/aggregation_response_data.py b/src/ring_central/models/aggregation_response_data.py new file mode 100644 index 00000000..79704470 --- /dev/null +++ b/src/ring_central/models/aggregation_response_data.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .grouping_options import GroupingOptions +from .aggregation_response_record import AggregationResponseRecord + + +@JsonMap({"grouped_by": "groupedBy"}) +class AggregationResponseData(BaseModel): + """Aggregation result + + :param grouped_by: The selected grouping option + :type grouped_by: GroupingOptions + :param records: A list of call aggregations as per the grouping and filtering options specified in the request, defaults to None + :type records: List[AggregationResponseRecord], optional + """ + + def __init__( + self, + grouped_by: GroupingOptions, + records: List[AggregationResponseRecord] = None, + ): + self.grouped_by = self._enum_matching( + grouped_by, GroupingOptions.list(), "grouped_by" + ) + if records is not None: + self.records = self._define_list(records, AggregationResponseRecord) diff --git a/src/ring_central/models/aggregation_response_options.py b/src/ring_central/models/aggregation_response_options.py new file mode 100644 index 00000000..6b344174 --- /dev/null +++ b/src/ring_central/models/aggregation_response_options.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .aggregation_response_options_counters import AggregationResponseOptionsCounters +from .aggregation_response_options_timers import AggregationResponseOptionsTimers + + +@JsonMap({}) +class AggregationResponseOptions(BaseModel): + """This field provides mapping of possible breakdown options for call aggregation and aggregation formula + + :param counters: The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required, defaults to None + :type counters: AggregationResponseOptionsCounters, optional + :param timers: The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually. If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required. If left empty, aggregation will be performed on per-call basis, defaults to None + :type timers: AggregationResponseOptionsTimers, optional + """ + + def __init__( + self, + counters: AggregationResponseOptionsCounters = None, + timers: AggregationResponseOptionsTimers = None, + ): + if counters is not None: + self.counters = self._define_object( + counters, AggregationResponseOptionsCounters + ) + if timers is not None: + self.timers = self._define_object(timers, AggregationResponseOptionsTimers) diff --git a/src/ring_central/models/aggregation_response_options_counters.py b/src/ring_central/models/aggregation_response_options_counters.py new file mode 100644 index 00000000..573ac3a5 --- /dev/null +++ b/src/ring_central/models/aggregation_response_options_counters.py @@ -0,0 +1,418 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .aggregation_type import AggregationType +from .aggregation_interval import AggregationInterval +from .queue_opportunities_aggregation_type import QueueOpportunitiesAggregationType + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersAllCalls(BaseModel): + """Aggregation of all calls count + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByDirection(BaseModel): + """Aggregation of calls count by direction (Inbound, Outbound) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByOrigin(BaseModel): + """Aggregation of calls count by origin (Internal, External) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByResponse(BaseModel): + """Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsSegments(BaseModel): + """Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByResult(BaseModel): + """Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByCompanyHours(BaseModel): + """Aggregation of calls count by company hours (BusinessHours, AfterHours) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByQueueSla(BaseModel): + """Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByActions(BaseModel): + """Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AggregationResponseOptionsCountersCallsByType(BaseModel): + """Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap({"aggregation_type": "aggregationType"}) +class AggregationResponseOptionsCountersQueueOpportunities(BaseModel): + """Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External) + + :param aggregation_type: Counter aggregation type for queue opportunities, limited to `Sum` only. + :type aggregation_type: QueueOpportunitiesAggregationType + """ + + def __init__(self, aggregation_type: QueueOpportunitiesAggregationType): + self.aggregation_type = self._enum_matching( + aggregation_type, + QueueOpportunitiesAggregationType.list(), + "aggregation_type", + ) + + +@JsonMap( + { + "all_calls": "allCalls", + "calls_by_direction": "callsByDirection", + "calls_by_origin": "callsByOrigin", + "calls_by_response": "callsByResponse", + "calls_segments": "callsSegments", + "calls_by_result": "callsByResult", + "calls_by_company_hours": "callsByCompanyHours", + "calls_by_queue_sla": "callsByQueueSla", + "calls_by_actions": "callsByActions", + "calls_by_type": "callsByType", + "queue_opportunities": "queueOpportunities", + } +) +class AggregationResponseOptionsCounters(BaseModel): + """The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually. + If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. + If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required + + :param all_calls: Aggregation of all calls count, defaults to None + :type all_calls: AggregationResponseOptionsCountersAllCalls, optional + :param calls_by_direction: Aggregation of calls count by direction (Inbound, Outbound), defaults to None + :type calls_by_direction: AggregationResponseOptionsCountersCallsByDirection, optional + :param calls_by_origin: Aggregation of calls count by origin (Internal, External), defaults to None + :type calls_by_origin: AggregationResponseOptionsCountersCallsByOrigin, optional + :param calls_by_response: Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_by_response: AggregationResponseOptionsCountersCallsByResponse, optional + :param calls_segments: Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments: CallsSegments, optional + :param calls_by_result: Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_by_result: AggregationResponseOptionsCountersCallsByResult, optional + :param calls_by_company_hours: Aggregation of calls count by company hours (BusinessHours, AfterHours), defaults to None + :type calls_by_company_hours: AggregationResponseOptionsCountersCallsByCompanyHours, optional + :param calls_by_queue_sla: Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping, defaults to None + :type calls_by_queue_sla: AggregationResponseOptionsCountersCallsByQueueSla, optional + :param calls_by_actions: Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer), defaults to None + :type calls_by_actions: AggregationResponseOptionsCountersCallsByActions, optional + :param calls_by_type: Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound), defaults to None + :type calls_by_type: AggregationResponseOptionsCountersCallsByType, optional + :param queue_opportunities: Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External), defaults to None + :type queue_opportunities: AggregationResponseOptionsCountersQueueOpportunities, optional + """ + + def __init__( + self, + all_calls: AggregationResponseOptionsCountersAllCalls = None, + calls_by_direction: AggregationResponseOptionsCountersCallsByDirection = None, + calls_by_origin: AggregationResponseOptionsCountersCallsByOrigin = None, + calls_by_response: AggregationResponseOptionsCountersCallsByResponse = None, + calls_segments: CallsSegments = None, + calls_by_result: AggregationResponseOptionsCountersCallsByResult = None, + calls_by_company_hours: AggregationResponseOptionsCountersCallsByCompanyHours = None, + calls_by_queue_sla: AggregationResponseOptionsCountersCallsByQueueSla = None, + calls_by_actions: AggregationResponseOptionsCountersCallsByActions = None, + calls_by_type: AggregationResponseOptionsCountersCallsByType = None, + queue_opportunities: AggregationResponseOptionsCountersQueueOpportunities = None, + ): + if all_calls is not None: + self.all_calls = self._define_object( + all_calls, AggregationResponseOptionsCountersAllCalls + ) + if calls_by_direction is not None: + self.calls_by_direction = self._define_object( + calls_by_direction, AggregationResponseOptionsCountersCallsByDirection + ) + if calls_by_origin is not None: + self.calls_by_origin = self._define_object( + calls_by_origin, AggregationResponseOptionsCountersCallsByOrigin + ) + if calls_by_response is not None: + self.calls_by_response = self._define_object( + calls_by_response, AggregationResponseOptionsCountersCallsByResponse + ) + if calls_segments is not None: + self.calls_segments = self._define_object(calls_segments, CallsSegments) + if calls_by_result is not None: + self.calls_by_result = self._define_object( + calls_by_result, AggregationResponseOptionsCountersCallsByResult + ) + if calls_by_company_hours is not None: + self.calls_by_company_hours = self._define_object( + calls_by_company_hours, + AggregationResponseOptionsCountersCallsByCompanyHours, + ) + if calls_by_queue_sla is not None: + self.calls_by_queue_sla = self._define_object( + calls_by_queue_sla, AggregationResponseOptionsCountersCallsByQueueSla + ) + if calls_by_actions is not None: + self.calls_by_actions = self._define_object( + calls_by_actions, AggregationResponseOptionsCountersCallsByActions + ) + if calls_by_type is not None: + self.calls_by_type = self._define_object( + calls_by_type, AggregationResponseOptionsCountersCallsByType + ) + if queue_opportunities is not None: + self.queue_opportunities = self._define_object( + queue_opportunities, + AggregationResponseOptionsCountersQueueOpportunities, + ) diff --git a/src/ring_central/models/aggregation_response_options_timers.py b/src/ring_central/models/aggregation_response_options_timers.py new file mode 100644 index 00000000..08b0a288 --- /dev/null +++ b/src/ring_central/models/aggregation_response_options_timers.py @@ -0,0 +1,357 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .aggregation_type import AggregationType +from .aggregation_interval import AggregationInterval + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class AllCallsDuration(BaseModel): + """Aggregation of all calls duration + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByDirection(BaseModel): + """Aggregation of calls duration by direction (Inbound, Outbound) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByOrigin(BaseModel): + """Aggregation of calls duration by origin (Internal, External) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByResponse(BaseModel): + """Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsSegmentsDuration(BaseModel): + """Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByResult(BaseModel): + """Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByCompanyHours(BaseModel): + """Aggregation of calls duration by company hours (BusinessHours, AfterHours) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByQueueSla(BaseModel): + """Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "aggregation_type": "aggregationType", + "aggregation_interval": "aggregationInterval", + } +) +class CallsDurationByType(BaseModel): + """Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound) + + :param aggregation_type: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent` + :type aggregation_type: AggregationType + :param aggregation_interval: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`, defaults to None + :type aggregation_interval: AggregationInterval, optional + """ + + def __init__( + self, + aggregation_type: AggregationType, + aggregation_interval: AggregationInterval = None, + ): + self.aggregation_type = self._enum_matching( + aggregation_type, AggregationType.list(), "aggregation_type" + ) + if aggregation_interval is not None: + self.aggregation_interval = self._enum_matching( + aggregation_interval, AggregationInterval.list(), "aggregation_interval" + ) + + +@JsonMap( + { + "all_calls_duration": "allCallsDuration", + "calls_duration_by_direction": "callsDurationByDirection", + "calls_duration_by_origin": "callsDurationByOrigin", + "calls_duration_by_response": "callsDurationByResponse", + "calls_segments_duration": "callsSegmentsDuration", + "calls_duration_by_result": "callsDurationByResult", + "calls_duration_by_company_hours": "callsDurationByCompanyHours", + "calls_duration_by_queue_sla": "callsDurationByQueueSla", + "calls_duration_by_type": "callsDurationByType", + } +) +class AggregationResponseOptionsTimers(BaseModel): + """The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually. + If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported. + If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required. + If left empty, aggregation will be performed on per-call basis + + :param all_calls_duration: Aggregation of all calls duration, defaults to None + :type all_calls_duration: AllCallsDuration, optional + :param calls_duration_by_direction: Aggregation of calls duration by direction (Inbound, Outbound), defaults to None + :type calls_duration_by_direction: CallsDurationByDirection, optional + :param calls_duration_by_origin: Aggregation of calls duration by origin (Internal, External), defaults to None + :type calls_duration_by_origin: CallsDurationByOrigin, optional + :param calls_duration_by_response: Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_duration_by_response: CallsDurationByResponse, optional + :param calls_segments_duration: Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments_duration: CallsSegmentsDuration, optional + :param calls_duration_by_result: Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_duration_by_result: CallsDurationByResult, optional + :param calls_duration_by_company_hours: Aggregation of calls duration by company hours (BusinessHours, AfterHours), defaults to None + :type calls_duration_by_company_hours: CallsDurationByCompanyHours, optional + :param calls_duration_by_queue_sla: Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping, defaults to None + :type calls_duration_by_queue_sla: CallsDurationByQueueSla, optional + :param calls_duration_by_type: Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound), defaults to None + :type calls_duration_by_type: CallsDurationByType, optional + """ + + def __init__( + self, + all_calls_duration: AllCallsDuration = None, + calls_duration_by_direction: CallsDurationByDirection = None, + calls_duration_by_origin: CallsDurationByOrigin = None, + calls_duration_by_response: CallsDurationByResponse = None, + calls_segments_duration: CallsSegmentsDuration = None, + calls_duration_by_result: CallsDurationByResult = None, + calls_duration_by_company_hours: CallsDurationByCompanyHours = None, + calls_duration_by_queue_sla: CallsDurationByQueueSla = None, + calls_duration_by_type: CallsDurationByType = None, + ): + if all_calls_duration is not None: + self.all_calls_duration = self._define_object( + all_calls_duration, AllCallsDuration + ) + if calls_duration_by_direction is not None: + self.calls_duration_by_direction = self._define_object( + calls_duration_by_direction, CallsDurationByDirection + ) + if calls_duration_by_origin is not None: + self.calls_duration_by_origin = self._define_object( + calls_duration_by_origin, CallsDurationByOrigin + ) + if calls_duration_by_response is not None: + self.calls_duration_by_response = self._define_object( + calls_duration_by_response, CallsDurationByResponse + ) + if calls_segments_duration is not None: + self.calls_segments_duration = self._define_object( + calls_segments_duration, CallsSegmentsDuration + ) + if calls_duration_by_result is not None: + self.calls_duration_by_result = self._define_object( + calls_duration_by_result, CallsDurationByResult + ) + if calls_duration_by_company_hours is not None: + self.calls_duration_by_company_hours = self._define_object( + calls_duration_by_company_hours, CallsDurationByCompanyHours + ) + if calls_duration_by_queue_sla is not None: + self.calls_duration_by_queue_sla = self._define_object( + calls_duration_by_queue_sla, CallsDurationByQueueSla + ) + if calls_duration_by_type is not None: + self.calls_duration_by_type = self._define_object( + calls_duration_by_type, CallsDurationByType + ) diff --git a/src/ring_central/models/aggregation_response_record.py b/src/ring_central/models/aggregation_response_record.py new file mode 100644 index 00000000..6740fa28 --- /dev/null +++ b/src/ring_central/models/aggregation_response_record.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .key_info import KeyInfo +from .calls_timers import CallsTimers +from .calls_counters import CallsCounters + + +@JsonMap({}) +class AggregationResponseRecord(BaseModel): + """AggregationResponseRecord + + :param key: Grouping key + :type key: str + :param info: Additional info about the key, defaults to None + :type info: KeyInfo, optional + :param timers: Call length data for the specified grouping, defaults to None + :type timers: CallsTimers, optional + :param counters: Call volume data for the specified grouping, defaults to None + :type counters: CallsCounters, optional + """ + + def __init__( + self, + key: str, + info: KeyInfo = None, + timers: CallsTimers = None, + counters: CallsCounters = None, + ): + self.key = key + if info is not None: + self.info = self._define_object(info, KeyInfo) + if timers is not None: + self.timers = self._define_object(timers, CallsTimers) + if counters is not None: + self.counters = self._define_object(counters, CallsCounters) diff --git a/src/ring_central/models/aggregation_type.py b/src/ring_central/models/aggregation_type.py new file mode 100644 index 00000000..d356cadb --- /dev/null +++ b/src/ring_central/models/aggregation_type.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AggregationType(Enum): + """An enumeration representing different categories. + + :cvar SUM: "Sum" + :vartype SUM: str + :cvar AVERAGE: "Average" + :vartype AVERAGE: str + :cvar MAX: "Max" + :vartype MAX: str + :cvar MIN: "Min" + :vartype MIN: str + :cvar PERCENT: "Percent" + :vartype PERCENT: str + """ + + SUM = "Sum" + AVERAGE = "Average" + MAX = "Max" + MIN = "Min" + PERCENT = "Percent" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AggregationType._member_map_.values())) diff --git a/src/ring_central/models/all_calls.py b/src/ring_central/models/all_calls.py new file mode 100644 index 00000000..19aa9dbb --- /dev/null +++ b/src/ring_central/models/all_calls.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType + + +@JsonMap({"value_type": "valueType"}) +class AllCalls(BaseModel): + """Data for all calls + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Value for all calls + :type values: float + """ + + def __init__(self, value_type: ValueType, values: float): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = values diff --git a/src/ring_central/models/answer_target.py b/src/ring_central/models/answer_target.py new file mode 100644 index 00000000..2baa8135 --- /dev/null +++ b/src/ring_central/models/answer_target.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"device_id": "deviceId"}) +class AnswerTarget(BaseModel): + """AnswerTarget + + :param device_id: Device ID that is used to answer to incoming call., defaults to None + :type device_id: str, optional + """ + + def __init__(self, device_id: str = None): + if device_id is not None: + self.device_id = device_id diff --git a/src/ring_central/models/answering_rule_info.py b/src/ring_central/models/answering_rule_info.py new file mode 100644 index 00000000..9635de0e --- /dev/null +++ b/src/ring_central/models/answering_rule_info.py @@ -0,0 +1,233 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .schedule_info import ScheduleInfo +from .called_number_info import CalledNumberInfo +from .callers_info import CallersInfo +from .forwarding_info import ForwardingInfo +from .unconditional_forwarding_info import UnconditionalForwardingInfo +from .queue_info import QueueInfo +from .transferred_extension_info import TransferredExtensionInfo +from .voicemail_info import VoicemailInfo +from .greeting_info import GreetingInfo +from .shared_lines_info import SharedLinesInfo +from .missed_call_info import MissedCallInfo + + +class AnsweringRuleInfoType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AnsweringRuleInfoType._member_map_.values())) + + +class AnsweringRuleInfoCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar FORWARDCALLS: "ForwardCalls" + :vartype FORWARDCALLS: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + :cvar AGENTQUEUE: "AgentQueue" + :vartype AGENTQUEUE: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar TAKEMESSAGESONLY: "TakeMessagesOnly" + :vartype TAKEMESSAGESONLY: str + :cvar PLAYANNOUNCEMENTONLY: "PlayAnnouncementOnly" + :vartype PLAYANNOUNCEMENTONLY: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + """ + + FORWARDCALLS = "ForwardCalls" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + AGENTQUEUE = "AgentQueue" + TRANSFERTOEXTENSION = "TransferToExtension" + TAKEMESSAGESONLY = "TakeMessagesOnly" + PLAYANNOUNCEMENTONLY = "PlayAnnouncementOnly" + SHAREDLINES = "SharedLines" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AnsweringRuleInfoCallHandlingAction._member_map_.values(), + ) + ) + + +class AnsweringRuleInfoScreening(Enum): + """An enumeration representing different categories. + + :cvar OFF: "Off" + :vartype OFF: str + :cvar NOCALLERID: "NoCallerId" + :vartype NOCALLERID: str + :cvar UNKNOWNCALLERID: "UnknownCallerId" + :vartype UNKNOWNCALLERID: str + :cvar ALWAYS: "Always" + :vartype ALWAYS: str + """ + + OFF = "Off" + NOCALLERID = "NoCallerId" + UNKNOWNCALLERID = "UnknownCallerId" + ALWAYS = "Always" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AnsweringRuleInfoScreening._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + "unconditional_forwarding": "unconditionalForwarding", + "shared_lines": "sharedLines", + "missed_call": "missedCall", + } +) +class AnsweringRuleInfo(BaseModel): + """AnsweringRuleInfo + + :param uri: Canonical URI to an answering rule resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + :param type_: Type of an answering rule, defaults to None + :type type_: AnsweringRuleInfoType, optional + :param name: Name of an answering rule specified by user, defaults to None + :type name: str, optional + :param enabled: Specifies if an answering rule is active or inactive, defaults to None + :type enabled: bool, optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: ScheduleInfo, optional + :param called_numbers: Answering rules are applied when calling to selected number(s), defaults to None + :type called_numbers: List[CalledNumberInfo], optional + :param callers: Answering rules are applied when calls are received from specified caller(s), defaults to None + :type callers: List[CallersInfo], optional + :param call_handling_action: Specifies how incoming calls are forwarded, defaults to None + :type call_handling_action: AnsweringRuleInfoCallHandlingAction, optional + :param forwarding: Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded, defaults to None + :type forwarding: ForwardingInfo, optional + :param unconditional_forwarding: Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter , defaults to None + :type unconditional_forwarding: UnconditionalForwardingInfo, optional + :param queue: Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action , defaults to None + :type queue: QueueInfo, optional + :param transfer: transfer, defaults to None + :type transfer: TransferredExtensionInfo, optional + :param voicemail: Specifies whether to take a voicemail and who should do it, defaults to None + :type voicemail: VoicemailInfo, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List, defaults to None + :type greetings: List[GreetingInfo], optional + :param screening: Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off', defaults to None + :type screening: AnsweringRuleInfoScreening, optional + :param shared_lines: SharedLines call handling action settings, defaults to None + :type shared_lines: SharedLinesInfo, optional + :param missed_call: Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false', defaults to None + :type missed_call: MissedCallInfo, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + type_: AnsweringRuleInfoType = None, + name: str = None, + enabled: bool = None, + schedule: ScheduleInfo = None, + called_numbers: List[CalledNumberInfo] = None, + callers: List[CallersInfo] = None, + call_handling_action: AnsweringRuleInfoCallHandlingAction = None, + forwarding: ForwardingInfo = None, + unconditional_forwarding: UnconditionalForwardingInfo = None, + queue: QueueInfo = None, + transfer: TransferredExtensionInfo = None, + voicemail: VoicemailInfo = None, + greetings: List[GreetingInfo] = None, + screening: AnsweringRuleInfoScreening = None, + shared_lines: SharedLinesInfo = None, + missed_call: MissedCallInfo = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, AnsweringRuleInfoType.list(), "type_" + ) + if name is not None: + self.name = name + if enabled is not None: + self.enabled = enabled + if schedule is not None: + self.schedule = self._define_object(schedule, ScheduleInfo) + if called_numbers is not None: + self.called_numbers = self._define_list(called_numbers, CalledNumberInfo) + if callers is not None: + self.callers = self._define_list(callers, CallersInfo) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + AnsweringRuleInfoCallHandlingAction.list(), + "call_handling_action", + ) + if forwarding is not None: + self.forwarding = self._define_object(forwarding, ForwardingInfo) + if unconditional_forwarding is not None: + self.unconditional_forwarding = self._define_object( + unconditional_forwarding, UnconditionalForwardingInfo + ) + if queue is not None: + self.queue = self._define_object(queue, QueueInfo) + if transfer is not None: + self.transfer = self._define_object(transfer, TransferredExtensionInfo) + if voicemail is not None: + self.voicemail = self._define_object(voicemail, VoicemailInfo) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) + if screening is not None: + self.screening = self._enum_matching( + screening, AnsweringRuleInfoScreening.list(), "screening" + ) + if shared_lines is not None: + self.shared_lines = self._define_object(shared_lines, SharedLinesInfo) + if missed_call is not None: + self.missed_call = self._define_object(missed_call, MissedCallInfo) diff --git a/src/ring_central/models/answering_rule_query_request.py b/src/ring_central/models/answering_rule_query_request.py new file mode 100644 index 00000000..f0ea5941 --- /dev/null +++ b/src/ring_central/models/answering_rule_query_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AnsweringRuleQueryRequest(BaseModel): + """AnsweringRuleQueryRequest + + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/api_error_with_parameter.py b/src/ring_central/models/api_error_with_parameter.py new file mode 100644 index 00000000..14cb8c00 --- /dev/null +++ b/src/ring_central/models/api_error_with_parameter.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "error_code": "errorCode", + "parameter_name": "parameterName", + "parameter_value": "parameterValue", + } +) +class ApiErrorWithParameter(BaseModel): + """ApiErrorWithParameter + + :param error_code: Logical error code (typically, 3 letters followed with number, dash separated) + :type error_code: str + :param message: User-friendly error message + :type message: str + :param parameter_name: The name of the API parameter/attribute which caused the error, defaults to None + :type parameter_name: str, optional + :param parameter_value: The value of the API parameter/attribute which caused the error, defaults to None + :type parameter_value: str, optional + """ + + def __init__( + self, + error_code: str, + message: str, + parameter_name: str = None, + parameter_value: str = None, + ): + self.error_code = error_code + self.message = message + if parameter_name is not None: + self.parameter_name = parameter_name + if parameter_value is not None: + self.parameter_value = parameter_value diff --git a/src/ring_central/models/api_version_info.py b/src/ring_central/models/api_version_info.py new file mode 100644 index 00000000..462e8caf --- /dev/null +++ b/src/ring_central/models/api_version_info.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "version_string": "versionString", + "release_date": "releaseDate", + "uri_string": "uriString", + } +) +class ApiVersionInfo(BaseModel): + """ApiVersionInfo + + :param uri: Canonical URI of API version, defaults to None + :type uri: str, optional + :param version_string: Version of the RingCentral REST API, defaults to None + :type version_string: str, optional + :param release_date: Release date of this version, defaults to None + :type release_date: str, optional + :param uri_string: URI part determining the current version, defaults to None + :type uri_string: str, optional + """ + + def __init__( + self, + uri: str = None, + version_string: str = None, + release_date: str = None, + uri_string: str = None, + ): + if uri is not None: + self.uri = uri + if version_string is not None: + self.version_string = version_string + if release_date is not None: + self.release_date = release_date + if uri_string is not None: + self.uri_string = uri_string diff --git a/src/ring_central/models/api_versions_list.py b/src/ring_central/models/api_versions_list.py new file mode 100644 index 00000000..1f78b083 --- /dev/null +++ b/src/ring_central/models/api_versions_list.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .api_version_info import ApiVersionInfo + + +@JsonMap( + { + "api_versions": "apiVersions", + "server_version": "serverVersion", + "server_revision": "serverRevision", + } +) +class ApiVersionsList(BaseModel): + """ApiVersionsList + + :param uri: Canonical URI of the API version, defaults to None + :type uri: str, optional + :param api_versions: Full API version information: uri, number, release date, defaults to None + :type api_versions: List[ApiVersionInfo], optional + :param server_version: Server version, defaults to None + :type server_version: str, optional + :param server_revision: Server revision, defaults to None + :type server_revision: str, optional + """ + + def __init__( + self, + uri: str = None, + api_versions: List[ApiVersionInfo] = None, + server_version: str = None, + server_revision: str = None, + ): + if uri is not None: + self.uri = uri + if api_versions is not None: + self.api_versions = self._define_list(api_versions, ApiVersionInfo) + if server_version is not None: + self.server_version = server_version + if server_revision is not None: + self.server_revision = server_revision diff --git a/src/ring_central/models/archive_info.py b/src/ring_central/models/archive_info.py new file mode 100644 index 00000000..4e842602 --- /dev/null +++ b/src/ring_central/models/archive_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ArchiveInfo(BaseModel): + """ArchiveInfo + + :param size: Archive size in bytes, defaults to None + :type size: int, optional + :param uri: Link for archive download, defaults to None + :type uri: str, optional + """ + + def __init__(self, size: int = None, uri: str = None): + if size is not None: + self.size = size + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/asr_input.py b/src/ring_central/models/asr_input.py new file mode 100644 index 00000000..36b33a47 --- /dev/null +++ b/src/ring_central/models/asr_input.py @@ -0,0 +1,170 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .speech_context_phrases_input import SpeechContextPhrasesInput + + +class AsrInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AsrInputEncoding._member_map_.values())) + + +class AsrInputAudioType(Enum): + """An enumeration representing different categories. + + :cvar CALLCENTER: "CallCenter" + :vartype CALLCENTER: str + :cvar MEETING: "Meeting" + :vartype MEETING: str + :cvar EARNINGSCALLS: "EarningsCalls" + :vartype EARNINGSCALLS: str + :cvar INTERVIEW: "Interview" + :vartype INTERVIEW: str + :cvar PRESSCONFERENCE: "PressConference" + :vartype PRESSCONFERENCE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + """ + + CALLCENTER = "CallCenter" + MEETING = "Meeting" + EARNINGSCALLS = "EarningsCalls" + INTERVIEW = "Interview" + PRESSCONFERENCE = "PressConference" + VOICEMAIL = "Voicemail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AsrInputAudioType._member_map_.values())) + + +@JsonMap( + { + "content_uri": "contentUri", + "language_code": "languageCode", + "audio_type": "audioType", + "separate_speaker_per_channel": "separateSpeakerPerChannel", + "speaker_count": "speakerCount", + "speaker_ids": "speakerIds", + "enable_voice_activity_detection": "enableVoiceActivityDetection", + "enable_punctuation": "enablePunctuation", + "enable_speaker_diarization": "enableSpeakerDiarization", + "speech_contexts": "speechContexts", + } +) +class AsrInput(BaseModel): + """AsrInput + + :param content_uri: Publicly facing uri, defaults to None + :type content_uri: str, optional + :param encoding: The encoding of the original audio, defaults to None + :type encoding: AsrInputEncoding, optional + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param source: Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc, defaults to None + :type source: str, optional + :param audio_type: Type of the audio, defaults to None + :type audio_type: AsrInputAudioType, optional + :param separate_speaker_per_channel: Indicates that the input audio is multi-channel and each channel has a separate speaker., defaults to None + :type separate_speaker_per_channel: bool, optional + :param speaker_count: Number of speakers in the file, omit parameter if unknown, defaults to None + :type speaker_count: int, optional + :param speaker_ids: Optional set of speakers to be identified from the call., defaults to None + :type speaker_ids: List[str], optional + :param enable_voice_activity_detection: Apply voice activity detection., defaults to None + :type enable_voice_activity_detection: bool, optional + :param enable_punctuation: Enables Smart Punctuation API., defaults to None + :type enable_punctuation: bool, optional + :param enable_speaker_diarization: Tags each word corresponding to the speaker., defaults to None + :type enable_speaker_diarization: bool, optional + :param speech_contexts: Indicates the words/phrases that will be used for boosting the transcript. This can help to boost accuracy for cases like Person Names, Company names etc., defaults to None + :type speech_contexts: List[SpeechContextPhrasesInput], optional + """ + + def __init__( + self, + content_uri: str = None, + encoding: AsrInputEncoding = None, + language_code: str = None, + source: str = None, + audio_type: AsrInputAudioType = None, + separate_speaker_per_channel: bool = None, + speaker_count: int = None, + speaker_ids: List[str] = None, + enable_voice_activity_detection: bool = None, + enable_punctuation: bool = None, + enable_speaker_diarization: bool = None, + speech_contexts: List[SpeechContextPhrasesInput] = None, + ): + if content_uri is not None: + self.content_uri = content_uri + if encoding is not None: + self.encoding = self._enum_matching( + encoding, AsrInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + if source is not None: + self.source = source + if audio_type is not None: + self.audio_type = self._enum_matching( + audio_type, AsrInputAudioType.list(), "audio_type" + ) + if separate_speaker_per_channel is not None: + self.separate_speaker_per_channel = separate_speaker_per_channel + if speaker_count is not None: + self.speaker_count = speaker_count + if speaker_ids is not None: + self.speaker_ids = speaker_ids + if enable_voice_activity_detection is not None: + self.enable_voice_activity_detection = enable_voice_activity_detection + if enable_punctuation is not None: + self.enable_punctuation = enable_punctuation + if enable_speaker_diarization is not None: + self.enable_speaker_diarization = enable_speaker_diarization + if speech_contexts is not None: + self.speech_contexts = self._define_list( + speech_contexts, SpeechContextPhrasesInput + ) diff --git a/src/ring_central/models/assign_multiple_devices_automatic_location_updates.py b/src/ring_central/models/assign_multiple_devices_automatic_location_updates.py new file mode 100644 index 00000000..076a5a7e --- /dev/null +++ b/src/ring_central/models/assign_multiple_devices_automatic_location_updates.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "enabled_device_ids": "enabledDeviceIds", + "disabled_device_ids": "disabledDeviceIds", + } +) +class AssignMultipleDevicesAutomaticLocationUpdates(BaseModel): + """AssignMultipleDevicesAutomaticLocationUpdates + + :param enabled_device_ids: enabled_device_ids, defaults to None + :type enabled_device_ids: List[str], optional + :param disabled_device_ids: disabled_device_ids, defaults to None + :type disabled_device_ids: List[str], optional + """ + + def __init__( + self, + enabled_device_ids: List[str] = None, + disabled_device_ids: List[str] = None, + ): + if enabled_device_ids is not None: + self.enabled_device_ids = enabled_device_ids + if disabled_device_ids is not None: + self.disabled_device_ids = disabled_device_ids diff --git a/src/ring_central/models/assign_phone_number_request.py b/src/ring_central/models/assign_phone_number_request.py new file mode 100644 index 00000000..bf57db80 --- /dev/null +++ b/src/ring_central/models/assign_phone_number_request.py @@ -0,0 +1,85 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_type import PhoneNumberType + + +class AssignPhoneNumberRequestUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + PHONELINE = "PhoneLine" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AssignPhoneNumberRequestUsageType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id"}) +class AssignPhoneNumberRequestExtension(BaseModel): + """AssignPhoneNumberRequestExtension + + :param id_: Internal identifier of an extension + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({"type_": "type", "usage_type": "usageType", "cost_center_id": "costCenterId"}) +class AssignPhoneNumberRequest(BaseModel): + """AssignPhoneNumberRequest + + :param type_: Type of phone number, defaults to None + :type type_: PhoneNumberType, optional + :param usage_type: Target usage type of phone number (only listed values are supported) + :type usage_type: AssignPhoneNumberRequestUsageType + :param extension: extension, defaults to None + :type extension: AssignPhoneNumberRequestExtension, optional + :param cost_center_id: cost_center_id, defaults to None + :type cost_center_id: str, optional + """ + + def __init__( + self, + usage_type: AssignPhoneNumberRequestUsageType, + type_: PhoneNumberType = None, + extension: AssignPhoneNumberRequestExtension = None, + cost_center_id: str = None, + ): + if type_ is not None: + self.type_ = self._enum_matching(type_, PhoneNumberType.list(), "type_") + self.usage_type = self._enum_matching( + usage_type, AssignPhoneNumberRequestUsageType.list(), "usage_type" + ) + if extension is not None: + self.extension = self._define_object( + extension, AssignPhoneNumberRequestExtension + ) + if cost_center_id is not None: + self.cost_center_id = cost_center_id diff --git a/src/ring_central/models/assigned_country_info.py b/src/ring_central/models/assigned_country_info.py new file mode 100644 index 00000000..66ac0600 --- /dev/null +++ b/src/ring_central/models/assigned_country_info.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "iso_code": "isoCode"}) +class AssignedCountryInfo(BaseModel): + """Information on a country assigned to an extension user. Returned for the User extension type only + + :param id_: Internal identifier of an assigned country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an assigned country resource, defaults to None + :type uri: str, optional + :param iso_code: Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html), defaults to None + :type iso_code: str, optional + :param name: Official name of a country, defaults to None + :type name: str, optional + """ + + def __init__( + self, id_: str = None, uri: str = None, iso_code: str = None, name: str = None + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if iso_code is not None: + self.iso_code = iso_code + if name is not None: + self.name = name diff --git a/src/ring_central/models/assigned_role_resource.py b/src/ring_central/models/assigned_role_resource.py new file mode 100644 index 00000000..f4a395d2 --- /dev/null +++ b/src/ring_central/models/assigned_role_resource.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "auto_assigned": "autoAssigned", + "display_name": "displayName", + "site_compatible": "siteCompatible", + "site_restricted": "siteRestricted", + } +) +class AssignedRoleResource(BaseModel): + """AssignedRoleResource + + :param uri: Link to an assigned role resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a role, defaults to None + :type id_: str, optional + :param auto_assigned: Specifies if a role can be auto assigned, defaults to None + :type auto_assigned: bool, optional + :param display_name: Name of a default role, defaults to None + :type display_name: str, optional + :param site_compatible: Site compatibility flag, defaults to None + :type site_compatible: bool, optional + :param site_restricted: Site restricted flag, defaults to None + :type site_restricted: bool, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + auto_assigned: bool = None, + display_name: str = None, + site_compatible: bool = None, + site_restricted: bool = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if auto_assigned is not None: + self.auto_assigned = auto_assigned + if display_name is not None: + self.display_name = display_name + if site_compatible is not None: + self.site_compatible = site_compatible + if site_restricted is not None: + self.site_restricted = site_restricted diff --git a/src/ring_central/models/assigned_roles_resource.py b/src/ring_central/models/assigned_roles_resource.py new file mode 100644 index 00000000..8ca2170f --- /dev/null +++ b/src/ring_central/models/assigned_roles_resource.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .assigned_role_resource import AssignedRoleResource + + +@JsonMap({}) +class AssignedRolesResource(BaseModel): + """AssignedRolesResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[AssignedRoleResource], optional + """ + + def __init__(self, uri: str = None, records: List[AssignedRoleResource] = None): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, AssignedRoleResource) diff --git a/src/ring_central/models/assignee_status.py b/src/ring_central/models/assignee_status.py new file mode 100644 index 00000000..9c382a66 --- /dev/null +++ b/src/ring_central/models/assignee_status.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AssigneeStatus(Enum): + """An enumeration representing different categories. + + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + PENDING = "Pending" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AssigneeStatus._member_map_.values())) diff --git a/src/ring_central/models/assignment_status.py b/src/ring_central/models/assignment_status.py new file mode 100644 index 00000000..0503ab2f --- /dev/null +++ b/src/ring_central/models/assignment_status.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AssignmentStatus(Enum): + """An enumeration representing different categories. + + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + :cvar ASSIGNED: "Assigned" + :vartype ASSIGNED: str + """ + + UNASSIGNED = "Unassigned" + ASSIGNED = "Assigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AssignmentStatus._member_map_.values())) diff --git a/src/ring_central/models/assistant_resource.py b/src/ring_central/models/assistant_resource.py new file mode 100644 index 00000000..7b727641 --- /dev/null +++ b/src/ring_central/models/assistant_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AssistantResource(BaseModel): + """AssistantResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/assistants_resource.py b/src/ring_central/models/assistants_resource.py new file mode 100644 index 00000000..b75d7bce --- /dev/null +++ b/src/ring_central/models/assistants_resource.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .assistant_resource import AssistantResource + + +@JsonMap({}) +class AssistantsResource(BaseModel): + """AssistantsResource + + :param records: records, defaults to None + :type records: List[AssistantResource], optional + """ + + def __init__(self, records: List[AssistantResource] = None): + if records is not None: + self.records = self._define_list(records, AssistantResource) diff --git a/src/ring_central/models/assisted_user_resource.py b/src/ring_central/models/assisted_user_resource.py new file mode 100644 index 00000000..b86e7a97 --- /dev/null +++ b/src/ring_central/models/assisted_user_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AssistedUserResource(BaseModel): + """AssistedUserResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/assisted_users_resource.py b/src/ring_central/models/assisted_users_resource.py new file mode 100644 index 00000000..181048e7 --- /dev/null +++ b/src/ring_central/models/assisted_users_resource.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .assisted_user_resource import AssistedUserResource + + +@JsonMap({}) +class AssistedUsersResource(BaseModel): + """AssistedUsersResource + + :param records: records, defaults to None + :type records: List[AssistedUserResource], optional + """ + + def __init__(self, records: List[AssistedUserResource] = None): + if records is not None: + self.records = self._define_list(records, AssistedUserResource) diff --git a/src/ring_central/models/audio_prompt_info.py b/src/ring_central/models/audio_prompt_info.py new file mode 100644 index 00000000..dc9f5764 --- /dev/null +++ b/src/ring_central/models/audio_prompt_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AudioPromptInfo(BaseModel): + """For 'Audio' mode only. Prompt media reference + + :param uri: Link to a prompt audio file, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a prompt, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/auth_profile_check_resource.py b/src/ring_central/models/auth_profile_check_resource.py new file mode 100644 index 00000000..3dffbdba --- /dev/null +++ b/src/ring_central/models/auth_profile_check_resource.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .active_permission_resource import ActivePermissionResource + + +@JsonMap({}) +class AuthProfileCheckResource(BaseModel): + """AuthProfileCheckResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param successful: successful, defaults to None + :type successful: bool, optional + :param details: details, defaults to None + :type details: ActivePermissionResource, optional + """ + + def __init__( + self, + uri: str = None, + successful: bool = None, + details: ActivePermissionResource = None, + ): + if uri is not None: + self.uri = uri + if successful is not None: + self.successful = successful + if details is not None: + self.details = self._define_object(details, ActivePermissionResource) diff --git a/src/ring_central/models/auth_profile_resource.py b/src/ring_central/models/auth_profile_resource.py new file mode 100644 index 00000000..b1073ff9 --- /dev/null +++ b/src/ring_central/models/auth_profile_resource.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .active_permission_resource import ActivePermissionResource + + +@JsonMap({}) +class AuthProfileResource(BaseModel): + """AuthProfileResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param permissions: permissions, defaults to None + :type permissions: List[ActivePermissionResource], optional + """ + + def __init__( + self, uri: str = None, permissions: List[ActivePermissionResource] = None + ): + if uri is not None: + self.uri = uri + if permissions is not None: + self.permissions = self._define_list(permissions, ActivePermissionResource) diff --git a/src/ring_central/models/authorization_type.py b/src/ring_central/models/authorization_type.py new file mode 100644 index 00000000..5b00b759 --- /dev/null +++ b/src/ring_central/models/authorization_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AuthorizationType(Enum): + """An enumeration representing different categories. + + :cvar SIPDIGEST: "SipDigest" + :vartype SIPDIGEST: str + :cvar BEARERTOKEN: "BearerToken" + :vartype BEARERTOKEN: str + """ + + SIPDIGEST = "SipDigest" + BEARERTOKEN = "BearerToken" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AuthorizationType._member_map_.values())) diff --git a/src/ring_central/models/authorize_request.py b/src/ring_central/models/authorize_request.py new file mode 100644 index 00000000..1b3fba94 --- /dev/null +++ b/src/ring_central/models/authorize_request.py @@ -0,0 +1,120 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .display_modes_enum import DisplayModesEnum +from .code_challenge_method_enum import CodeChallengeMethodEnum + + +class AuthorizeRequestResponseType(Enum): + """An enumeration representing different categories. + + :cvar CODE: "code" + :vartype CODE: str + """ + + CODE = "code" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, AuthorizeRequestResponseType._member_map_.values()) + ) + + +@JsonMap({}) +class AuthorizeRequest(BaseModel): + """AuthorizeRequest + + :param response_type: Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" + :type response_type: AuthorizeRequestResponseType + :param redirect_uri: This is the URI where the Authorization Server redirects the User Agent to at the end of the authorization flow. The value of this parameter must exactly match one of the URIs registered for this client application. This parameter is required if there are more than one redirect URIs registered for the app. , defaults to None + :type redirect_uri: str, optional + :param client_id: The registered identifier of a client application + :type client_id: str + :param state: An opaque value used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the User Agent back to the client. The parameter SHOULD be used for preventing cross-site request forgery attacks. , defaults to None + :type state: str, optional + :param scope: The list of requested OAuth scopes (space separated), defaults to None + :type scope: str, optional + :param display: Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. , defaults to None + :type display: DisplayModesEnum, optional + :param prompt: Space-delimited, case-sensitive list of ASCII string values that specifies whether the Authorization Server prompts the End-User for re-authentication and consent. The defined values are: - `login` - RingCentral native login form, - `sso` - Single Sign-On login form, - `consent` - form to show the requested scope and prompt user for consent. Either `login` or `sso` (or both) must be specified. The default value is `login sso` , defaults to None + :type prompt: str, optional + :param ui_locales: End-User's preferred languages and scripts for the user interface, represented as a space-separated list of [RFC-5646](https://datatracker.ietf.org/doc/html/rfc5646) language tag values, ordered by preference. If this parameter is provided, its value overrides 'Accept-Language' header value and 'localeId' parameter value (if any) , defaults to None + :type ui_locales: str, optional + :param code_challenge: The code challenge value as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) , defaults to None + :type code_challenge: str, optional + :param code_challenge_method: The code challenge method as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) , defaults to None + :type code_challenge_method: CodeChallengeMethodEnum, optional + :param nonce: String value used to associate a Client session with an ID Token, and to mitigate replay attacks. The value is passed through unmodified from the Authentication Request to the ID Token. , defaults to None + :type nonce: str, optional + :param ui_options: Login form user interface options (space-separated). By default, the UI options that are registered for this client application will be used , defaults to None + :type ui_options: str, optional + :param login_hint: Hint to the Authorization Server about the login identifier the End-User might use to log in., defaults to None + :type login_hint: str, optional + :param brand_id: RingCentral Brand identifier. If it is not provided in the request, server will try to determine brand from the client application profile. , defaults to None + :type brand_id: str, optional + :param accept_language: accept_language, defaults to None + :type accept_language: str, optional + """ + + def __init__( + self, + response_type: AuthorizeRequestResponseType, + client_id: str, + redirect_uri: str = None, + state: str = None, + scope: str = None, + display: DisplayModesEnum = None, + prompt: str = None, + ui_locales: str = None, + code_challenge: str = None, + code_challenge_method: CodeChallengeMethodEnum = None, + nonce: str = None, + ui_options: str = None, + login_hint: str = None, + brand_id: str = None, + accept_language: str = None, + ): + self.response_type = self._enum_matching( + response_type, AuthorizeRequestResponseType.list(), "response_type" + ) + if redirect_uri is not None: + self.redirect_uri = redirect_uri + self.client_id = client_id + if state is not None: + self.state = state + if scope is not None: + self.scope = scope + if display is not None: + self.display = self._enum_matching( + display, DisplayModesEnum.list(), "display" + ) + if prompt is not None: + self.prompt = prompt + if ui_locales is not None: + self.ui_locales = ui_locales + if code_challenge is not None: + self.code_challenge = code_challenge + if code_challenge_method is not None: + self.code_challenge_method = self._enum_matching( + code_challenge_method, + CodeChallengeMethodEnum.list(), + "code_challenge_method", + ) + if nonce is not None: + self.nonce = nonce + if ui_options is not None: + self.ui_options = ui_options + if login_hint is not None: + self.login_hint = login_hint + if brand_id is not None: + self.brand_id = brand_id + if accept_language is not None: + self.accept_language = accept_language diff --git a/src/ring_central/models/authorize_response_type.py b/src/ring_central/models/authorize_response_type.py new file mode 100644 index 00000000..d9f16066 --- /dev/null +++ b/src/ring_central/models/authorize_response_type.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AuthorizeResponseType(Enum): + """An enumeration representing different categories. + + :cvar CODE: "code" + :vartype CODE: str + """ + + CODE = "code" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AuthorizeResponseType._member_map_.values())) diff --git a/src/ring_central/models/auto_shared.py b/src/ring_central/models/auto_shared.py new file mode 100644 index 00000000..fe002c27 --- /dev/null +++ b/src/ring_central/models/auto_shared.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class AutoShared(BaseModel): + """Controls whether recording can be auto shared + + :param enabled: Controls whether preference is enabled, defaults to None + :type enabled: bool, optional + :param locked: Describes whether preference is locked on Service Web, defaults to None + :type locked: bool, optional + """ + + def __init__(self, enabled: bool = None, locked: bool = None): + if enabled is not None: + self.enabled = enabled + if locked is not None: + self.locked = locked diff --git a/src/ring_central/models/automatic_location_updates_device_info.py b/src/ring_central/models/automatic_location_updates_device_info.py new file mode 100644 index 00000000..358bf92e --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_device_info.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_device_type import AutomaticLocationUpdatesDeviceType +from .automatic_location_updates_model_info import AutomaticLocationUpdatesModelInfo +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo +from .automatic_location_updates_phone_line import AutomaticLocationUpdatesPhoneLine + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "feature_enabled": "featureEnabled", + "phone_lines": "phoneLines", + } +) +class AutomaticLocationUpdatesDeviceInfo(BaseModel): + """AutomaticLocationUpdatesDeviceInfo + + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + :param type_: Device type, defaults to None + :type type_: AutomaticLocationUpdatesDeviceType, optional + :param serial: Serial number for HardPhone (is returned only when the phone is shipped and provisioned), defaults to None + :type serial: str, optional + :param feature_enabled: Specifies if Automatic Location Updates feature is enabled, defaults to None + :type feature_enabled: bool, optional + :param name: Device name, defaults to None + :type name: str, optional + :param model: HardPhone model information, defaults to None + :type model: AutomaticLocationUpdatesModelInfo, optional + :param site: Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` , defaults to None + :type site: AutomaticLocationUpdatesSiteInfo, optional + :param phone_lines: Phone lines information, defaults to None + :type phone_lines: List[AutomaticLocationUpdatesPhoneLine], optional + """ + + def __init__( + self, + id_: str = None, + type_: AutomaticLocationUpdatesDeviceType = None, + serial: str = None, + feature_enabled: bool = None, + name: str = None, + model: AutomaticLocationUpdatesModelInfo = None, + site: AutomaticLocationUpdatesSiteInfo = None, + phone_lines: List[AutomaticLocationUpdatesPhoneLine] = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, AutomaticLocationUpdatesDeviceType.list(), "type_" + ) + if serial is not None: + self.serial = serial + if feature_enabled is not None: + self.feature_enabled = feature_enabled + if name is not None: + self.name = name + if model is not None: + self.model = self._define_object(model, AutomaticLocationUpdatesModelInfo) + if site is not None: + self.site = self._define_object(site, AutomaticLocationUpdatesSiteInfo) + if phone_lines is not None: + self.phone_lines = self._define_list( + phone_lines, AutomaticLocationUpdatesPhoneLine + ) diff --git a/src/ring_central/models/automatic_location_updates_device_type.py b/src/ring_central/models/automatic_location_updates_device_type.py new file mode 100644 index 00000000..c1af2216 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_device_type.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AutomaticLocationUpdatesDeviceType(Enum): + """An enumeration representing different categories. + + :cvar HARDPHONE: "HardPhone" + :vartype HARDPHONE: str + :cvar SOFTPHONE: "SoftPhone" + :vartype SOFTPHONE: str + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + """ + + HARDPHONE = "HardPhone" + SOFTPHONE = "SoftPhone" + OTHERPHONE = "OtherPhone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesDeviceType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/automatic_location_updates_model_feature.py b/src/ring_central/models/automatic_location_updates_model_feature.py new file mode 100644 index 00000000..8a19075b --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_model_feature.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AutomaticLocationUpdatesModelFeature(Enum): + """An enumeration representing different categories. + + :cvar BLA: "BLA" + :vartype BLA: str + :cvar INTERCOM: "Intercom" + :vartype INTERCOM: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar HELD: "HELD" + :vartype HELD: str + """ + + BLA = "BLA" + INTERCOM = "Intercom" + PAGING = "Paging" + HELD = "HELD" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesModelFeature._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/automatic_location_updates_model_info.py b/src/ring_central/models/automatic_location_updates_model_info.py new file mode 100644 index 00000000..c3efc750 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_model_info.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_model_feature import ( + AutomaticLocationUpdatesModelFeature, +) + + +@JsonMap({"id_": "id"}) +class AutomaticLocationUpdatesModelInfo(BaseModel): + """HardPhone model information + + :param id_: Device model identifier, defaults to None + :type id_: str, optional + :param name: Device name, defaults to None + :type name: str, optional + :param features: Device feature or multiple features supported, defaults to None + :type features: List[AutomaticLocationUpdatesModelFeature], optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + features: List[AutomaticLocationUpdatesModelFeature] = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if features is not None: + self.features = self._define_list( + features, AutomaticLocationUpdatesModelFeature + ) diff --git a/src/ring_central/models/automatic_location_updates_phone_line.py b/src/ring_central/models/automatic_location_updates_phone_line.py new file mode 100644 index 00000000..9b6483bb --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_phone_line.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_phone_line_type import ( + AutomaticLocationUpdatesPhoneLineType, +) +from .automatic_location_updates_phone_number_info import ( + AutomaticLocationUpdatesPhoneNumberInfo, +) + + +@JsonMap({"line_type": "lineType", "phone_info": "phoneInfo"}) +class AutomaticLocationUpdatesPhoneLine(BaseModel): + """AutomaticLocationUpdatesPhoneLine + + :param line_type: line_type, defaults to None + :type line_type: AutomaticLocationUpdatesPhoneLineType, optional + :param phone_info: phone_info, defaults to None + :type phone_info: AutomaticLocationUpdatesPhoneNumberInfo, optional + """ + + def __init__( + self, + line_type: AutomaticLocationUpdatesPhoneLineType = None, + phone_info: AutomaticLocationUpdatesPhoneNumberInfo = None, + ): + if line_type is not None: + self.line_type = self._enum_matching( + line_type, AutomaticLocationUpdatesPhoneLineType.list(), "line_type" + ) + if phone_info is not None: + self.phone_info = self._define_object( + phone_info, AutomaticLocationUpdatesPhoneNumberInfo + ) diff --git a/src/ring_central/models/automatic_location_updates_phone_line_type.py b/src/ring_central/models/automatic_location_updates_phone_line_type.py new file mode 100644 index 00000000..c20eb462 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_phone_line_type.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class AutomaticLocationUpdatesPhoneLineType(Enum): + """An enumeration representing different categories. + + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar STANDALONE: "Standalone" + :vartype STANDALONE: str + :cvar STANDALONEFREE: "StandaloneFree" + :vartype STANDALONEFREE: str + :cvar BLAPRIMARY: "BlaPrimary" + :vartype BLAPRIMARY: str + :cvar BLASECONDARY: "BlaSecondary" + :vartype BLASECONDARY: str + :cvar BLF: "BLF" + :vartype BLF: str + """ + + UNKNOWN = "Unknown" + STANDALONE = "Standalone" + STANDALONEFREE = "StandaloneFree" + BLAPRIMARY = "BlaPrimary" + BLASECONDARY = "BlaSecondary" + BLF = "BLF" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesPhoneLineType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/automatic_location_updates_phone_number_info.py b/src/ring_central/models/automatic_location_updates_phone_number_info.py new file mode 100644 index 00000000..67d600a2 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_phone_number_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class AutomaticLocationUpdatesPhoneNumberInfo(BaseModel): + """AutomaticLocationUpdatesPhoneNumberInfo + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: int, optional + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: int = None, phone_number: str = None): + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/automatic_location_updates_site_info.py b/src/ring_central/models/automatic_location_updates_site_info.py new file mode 100644 index 00000000..78e22898 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_site_info.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class AutomaticLocationUpdatesSiteInfo(BaseModel): + """Site data. If multi-site feature is turned on for the account, + then ID of a site must be specified. In order to assign a wireless + point to the main site (company) site ID should be set to `main-site` + + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + :param uri: Link to a site resource, defaults to None + :type uri: str, optional + :param name: Name of a site, defaults to None + :type name: str, optional + :param code: Site code value. Returned only if specified, defaults to None + :type code: str, optional + """ + + def __init__( + self, id_: str = None, uri: str = None, name: str = None, code: str = None + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if code is not None: + self.code = code diff --git a/src/ring_central/models/automatic_location_updates_task_info.py b/src/ring_central/models/automatic_location_updates_task_info.py new file mode 100644 index 00000000..b1241006 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_task_info.py @@ -0,0 +1,123 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_result_info import TaskResultInfo + + +class AutomaticLocationUpdatesTaskInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + ACCEPTED = "Accepted" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesTaskInfoStatus._member_map_.values(), + ) + ) + + +class AutomaticLocationUpdatesTaskInfoType(Enum): + """An enumeration representing different categories. + + :cvar WIRELESSPOINTSBULKCREATE: "WirelessPointsBulkCreate" + :vartype WIRELESSPOINTSBULKCREATE: str + :cvar WIRELESSPOINTSBULKUPDATE: "WirelessPointsBulkUpdate" + :vartype WIRELESSPOINTSBULKUPDATE: str + :cvar SWITCHESBULKCREATE: "SwitchesBulkCreate" + :vartype SWITCHESBULKCREATE: str + :cvar SWITCHESBULKUPDATE: "SwitchesBulkUpdate" + :vartype SWITCHESBULKUPDATE: str + """ + + WIRELESSPOINTSBULKCREATE = "WirelessPointsBulkCreate" + WIRELESSPOINTSBULKUPDATE = "WirelessPointsBulkUpdate" + SWITCHESBULKCREATE = "SwitchesBulkCreate" + SWITCHESBULKUPDATE = "SwitchesBulkUpdate" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesTaskInfoType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "type_": "type", + } +) +class AutomaticLocationUpdatesTaskInfo(BaseModel): + """AutomaticLocationUpdatesTaskInfo + + :param id_: Internal identifier of a task, defaults to None + :type id_: str, optional + :param status: Status of a task, defaults to None + :type status: AutomaticLocationUpdatesTaskInfoStatus, optional + :param creation_time: Task creation time, defaults to None + :type creation_time: str, optional + :param last_modified_time: Time of the task latest modification, defaults to None + :type last_modified_time: str, optional + :param type_: Type of task, defaults to None + :type type_: AutomaticLocationUpdatesTaskInfoType, optional + :param result: Task detailed result. Returned for failed and completed tasks, defaults to None + :type result: TaskResultInfo, optional + """ + + def __init__( + self, + id_: str = None, + status: AutomaticLocationUpdatesTaskInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + type_: AutomaticLocationUpdatesTaskInfoType = None, + result: TaskResultInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._enum_matching( + status, AutomaticLocationUpdatesTaskInfoStatus.list(), "status" + ) + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if type_ is not None: + self.type_ = self._enum_matching( + type_, AutomaticLocationUpdatesTaskInfoType.list(), "type_" + ) + if result is not None: + self.result = self._define_object(result, TaskResultInfo) diff --git a/src/ring_central/models/automatic_location_updates_user_info.py b/src/ring_central/models/automatic_location_updates_user_info.py new file mode 100644 index 00000000..5744387f --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_user_info.py @@ -0,0 +1,89 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo + + +class AutomaticLocationUpdatesUserInfoType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + """ + + USER = "User" + LIMITED = "Limited" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + AutomaticLocationUpdatesUserInfoType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "full_name": "fullName", + "extension_number": "extensionNumber", + "feature_enabled": "featureEnabled", + "type_": "type", + } +) +class AutomaticLocationUpdatesUserInfo(BaseModel): + """AutomaticLocationUpdatesUserInfo + + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + :param full_name: User name, defaults to None + :type full_name: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + :param feature_enabled: Specifies whether Automatic Location Updates feature is enabled, defaults to None + :type feature_enabled: bool, optional + :param type_: User extension type, defaults to None + :type type_: AutomaticLocationUpdatesUserInfoType, optional + :param site: Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` , defaults to None + :type site: AutomaticLocationUpdatesSiteInfo, optional + :param department: Department name, defaults to None + :type department: str, optional + """ + + def __init__( + self, + id_: str = None, + full_name: str = None, + extension_number: str = None, + feature_enabled: bool = None, + type_: AutomaticLocationUpdatesUserInfoType = None, + site: AutomaticLocationUpdatesSiteInfo = None, + department: str = None, + ): + if id_ is not None: + self.id_ = id_ + if full_name is not None: + self.full_name = full_name + if extension_number is not None: + self.extension_number = extension_number + if feature_enabled is not None: + self.feature_enabled = feature_enabled + if type_ is not None: + self.type_ = self._enum_matching( + type_, AutomaticLocationUpdatesUserInfoType.list(), "type_" + ) + if site is not None: + self.site = self._define_object(site, AutomaticLocationUpdatesSiteInfo) + if department is not None: + self.department = department diff --git a/src/ring_central/models/automatic_location_updates_user_list.py b/src/ring_central/models/automatic_location_updates_user_list.py new file mode 100644 index 00000000..fdd12ba7 --- /dev/null +++ b/src/ring_central/models/automatic_location_updates_user_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_user_info import AutomaticLocationUpdatesUserInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class AutomaticLocationUpdatesUserList(BaseModel): + """AutomaticLocationUpdatesUserList + + :param uri: Link to the users list resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[AutomaticLocationUpdatesUserInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[AutomaticLocationUpdatesUserInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, AutomaticLocationUpdatesUserInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/automatic_recording_resource.py b/src/ring_central/models/automatic_recording_resource.py new file mode 100644 index 00000000..7e389c2a --- /dev/null +++ b/src/ring_central/models/automatic_recording_resource.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "outbound_call_tones": "outboundCallTones", + "outbound_call_announcement": "outboundCallAnnouncement", + "allow_mute": "allowMute", + "extension_count": "extensionCount", + "retention_period": "retentionPeriod", + "max_number_limit": "maxNumberLimit", + } +) +class AutomaticRecordingResource(BaseModel): + """AutomaticRecordingResource + + :param enabled: Flag for controlling Automatic Call Recording settings, defaults to None + :type enabled: bool, optional + :param outbound_call_tones: Flag for controlling 'Play Call Recording Announcement for Outbound Calls' settings, defaults to None + :type outbound_call_tones: bool, optional + :param outbound_call_announcement: Flag for controlling 'Play periodic tones for outbound calls' settings, defaults to None + :type outbound_call_announcement: bool, optional + :param allow_mute: Flag for controlling 'Allow mute in auto call recording' settings, defaults to None + :type allow_mute: bool, optional + :param extension_count: Total amount of extension that are used in call recordings, defaults to None + :type extension_count: int, optional + :param retention_period: Retention period of a call recording, the default value is 90 days, defaults to None + :type retention_period: int, optional + :param max_number_limit: Maximum number of automatic call recordings per account, the default value is 100 000, defaults to None + :type max_number_limit: int, optional + """ + + def __init__( + self, + enabled: bool = None, + outbound_call_tones: bool = None, + outbound_call_announcement: bool = None, + allow_mute: bool = None, + extension_count: int = None, + retention_period: int = None, + max_number_limit: int = None, + ): + if enabled is not None: + self.enabled = enabled + if outbound_call_tones is not None: + self.outbound_call_tones = outbound_call_tones + if outbound_call_announcement is not None: + self.outbound_call_announcement = outbound_call_announcement + if allow_mute is not None: + self.allow_mute = allow_mute + if extension_count is not None: + self.extension_count = extension_count + if retention_period is not None: + self.retention_period = retention_period + if max_number_limit is not None: + self.max_number_limit = max_number_limit diff --git a/src/ring_central/models/background_image.py b/src/ring_central/models/background_image.py new file mode 100644 index 00000000..aff9c191 --- /dev/null +++ b/src/ring_central/models/background_image.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .image_fill_mode import ImageFillMode, ImageFillModeGuard +from .horizontal_alignment import HorizontalAlignment, HorizontalAlignmentGuard +from .vertical_alignment import VerticalAlignment, VerticalAlignmentGuard + + +class BackgroundImageType(Enum): + """An enumeration representing different categories. + + :cvar BACKGROUNDIMAGE: "BackgroundImage" + :vartype BACKGROUNDIMAGE: str + """ + + BACKGROUNDIMAGE = "BackgroundImage" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, BackgroundImageType._member_map_.values())) + + +@JsonMap( + { + "type_": "type", + "fill_mode": "fillMode", + "horizontal_alignment": "horizontalAlignment", + "vertical_alignment": "verticalAlignment", + } +) +class BackgroundImage(BaseModel): + """Specifies a background image oa a card. Acceptable formats are PNG, JPEG, and GIF + + :param type_: Must be `BackgroundImage`, defaults to None + :type type_: BackgroundImageType, optional + :param url: The URL/data URL of an image to be used as a background of a card. Acceptable formats are PNG, JPEG, and GIF + :type url: str + :param fill_mode: Describes how the image should fill the area, defaults to None + :type fill_mode: ImageFillMode, optional + :param horizontal_alignment: Describes how the image should be aligned if it must be cropped or if using repeat fill mode, defaults to None + :type horizontal_alignment: HorizontalAlignment, optional + :param vertical_alignment: Describes how the image should be aligned if it must be cropped or if using repeat fill mode, defaults to None + :type vertical_alignment: VerticalAlignment, optional + """ + + def __init__( + self, + url: str, + type_: BackgroundImageType = None, + fill_mode: ImageFillMode = None, + horizontal_alignment: HorizontalAlignment = None, + vertical_alignment: VerticalAlignment = None, + ): + if type_ is not None: + self.type_ = self._enum_matching(type_, BackgroundImageType.list(), "type_") + self.url = url + if fill_mode is not None: + self.fill_mode = ImageFillModeGuard.return_one_of(fill_mode) + if horizontal_alignment is not None: + self.horizontal_alignment = HorizontalAlignmentGuard.return_one_of( + horizontal_alignment + ) + if vertical_alignment is not None: + self.vertical_alignment = VerticalAlignmentGuard.return_one_of( + vertical_alignment + ) diff --git a/src/ring_central/models/base.py b/src/ring_central/models/base.py new file mode 100644 index 00000000..ff27d07a --- /dev/null +++ b/src/ring_central/models/base.py @@ -0,0 +1,277 @@ +# This file was generated by liblab | https://liblab.com/ + +import re +from typing import List, Union, Type, Any, TypeVar, Optional, get_origin, get_args +from enum import Enum + +T = TypeVar("T") + + +class BaseModel: + """ + A base class that most of the models in the SDK inherited from. + """ + + def __init__(self): + pass + + def _pattern_matching(self, value: str, pattern: str, variable_name: str): + """ + Checks if a value matches a regex pattern and returns the value if there's a match. + + :param value: The value to be checked. + :type value: str + :param pattern: The regex pattern. + :type pattern: str + :param variable_name: The variable name. + :type variable_name: str + :return: The value if it matches the pattern. + :rtype: str + :raises ValueError: If the value does not match the pattern. + """ + if value is None: + return None + + if re.match(r"{}".format(pattern), value): + return value + else: + raise ValueError( + f"Invalid value for {variable_name}: must match {pattern}, received {value}" + ) + + def _enum_matching( + self, value: Union[str, Enum], enum_values: List[str], variable_name: str + ): + """ + Checks if a value (str or enum) matches the required enum values and returns the value if there's a match. + + :param value: The value to be checked. + :type value: Union[str, Enum] + :param enum_values: The list of valid enum values. + :type enum_values: List[str] + :param variable_name: The variable name. + :type variable_name: str + :return: The value if it matches one of the enum values. + :rtype: Union[str, Enum] + :raises ValueError: If the value does not match any of the enum values. + """ + if value is None: + return None + + str_value = value.value if isinstance(value, Enum) else value + if str_value in enum_values: + return value + else: + raise ValueError( + f"Invalid value for {variable_name}: must match one of {enum_values}, received {value}" + ) + + def _define_object(self, input_data, input_class): + """ + Check if the input data is an instance of the input class and return the input data if it is. + Otherwise, return an instance of the input class. + + :param input_data: The input data to be checked. + :param input_class: The class that the input data should be an instance of. + :return: The input data if it is an instance of input_class, otherwise an instance of input_class. + :rtype: object + """ + if input_data is None: + return None + elif isinstance(input_data, input_class): + return input_data + else: + return input_class._unmap(input_data) + + def _define_list( + self, input_data: Optional[List[Any]], list_class: Type[T] + ) -> Optional[List[T]]: + """ + Create a list of instances of a specified class from input data. + :param input_data: The input data to be transformed into a list of instances. + :param list_class: The class that each instance in the list should be an instance of. + :return: A list of instances of list_class. + :rtype: list + """ + + if input_data is None: + return None + + result: List[T] = [] + for item in input_data: + if hasattr(list_class, "__args__") and len(list_class.__args__) > 0: + class_list = self.__create_class_map(list_class) + OneOfBaseModel.class_list = class_list + result.append(OneOfBaseModel.return_one_of(item)) + elif issubclass(list_class, Enum): + result.append( + self._enum_matching(item, list_class.list(), list_class.__name__) + ) + elif isinstance(item, list_class): + result.append(item) + elif isinstance(item, dict): + result.append(list_class._unmap(item)) + else: + result.append(list_class(item)) + return result + + def __create_class_map(self, union_type): + """ + Create a dictionary that maps class names to the actual classes in a Union type. + + :param union_type: The Union type to create a class map for. + :return: A dictionary mapping class names to classes. + :rtype: dict + """ + class_map = {} + for arg in union_type.__args__: + if arg.__name__: + class_map[arg.__name__] = arg + return class_map + + def _get_representation(self, level=0): + """ + Get a string representation of the model. + + :param int level: The indentation level. + :return: A string representation of the model. + """ + indent = " " * level + representation_lines = [] + + for attr, value in vars(self).items(): + if value is not None: + value_representation = ( + value._get_representation(level + 1) + if hasattr(value, "_get_representation") + else repr(value) + ) + representation_lines.append( + f"{indent} {attr}={value_representation}" + ) + + return ( + f"{self.__class__.__name__}(\n" + + ",\n".join(representation_lines) + + f"\n{indent})" + ) + + def __str__(self): + return self._get_representation() + + def __repr__(self): + return self._get_representation() + + +class OneOfBaseModel: + """ + A base class for handling 'oneOf' models where multiple class constructors are available, + and the appropriate one is determined based on the input data. + + :ivar dict class_list: A dictionary mapping class names to their constructors. + """ + + class_list = {} + + @classmethod + def return_one_of(cls, input_data): + """ + Attempts to initialize an instance of one of the classes in the class_list + based on the provided input data. + + :param input_data: Input data used for initialization. + :return: An instance of one of the classes specified. + :rtype: object + :raises ValueError: If no class can be initialized with the provided input data, + or if optional parameters don't match the input data. + """ + if input_data is None: + return None + + if isinstance(input_data, (str, float, int, bool)): + return input_data + + for class_constructor in cls.class_list.values(): + exception_list = [] + try: + # Check if the class is a only a TypeHint + origin = get_origin(class_constructor) + if origin is not None and isinstance(input_data, list): + list_instance = cls._get_list_instance( + input_data, class_constructor, origin + ) + if list_instance is not None: + return list_instance + else: + continue # Try the next class constructor + + # Check if the input_data is already an instance of the class + if isinstance(input_data, class_constructor): + return input_data + + # Check if the input_data is a dictionary that can be used to initialize the class + elif isinstance(input_data, dict): + instance = class_constructor._unmap(input_data) + if cls._check_params(input_data, instance): + return instance + except Exception as e: + exception_list.append({"class": class_constructor, "exception": e}) + + cls._raise_one_of_error(exception_list) + + @classmethod + def _get_list_instance(cls, input_data, class_constructor, origin): + """ + Return the list of elements for a given class constructor and origin type. + + :param input_data: The input data to check. + :param class_constructor: The constructor of the class to check against. + :param origin: The origin type to check against. + :return: The input data if all elements are instances of the type specified in the class_constructor, + or a new list with each item unmapped. + """ + args = get_args(class_constructor) + if isinstance(input_data, origin): + if args and len(args) == 1 and isinstance(input_data, list): + inner_type = args[0] + if all(isinstance(item, inner_type) for item in input_data): + return input_data + else: + return [inner_type._unmap(item) for item in input_data] + + @classmethod + def _check_params(cls, raw_input, instance): + """ + Checks if the optional parameters in the instance match the keys in the input data, + ensuring compliance with one of the models. + + :param dict raw_input: Input data used for initialization. + :param object instance: An instance of one of the classes specified in the 'oneOf' model. + :return: True if the optional parameters in the instance match the keys in the input data, False otherwise. + """ + input_values = {k: v for k, v in raw_input.items() if v is not None}.values() + instance_map = instance._map() + instance_values = { + k: v for k, v in instance_map.items() if v is not None + }.values() + return len(input_values) == len(instance_values) + + @classmethod + def _raise_one_of_error(cls, exception_list): + """ + Raises a ValueError with the appropriate error message for one of models. + + :param exception_list: List of exceptions that occurred. + :type exception_list: list + :raises ValueError: If input data does not match any of the models. + """ + if not exception_list: + return + exception_messages = "\n".join( + f"Class: {exception['class']}, Exception: {exception['exception']}" + for exception in exception_list + ) + raise ValueError( + f"Input data must match one of the models: {list(cls.class_list.keys())}" + f"Errors occurred:\n{exception_messages}" + ) diff --git a/src/ring_central/models/basic_extension_info_resource.py b/src/ring_central/models/basic_extension_info_resource.py new file mode 100644 index 00000000..cc5267d5 --- /dev/null +++ b/src/ring_central/models/basic_extension_info_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class BasicExtensionInfoResource(BaseModel): + """BasicExtensionInfoResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: str = None, name: str = None, extension_number: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/batch_list_response.py b/src/ring_central/models/batch_list_response.py new file mode 100644 index 00000000..d635b381 --- /dev/null +++ b/src/ring_central/models/batch_list_response.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_batch_response import MessageBatchResponse +from .paging_resource import PagingResource + + +@JsonMap({}) +class BatchListResponse(BaseModel): + """The list of batches retrieved for an account and other filter criteria such as fromPhoneNumber, date specified in the request. + + :param records: An array containing individual batches, defaults to None + :type records: List[MessageBatchResponse], optional + :param paging: Pagination details, defaults to None + :type paging: PagingResource, optional + """ + + def __init__( + self, records: List[MessageBatchResponse] = None, paging: PagingResource = None + ): + if records is not None: + self.records = self._define_list(records, MessageBatchResponse) + if paging is not None: + self.paging = self._define_object(paging, PagingResource) diff --git a/src/ring_central/models/batch_provision_error_item.py b/src/ring_central/models/batch_provision_error_item.py new file mode 100644 index 00000000..70ee4254 --- /dev/null +++ b/src/ring_central/models/batch_provision_error_item.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .api_error_with_parameter import ApiErrorWithParameter + + +@JsonMap({}) +class BatchProvisionErrorItem(BaseModel): + """BatchProvisionErrorItem + + :param successful: Indicates if the provisioning operation was successful for this item, always `false` in this model + :type successful: bool + :param errors: errors + :type errors: List[ApiErrorWithParameter] + """ + + def __init__(self, successful: bool, errors: List[ApiErrorWithParameter]): + self.successful = successful + self.errors = self._define_list(errors, ApiErrorWithParameter) diff --git a/src/ring_central/models/batch_provision_users_request.py b/src/ring_central/models/batch_provision_users_request.py new file mode 100644 index 00000000..5df333fb --- /dev/null +++ b/src/ring_central/models/batch_provision_users_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .batch_provision_users_request_item import BatchProvisionUsersRequestItem + + +@JsonMap({}) +class BatchProvisionUsersRequest(BaseModel): + """Describes request for user extension provisioning + + :param records: records + :type records: List[BatchProvisionUsersRequestItem] + """ + + def __init__(self, records: List[BatchProvisionUsersRequestItem]): + self.records = self._define_list(records, BatchProvisionUsersRequestItem) diff --git a/src/ring_central/models/batch_provision_users_request_item.py b/src/ring_central/models/batch_provision_users_request_item.py new file mode 100644 index 00000000..f89345df --- /dev/null +++ b/src/ring_central/models/batch_provision_users_request_item.py @@ -0,0 +1,168 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_definition import DeviceDefinition + + +class BatchProvisionUsersRequestItemStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + """ + + ENABLED = "Enabled" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + BatchProvisionUsersRequestItemStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "mobile_number": "mobileNumber", + "email_as_login_name": "emailAsLoginName", + } +) +class Contact(BaseModel): + """Contact + + :param first_name: Given name, defaults to None + :type first_name: str, optional + :param last_name: Family name, defaults to None + :type last_name: str, optional + :param email: Contact email, defaults to None + :type email: str, optional + :param mobile_number: Phone number in e.164 format (with '+' prefix), defaults to None + :type mobile_number: str, optional + :param email_as_login_name: Indicates that contact email is enabled as login name for this user. Please note that email must be unique in this case. , defaults to None + :type email_as_login_name: bool, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + email: str = None, + mobile_number: str = None, + email_as_login_name: bool = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if mobile_number is not None: + self.mobile_number = self._pattern_matching( + mobile_number, "^\+[1-9]\d{1,14}$", "mobile_number" + ) + if email_as_login_name is not None: + self.email_as_login_name = email_as_login_name + + +@JsonMap({"id_": "id"}) +class CostCenter(BaseModel): + """CostCenter + + :param id_: Internal identifier of the Cost Center + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({"id_": "id"}) +class BatchProvisionUsersRequestItemRoles(BaseModel): + """BatchProvisionUsersRequestItemRoles + + :param id_: Internal identifier of a role to be assigned + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({"device_info": "deviceInfo"}) +class BatchProvisionUsersRequestItemDevices(BaseModel): + """BatchProvisionUsersRequestItemDevices + + :param device_info: device_info + :type device_info: DeviceDefinition + """ + + def __init__(self, device_info: DeviceDefinition): + self.device_info = self._define_object(device_info, DeviceDefinition) + + +@JsonMap( + { + "extension_number": "extensionNumber", + "cost_center": "costCenter", + "send_welcome_email": "sendWelcomeEmail", + } +) +class BatchProvisionUsersRequestItem(BaseModel): + """Describes request for user extension provisioning + + :param extension_number: Short number of an extension. Actual max length depends on system length limit for extension. , defaults to None + :type extension_number: str, optional + :param status: Extension status. Only "Enabled" can be specified + :type status: BatchProvisionUsersRequestItemStatus + :param contact: contact + :type contact: Contact + :param cost_center: cost_center, defaults to None + :type cost_center: CostCenter, optional + :param roles: roles, defaults to None + :type roles: List[BatchProvisionUsersRequestItemRoles], optional + :param devices: devices, defaults to None + :type devices: List[BatchProvisionUsersRequestItemDevices], optional + :param send_welcome_email: Specifies if a welcome/activation email is sent to the new users (within extension status changing from 'Unassigned' to 'NotActivated/Disabled') , defaults to None + :type send_welcome_email: bool, optional + """ + + def __init__( + self, + status: BatchProvisionUsersRequestItemStatus, + contact: Contact, + extension_number: str = None, + cost_center: CostCenter = None, + roles: List[BatchProvisionUsersRequestItemRoles] = None, + devices: List[BatchProvisionUsersRequestItemDevices] = None, + send_welcome_email: bool = None, + ): + if extension_number is not None: + self.extension_number = self._pattern_matching( + extension_number, "^\d{3,8}$", "extension_number" + ) + self.status = self._enum_matching( + status, BatchProvisionUsersRequestItemStatus.list(), "status" + ) + self.contact = self._define_object(contact, Contact) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenter) + if roles is not None: + self.roles = self._define_list(roles, BatchProvisionUsersRequestItemRoles) + if devices is not None: + self.devices = self._define_list( + devices, BatchProvisionUsersRequestItemDevices + ) + if send_welcome_email is not None: + self.send_welcome_email = send_welcome_email diff --git a/src/ring_central/models/batch_provision_users_response.py b/src/ring_central/models/batch_provision_users_response.py new file mode 100644 index 00000000..6b78eefa --- /dev/null +++ b/src/ring_central/models/batch_provision_users_response.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .batch_provision_users_success_item import BatchProvisionUsersSuccessItem +from .batch_provision_error_item import BatchProvisionErrorItem + + +class BatchProvisionUsersResponseResultsGuard(OneOfBaseModel): + class_list = { + "BatchProvisionUsersSuccessItem": BatchProvisionUsersSuccessItem, + "BatchProvisionErrorItem": BatchProvisionErrorItem, + } + + +BatchProvisionUsersResponseResults = Union[ + BatchProvisionUsersSuccessItem, BatchProvisionErrorItem +] + + +@JsonMap({}) +class BatchProvisionUsersResponse(BaseModel): + """BatchProvisionUsersResponse + + :param results: results + :type results: List[BatchProvisionUsersResponseResults] + """ + + def __init__(self, results: List[BatchProvisionUsersResponseResults]): + self.results = self._define_list(results, BatchProvisionUsersResponseResults) diff --git a/src/ring_central/models/batch_provision_users_success_item.py b/src/ring_central/models/batch_provision_users_success_item.py new file mode 100644 index 00000000..bce6d1f8 --- /dev/null +++ b/src/ring_central/models/batch_provision_users_success_item.py @@ -0,0 +1,56 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class ExtensionDevices(BaseModel): + """ExtensionDevices + + :param id_: The internal identifier of device created + :type id_: str + :param phone_number: Phone number in e.164 format (with '+' prefix) + :type phone_number: str + """ + + def __init__(self, id_: str, phone_number: str): + self.id_ = id_ + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) + + +@JsonMap({"id_": "id"}) +class BatchProvisionUsersSuccessItemExtension(BaseModel): + """BatchProvisionUsersSuccessItemExtension + + :param id_: The internal identifier of RingCentral extension created + :type id_: str + :param devices: devices + :type devices: List[ExtensionDevices] + """ + + def __init__(self, id_: str, devices: List[ExtensionDevices]): + self.id_ = id_ + self.devices = self._define_list(devices, ExtensionDevices) + + +@JsonMap({}) +class BatchProvisionUsersSuccessItem(BaseModel): + """BatchProvisionUsersSuccessItem + + :param successful: Indicates if the provisioning operation was successful for this item, always `true` in this model + :type successful: bool + :param extension: extension + :type extension: BatchProvisionUsersSuccessItemExtension + """ + + def __init__( + self, successful: bool, extension: BatchProvisionUsersSuccessItemExtension + ): + self.successful = successful + self.extension = self._define_object( + extension, BatchProvisionUsersSuccessItemExtension + ) diff --git a/src/ring_central/models/billing_info.py b/src/ring_central/models/billing_info.py new file mode 100644 index 00000000..3bd4b320 --- /dev/null +++ b/src/ring_central/models/billing_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"cost_included": "costIncluded", "cost_purchased": "costPurchased"}) +class BillingInfo(BaseModel): + """Billing information related to the call. Returned for 'Detailed' view only + + :param cost_included: Cost per minute, paid and already included in your RingCentral service plan. For example International Calls , defaults to None + :type cost_included: float, optional + :param cost_purchased: Cost per minute, paid and not included in your RingCentral service plan, defaults to None + :type cost_purchased: float, optional + """ + + def __init__(self, cost_included: float = None, cost_purchased: float = None): + if cost_included is not None: + self.cost_included = cost_included + if cost_purchased is not None: + self.cost_purchased = cost_purchased diff --git a/src/ring_central/models/billing_plan_info.py b/src/ring_central/models/billing_plan_info.py new file mode 100644 index 00000000..9778c4e2 --- /dev/null +++ b/src/ring_central/models/billing_plan_info.py @@ -0,0 +1,112 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class DurationUnit(Enum): + """An enumeration representing different categories. + + :cvar DAY: "Day" + :vartype DAY: str + :cvar MONTH: "Month" + :vartype MONTH: str + :cvar YEAR: "Year" + :vartype YEAR: str + """ + + DAY = "Day" + MONTH = "Month" + YEAR = "Year" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DurationUnit._member_map_.values())) + + +class BillingPlanInfoType(Enum): + """An enumeration representing different categories. + + :cvar INITIAL: "Initial" + :vartype INITIAL: str + :cvar REGULAR: "Regular" + :vartype REGULAR: str + :cvar SUSPENDED: "Suspended" + :vartype SUSPENDED: str + :cvar TRIAL: "Trial" + :vartype TRIAL: str + :cvar TRIALNOCC: "TrialNoCC" + :vartype TRIALNOCC: str + :cvar FREE: "Free" + :vartype FREE: str + """ + + INITIAL = "Initial" + REGULAR = "Regular" + SUSPENDED = "Suspended" + TRIAL = "Trial" + TRIALNOCC = "TrialNoCC" + FREE = "Free" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, BillingPlanInfoType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "duration_unit": "durationUnit", + "type_": "type", + "included_phone_lines": "includedPhoneLines", + } +) +class BillingPlanInfo(BaseModel): + """Information on account billing plan + + :param id_: Internal identifier of a billing plan, defaults to None + :type id_: str, optional + :param name: Billing plan name, defaults to None + :type name: str, optional + :param duration_unit: Duration period, defaults to None + :type duration_unit: DurationUnit, optional + :param duration: Number of duration units, defaults to None + :type duration: int, optional + :param type_: Billing plan type, defaults to None + :type type_: BillingPlanInfoType, optional + :param included_phone_lines: Included digital lines count, defaults to None + :type included_phone_lines: int, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + duration_unit: DurationUnit = None, + duration: int = None, + type_: BillingPlanInfoType = None, + included_phone_lines: int = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if duration_unit is not None: + self.duration_unit = self._enum_matching( + duration_unit, DurationUnit.list(), "duration_unit" + ) + if duration is not None: + self.duration = duration + if type_ is not None: + self.type_ = self._enum_matching(type_, BillingPlanInfoType.list(), "type_") + if included_phone_lines is not None: + self.included_phone_lines = included_phone_lines diff --git a/src/ring_central/models/billing_statement_charges.py b/src/ring_central/models/billing_statement_charges.py new file mode 100644 index 00000000..e6ad1f9f --- /dev/null +++ b/src/ring_central/models/billing_statement_charges.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"free_service_credit": "freeServiceCredit"}) +class BillingStatementCharges(BaseModel): + """BillingStatementCharges + + :param description: description, defaults to None + :type description: str, optional + :param amount: amount, defaults to None + :type amount: float, optional + :param feature: feature, defaults to None + :type feature: str, optional + :param free_service_credit: free_service_credit, defaults to None + :type free_service_credit: float, optional + """ + + def __init__( + self, + description: str = None, + amount: float = None, + feature: str = None, + free_service_credit: float = None, + ): + if description is not None: + self.description = description + if amount is not None: + self.amount = amount + if feature is not None: + self.feature = feature + if free_service_credit is not None: + self.free_service_credit = free_service_credit diff --git a/src/ring_central/models/billing_statement_fees.py b/src/ring_central/models/billing_statement_fees.py new file mode 100644 index 00000000..644b4684 --- /dev/null +++ b/src/ring_central/models/billing_statement_fees.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"free_service_credit": "freeServiceCredit"}) +class BillingStatementFees(BaseModel): + """BillingStatementFees + + :param description: description, defaults to None + :type description: str, optional + :param amount: amount, defaults to None + :type amount: float, optional + :param free_service_credit: free_service_credit, defaults to None + :type free_service_credit: float, optional + """ + + def __init__( + self, + description: str = None, + amount: float = None, + free_service_credit: float = None, + ): + if description is not None: + self.description = description + if amount is not None: + self.amount = amount + if free_service_credit is not None: + self.free_service_credit = free_service_credit diff --git a/src/ring_central/models/billing_statement_info.py b/src/ring_central/models/billing_statement_info.py new file mode 100644 index 00000000..4629c5c3 --- /dev/null +++ b/src/ring_central/models/billing_statement_info.py @@ -0,0 +1,68 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .billing_statement_charges import BillingStatementCharges +from .billing_statement_fees import BillingStatementFees + + +@JsonMap( + { + "total_charged": "totalCharged", + "total_charges": "totalCharges", + "total_fees": "totalFees", + "total_free_service_credit": "totalFreeServiceCredit", + } +) +class BillingStatementInfo(BaseModel): + """Billing information. Returned for device update request if `prestatement` + query parameter is set to 'true' + + + :param currency: Currency code complying with [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) standard , defaults to None + :type currency: str, optional + :param charges: charges, defaults to None + :type charges: List[BillingStatementCharges], optional + :param fees: fees, defaults to None + :type fees: List[BillingStatementFees], optional + :param total_charged: total_charged, defaults to None + :type total_charged: float, optional + :param total_charges: total_charges, defaults to None + :type total_charges: float, optional + :param total_fees: total_fees, defaults to None + :type total_fees: float, optional + :param subtotal: subtotal, defaults to None + :type subtotal: float, optional + :param total_free_service_credit: total_free_service_credit, defaults to None + :type total_free_service_credit: float, optional + """ + + def __init__( + self, + currency: str = None, + charges: List[BillingStatementCharges] = None, + fees: List[BillingStatementFees] = None, + total_charged: float = None, + total_charges: float = None, + total_fees: float = None, + subtotal: float = None, + total_free_service_credit: float = None, + ): + if currency is not None: + self.currency = currency + if charges is not None: + self.charges = self._define_list(charges, BillingStatementCharges) + if fees is not None: + self.fees = self._define_list(fees, BillingStatementFees) + if total_charged is not None: + self.total_charged = total_charged + if total_charges is not None: + self.total_charges = total_charges + if total_fees is not None: + self.total_fees = total_fees + if subtotal is not None: + self.subtotal = subtotal + if total_free_service_credit is not None: + self.total_free_service_credit = total_free_service_credit diff --git a/src/ring_central/models/blocked_allowed_phone_number_info.py b/src/ring_central/models/blocked_allowed_phone_number_info.py new file mode 100644 index 00000000..33fb7117 --- /dev/null +++ b/src/ring_central/models/blocked_allowed_phone_number_info.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .blocked_number_status_enum import BlockedNumberStatusEnum + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class BlockedAllowedPhoneNumberInfo(BaseModel): + """Information on a blocked/allowed phone number + + :param uri: Link to a blocked/allowed phone number, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a blocked/allowed phone number, defaults to None + :type id_: str, optional + :param phone_number: A blocked/allowed phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, defaults to None + :type phone_number: str, optional + :param label: Custom name of a blocked/allowed phone number, defaults to None + :type label: str, optional + :param status: Status of a phone number, defaults to None + :type status: BlockedNumberStatusEnum, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + phone_number: str = None, + label: str = None, + status: BlockedNumberStatusEnum = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if status is not None: + self.status = self._enum_matching( + status, BlockedNumberStatusEnum.list(), "status" + ) diff --git a/src/ring_central/models/blocked_allowed_phone_numbers_list.py b/src/ring_central/models/blocked_allowed_phone_numbers_list.py new file mode 100644 index 00000000..1e4b63e2 --- /dev/null +++ b/src/ring_central/models/blocked_allowed_phone_numbers_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .blocked_allowed_phone_number_info import BlockedAllowedPhoneNumberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class BlockedAllowedPhoneNumbersList(BaseModel): + """List of blocked or allowed phone numbers + + :param uri: Link to a list of blocked/allowed phone numbers resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[BlockedAllowedPhoneNumberInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[BlockedAllowedPhoneNumberInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, BlockedAllowedPhoneNumberInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/blocked_caller_greeting_info.py b/src/ring_central/models/blocked_caller_greeting_info.py new file mode 100644 index 00000000..ad5c73fb --- /dev/null +++ b/src/ring_central/models/blocked_caller_greeting_info.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .preset_info import PresetInfo + + +@JsonMap({"type_": "type"}) +class BlockedCallerGreetingInfo(BaseModel): + """BlockedCallerGreetingInfo + + :param type_: Type of greeting, defaults to None + :type type_: str, optional + :param preset: preset, defaults to None + :type preset: PresetInfo, optional + """ + + def __init__(self, type_: str = None, preset: PresetInfo = None): + if type_ is not None: + self.type_ = type_ + if preset is not None: + self.preset = self._define_object(preset, PresetInfo) diff --git a/src/ring_central/models/blocked_number_status_enum.py b/src/ring_central/models/blocked_number_status_enum.py new file mode 100644 index 00000000..295fca73 --- /dev/null +++ b/src/ring_central/models/blocked_number_status_enum.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class BlockedNumberStatusEnum(Enum): + """An enumeration representing different categories. + + :cvar BLOCKED: "Blocked" + :vartype BLOCKED: str + :cvar ALLOWED: "Allowed" + :vartype ALLOWED: str + """ + + BLOCKED = "Blocked" + ALLOWED = "Allowed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, BlockedNumberStatusEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/brand_info.py b/src/ring_central/models/brand_info.py new file mode 100644 index 00000000..3daa2c8c --- /dev/null +++ b/src/ring_central/models/brand_info.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_short_model import CountryInfoShortModel + + +@JsonMap({"id_": "id", "home_country": "homeCountry"}) +class BrandInfo(BaseModel): + """Information on account brand + + :param id_: Internal identifier of a brand, defaults to None + :type id_: str, optional + :param name: Brand name, for example RingCentral UK , ClearFax , defaults to None + :type name: str, optional + :param home_country: home_country, defaults to None + :type home_country: CountryInfoShortModel, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + home_country: CountryInfoShortModel = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if home_country is not None: + self.home_country = self._define_object(home_country, CountryInfoShortModel) diff --git a/src/ring_central/models/bridge_discovery.py b/src/ring_central/models/bridge_discovery.py new file mode 100644 index 00000000..ded10062 --- /dev/null +++ b/src/ring_central/models/bridge_discovery.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class BridgeDiscovery(BaseModel): + """BridgeDiscovery + + :param web: URI that can be used to join to the meeting. It contains password parameter only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. , defaults to None + :type web: str, optional + """ + + def __init__(self, web: str = None): + if web is not None: + self.web = web diff --git a/src/ring_central/models/bridge_join_preferences.py b/src/ring_central/models/bridge_join_preferences.py new file mode 100644 index 00000000..010a57ff --- /dev/null +++ b/src/ring_central/models/bridge_join_preferences.py @@ -0,0 +1,75 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_join_pstn_preferences import BridgeJoinPstnPreferences + + +class WaitingRoomRequired(Enum): + """An enumeration representing different categories. + + :cvar NOBODY: "Nobody" + :vartype NOBODY: str + :cvar EVERYBODY: "Everybody" + :vartype EVERYBODY: str + :cvar GUESTSONLY: "GuestsOnly" + :vartype GUESTSONLY: str + :cvar OTHERACCOUNT: "OtherAccount" + :vartype OTHERACCOUNT: str + """ + + NOBODY = "Nobody" + EVERYBODY = "Everybody" + GUESTSONLY = "GuestsOnly" + OTHERACCOUNT = "OtherAccount" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, WaitingRoomRequired._member_map_.values())) + + +@JsonMap( + { + "audio_muted": "audioMuted", + "video_muted": "videoMuted", + "waiting_room_required": "waitingRoomRequired", + } +) +class BridgeJoinPreferences(BaseModel): + """BridgeJoinPreferences + + :param audio_muted: Specifies if audio is muted for meeting participants (in the preset after joining), defaults to None + :type audio_muted: bool, optional + :param video_muted: Specifies if video is muted for meeting participants (in the preset after joining), defaults to None + :type video_muted: bool, optional + :param waiting_room_required: Specifies rules for the waiting room before the host starts the meeting. 1) Nobody - No waiting room. Participants are not waiting for meeting start. 2) Everybody - All participants are waiting for meeting start. 3) GuestsOnly - Only unauthenticated participants (guests) are waiting for meeting start. 4) OtherAccount - Only participants who have other account are waiting for meeting start. Default value depends on the bridge type: - PMI -> OtherAccount - Instant, Scheduled -> Nobody , defaults to None + :type waiting_room_required: WaitingRoomRequired, optional + :param pstn: pstn, defaults to None + :type pstn: BridgeJoinPstnPreferences, optional + """ + + def __init__( + self, + audio_muted: bool = None, + video_muted: bool = None, + waiting_room_required: WaitingRoomRequired = None, + pstn: BridgeJoinPstnPreferences = None, + ): + if audio_muted is not None: + self.audio_muted = audio_muted + if video_muted is not None: + self.video_muted = video_muted + if waiting_room_required is not None: + self.waiting_room_required = self._enum_matching( + waiting_room_required, + WaitingRoomRequired.list(), + "waiting_room_required", + ) + if pstn is not None: + self.pstn = self._define_object(pstn, BridgeJoinPstnPreferences) diff --git a/src/ring_central/models/bridge_join_pstn_preferences.py b/src/ring_central/models/bridge_join_pstn_preferences.py new file mode 100644 index 00000000..bbaf6095 --- /dev/null +++ b/src/ring_central/models/bridge_join_pstn_preferences.py @@ -0,0 +1,28 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "prompt_announcement": "promptAnnouncement", + "prompt_participants": "promptParticipants", + } +) +class BridgeJoinPstnPreferences(BaseModel): + """BridgeJoinPstnPreferences + + :param prompt_announcement: Specifies whether to play 'Announce yourself' prompt, defaults to None + :type prompt_announcement: bool, optional + :param prompt_participants: Specifies whether to play 'There are X participants' prompt, defaults to None + :type prompt_participants: bool, optional + """ + + def __init__( + self, prompt_announcement: bool = None, prompt_participants: bool = None + ): + if prompt_announcement is not None: + self.prompt_announcement = prompt_announcement + if prompt_participants is not None: + self.prompt_participants = prompt_participants diff --git a/src/ring_central/models/bridge_pins.py b/src/ring_central/models/bridge_pins.py new file mode 100644 index 00000000..1105d6f9 --- /dev/null +++ b/src/ring_central/models/bridge_pins.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_pstn_pins import BridgePstnPins + + +@JsonMap({}) +class BridgePins(BaseModel): + """BridgePins + + :param pstn: pstn, defaults to None + :type pstn: BridgePstnPins, optional + :param web: Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ , defaults to None + :type web: str, optional + """ + + def __init__(self, pstn: BridgePstnPins = None, web: str = None): + if pstn is not None: + self.pstn = self._define_object(pstn, BridgePstnPins) + if web is not None: + self.web = web diff --git a/src/ring_central/models/bridge_pins_with_aliases.py b/src/ring_central/models/bridge_pins_with_aliases.py new file mode 100644 index 00000000..30b2f4f2 --- /dev/null +++ b/src/ring_central/models/bridge_pins_with_aliases.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_pstn_pins import BridgePstnPins + + +@JsonMap({}) +class BridgePinsWithAliases(BaseModel): + """BridgePinsWithAliases + + :param pstn: pstn, defaults to None + :type pstn: BridgePstnPins, optional + :param web: Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ , defaults to None + :type web: str, optional + :param aliases: List of bridge aliases. An alias is a unique personal meeting name that can be specified for the default bridge. It can be used to join to a meeting in the same way as the short identifier. , defaults to None + :type aliases: List[str], optional + """ + + def __init__( + self, pstn: BridgePstnPins = None, web: str = None, aliases: List[str] = None + ): + if pstn is not None: + self.pstn = self._define_object(pstn, BridgePstnPins) + if web is not None: + self.web = web + if aliases is not None: + self.aliases = aliases diff --git a/src/ring_central/models/bridge_pins_without_pstn.py b/src/ring_central/models/bridge_pins_without_pstn.py new file mode 100644 index 00000000..3ecf28cd --- /dev/null +++ b/src/ring_central/models/bridge_pins_without_pstn.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class BridgePinsWithoutPstn(BaseModel): + """BridgePinsWithoutPstn + + :param web: Bridge short identifier (Web PIN). The digital unique code which is used to join to a meeting. If it is not specified while creation, then a code will be generated. If it is a default bridge, then this code is Personal Meeting Identifier (PMI). NOTE: Changing this PIN via update method is deprecated. So to change Web PIN use the method: _*[PATCH] /rcvideo/v2/bridges/{bridgeId}/pin/web*_ , defaults to None + :type web: str, optional + """ + + def __init__(self, web: str = None): + if web is not None: + self.web = web diff --git a/src/ring_central/models/bridge_preferences.py b/src/ring_central/models/bridge_preferences.py new file mode 100644 index 00000000..2521956f --- /dev/null +++ b/src/ring_central/models/bridge_preferences.py @@ -0,0 +1,155 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_join_preferences import BridgeJoinPreferences +from .recordings_preferences import RecordingsPreferences + + +class PlayTones(Enum): + """An enumeration representing different categories. + + :cvar ON: "On" + :vartype ON: str + :cvar OFF: "Off" + :vartype OFF: str + :cvar EXITONLY: "ExitOnly" + :vartype EXITONLY: str + :cvar ENTERONLY: "EnterOnly" + :vartype ENTERONLY: str + """ + + ON = "On" + OFF = "Off" + EXITONLY = "ExitOnly" + ENTERONLY = "EnterOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PlayTones._member_map_.values())) + + +class RecordingsMode(Enum): + """An enumeration representing different categories. + + :cvar AUTO: "Auto" + :vartype AUTO: str + :cvar FORCEAUTO: "ForceAuto" + :vartype FORCEAUTO: str + :cvar USER: "User" + :vartype USER: str + """ + + AUTO = "Auto" + FORCEAUTO = "ForceAuto" + USER = "User" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RecordingsMode._member_map_.values())) + + +class TranscriptionsMode(Enum): + """An enumeration representing different categories. + + :cvar AUTO: "Auto" + :vartype AUTO: str + :cvar FORCEAUTO: "ForceAuto" + :vartype FORCEAUTO: str + :cvar USER: "User" + :vartype USER: str + """ + + AUTO = "Auto" + FORCEAUTO = "ForceAuto" + USER = "User" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TranscriptionsMode._member_map_.values())) + + +@JsonMap( + { + "play_tones": "playTones", + "music_on_hold": "musicOnHold", + "join_before_host": "joinBeforeHost", + "screen_sharing": "screenSharing", + "recordings_mode": "recordingsMode", + "transcriptions_mode": "transcriptionsMode", + "allow_everyone_transcribe_meetings": "allowEveryoneTranscribeMeetings", + } +) +class BridgePreferences(BaseModel): + """BridgePreferences + + :param join: join, defaults to None + :type join: BridgeJoinPreferences, optional + :param play_tones: Specifies enter and exit tones mode. 1) On - Enter and exit tones switched on. 2) Off - Enter and exit tones switched off. 3) ExitOnly - Only exit tones switched on. 4) EnterOnly - Only enter tones switched on. , defaults to None + :type play_tones: PlayTones, optional + :param music_on_hold: Specifies whether to play music on hold when alone, defaults to None + :type music_on_hold: bool, optional + :param join_before_host: Specifies if participants can join to a meeting before host. Default value depends on the bridge type: - default bridge (PMI) -> false - other types -> true , defaults to None + :type join_before_host: bool, optional + :param screen_sharing: Specifies if screen sharing is allowed, defaults to None + :type screen_sharing: bool, optional + :param recordings_mode: Controls whether recordings are enabled automatically or by user decision, defaults to None + :type recordings_mode: RecordingsMode, optional + :param transcriptions_mode: Controls whether transcriptions are enabled automatically or by user decision, defaults to None + :type transcriptions_mode: TranscriptionsMode, optional + :param recordings: Recordings preferences, defaults to None + :type recordings: RecordingsPreferences, optional + :param allow_everyone_transcribe_meetings: Controls whether participants can start and pause transcription, defaults to None + :type allow_everyone_transcribe_meetings: bool, optional + """ + + def __init__( + self, + join: BridgeJoinPreferences = None, + play_tones: PlayTones = None, + music_on_hold: bool = None, + join_before_host: bool = None, + screen_sharing: bool = None, + recordings_mode: RecordingsMode = None, + transcriptions_mode: TranscriptionsMode = None, + recordings: RecordingsPreferences = None, + allow_everyone_transcribe_meetings: bool = None, + ): + if join is not None: + self.join = self._define_object(join, BridgeJoinPreferences) + if play_tones is not None: + self.play_tones = self._enum_matching( + play_tones, PlayTones.list(), "play_tones" + ) + if music_on_hold is not None: + self.music_on_hold = music_on_hold + if join_before_host is not None: + self.join_before_host = join_before_host + if screen_sharing is not None: + self.screen_sharing = screen_sharing + if recordings_mode is not None: + self.recordings_mode = self._enum_matching( + recordings_mode, RecordingsMode.list(), "recordings_mode" + ) + if transcriptions_mode is not None: + self.transcriptions_mode = self._enum_matching( + transcriptions_mode, TranscriptionsMode.list(), "transcriptions_mode" + ) + if recordings is not None: + self.recordings = self._define_object(recordings, RecordingsPreferences) + if allow_everyone_transcribe_meetings is not None: + self.allow_everyone_transcribe_meetings = allow_everyone_transcribe_meetings diff --git a/src/ring_central/models/bridge_pstn_pins.py b/src/ring_central/models/bridge_pstn_pins.py new file mode 100644 index 00000000..5e5627a0 --- /dev/null +++ b/src/ring_central/models/bridge_pstn_pins.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class BridgePstnPins(BaseModel): + """BridgePstnPins + + :param host: Host PSTN PIN. If it is not specified while creation, then a PIN will be generated., defaults to None + :type host: str, optional + :param participant: Participant PSTN PIN. If it is not specified while creation, then a PIN will be generated., defaults to None + :type participant: str, optional + """ + + def __init__(self, host: str = None, participant: str = None): + if host is not None: + self.host = host + if participant is not None: + self.participant = participant diff --git a/src/ring_central/models/bridge_request_security.py b/src/ring_central/models/bridge_request_security.py new file mode 100644 index 00000000..13efda8e --- /dev/null +++ b/src/ring_central/models/bridge_request_security.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "password_protected": "passwordProtected", + "no_guests": "noGuests", + "same_account": "sameAccount", + } +) +class BridgeRequestSecurity(BaseModel): + """BridgeRequestSecurity + + :param password_protected: Specifies if a meeting is password protected. By default, Instant and Scheduled bridges are not password protected. For default (PMI) bridge, password protection will be turned on and the password will be generated if it is not specified while creation. While creation to set password protection you should set this field to true and specify a password in the **password** field. If you want to change password or set password protection for an unprotected bridge, you should set this field to true and specify a password in the **password** field in the update operation. To make protected bridge as unprotected you should set this field to false in the update operation. , defaults to None + :type password_protected: bool, optional + :param password: Specifies a password if bridge meetings should be password protected (passwordProtected field is true). Besides that, if the field is specified in the request but **passwordProtected** field is missing then it means that **passwordProtected** field is set to true. , defaults to None + :type password: str, optional + :param no_guests: If true, only authenticated users can join to a meeting., defaults to None + :type no_guests: bool, optional + :param same_account: If true, only users have the same account can join to a meeting., defaults to None + :type same_account: bool, optional + :param e2ee: If true, end to end encryption will be enabled for a meeting., defaults to None + :type e2ee: bool, optional + """ + + def __init__( + self, + password_protected: bool = None, + password: str = None, + no_guests: bool = None, + same_account: bool = None, + e2ee: bool = None, + ): + if password_protected is not None: + self.password_protected = password_protected + if password is not None: + self.password = password + if no_guests is not None: + self.no_guests = no_guests + if same_account is not None: + self.same_account = same_account + if e2ee is not None: + self.e2ee = e2ee diff --git a/src/ring_central/models/bridge_response.py b/src/ring_central/models/bridge_response.py new file mode 100644 index 00000000..8cd53fff --- /dev/null +++ b/src/ring_central/models/bridge_response.py @@ -0,0 +1,86 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .user import User +from .bridge_pins_with_aliases import BridgePinsWithAliases +from .bridge_response_security import BridgeResponseSecurity +from .bridge_preferences import BridgePreferences +from .bridge_discovery import BridgeDiscovery + + +class BridgeResponseType(Enum): + """An enumeration representing different categories. + + :cvar INSTANT: "Instant" + :vartype INSTANT: str + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar PMI: "PMI" + :vartype PMI: str + """ + + INSTANT = "Instant" + SCHEDULED = "Scheduled" + PMI = "PMI" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, BridgeResponseType._member_map_.values())) + + +@JsonMap({"id_": "id", "type_": "type"}) +class BridgeResponse(BaseModel): + """BridgeResponse + + :param id_: Unique bridge identifier, defaults to None + :type id_: str, optional + :param name: Custom name of a bridge, defaults to None + :type name: str, optional + :param type_: Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. , defaults to None + :type type_: BridgeResponseType, optional + :param host: host, defaults to None + :type host: User, optional + :param pins: pins, defaults to None + :type pins: BridgePinsWithAliases, optional + :param security: security, defaults to None + :type security: BridgeResponseSecurity, optional + :param preferences: preferences, defaults to None + :type preferences: BridgePreferences, optional + :param discovery: discovery, defaults to None + :type discovery: BridgeDiscovery, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + type_: BridgeResponseType = None, + host: User = None, + pins: BridgePinsWithAliases = None, + security: BridgeResponseSecurity = None, + preferences: BridgePreferences = None, + discovery: BridgeDiscovery = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if type_ is not None: + self.type_ = self._enum_matching(type_, BridgeResponseType.list(), "type_") + if host is not None: + self.host = self._define_object(host, User) + if pins is not None: + self.pins = self._define_object(pins, BridgePinsWithAliases) + if security is not None: + self.security = self._define_object(security, BridgeResponseSecurity) + if preferences is not None: + self.preferences = self._define_object(preferences, BridgePreferences) + if discovery is not None: + self.discovery = self._define_object(discovery, BridgeDiscovery) diff --git a/src/ring_central/models/bridge_response_security.py b/src/ring_central/models/bridge_response_security.py new file mode 100644 index 00000000..a0303058 --- /dev/null +++ b/src/ring_central/models/bridge_response_security.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_response_security_password import BridgeResponseSecurityPassword + + +@JsonMap( + { + "password_protected": "passwordProtected", + "no_guests": "noGuests", + "same_account": "sameAccount", + } +) +class BridgeResponseSecurity(BaseModel): + """BridgeResponseSecurity + + :param password_protected: Specifies if a meeting is password protected., defaults to None + :type password_protected: bool, optional + :param password: password, defaults to None + :type password: BridgeResponseSecurityPassword, optional + :param no_guests: If true, only authenticated users can join to a meeting., defaults to None + :type no_guests: bool, optional + :param same_account: If true, only users have the same account can join to a meeting., defaults to None + :type same_account: bool, optional + :param e2ee: If true, end to end encryption will be enabled for a meeting., defaults to None + :type e2ee: bool, optional + """ + + def __init__( + self, + password_protected: bool = None, + password: BridgeResponseSecurityPassword = None, + no_guests: bool = None, + same_account: bool = None, + e2ee: bool = None, + ): + if password_protected is not None: + self.password_protected = password_protected + if password is not None: + self.password = self._define_object( + password, BridgeResponseSecurityPassword + ) + if no_guests is not None: + self.no_guests = no_guests + if same_account is not None: + self.same_account = same_account + if e2ee is not None: + self.e2ee = e2ee diff --git a/src/ring_central/models/bridge_response_security_password.py b/src/ring_central/models/bridge_response_security_password.py new file mode 100644 index 00000000..014d6c3b --- /dev/null +++ b/src/ring_central/models/bridge_response_security_password.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"plain_text": "plainText", "join_query": "joinQuery"}) +class BridgeResponseSecurityPassword(BaseModel): + """BridgeResponseSecurityPassword + + :param plain_text: Meeting password. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. , defaults to None + :type plain_text: str, optional + :param pstn: Meeting password for PSTN users. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. , defaults to None + :type pstn: str, optional + :param join_query: Meeting password hash. This field will be returned only if the request was done by bridge owner, his delegate or any user who has the Super Admin privilege. , defaults to None + :type join_query: str, optional + """ + + def __init__( + self, plain_text: str = None, pstn: str = None, join_query: str = None + ): + if plain_text is not None: + self.plain_text = plain_text + if pstn is not None: + self.pstn = pstn + if join_query is not None: + self.join_query = join_query diff --git a/src/ring_central/models/bridge_target_request.py b/src/ring_central/models/bridge_target_request.py new file mode 100644 index 00000000..c1390ac4 --- /dev/null +++ b/src/ring_central/models/bridge_target_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"telephony_session_id": "telephonySessionId", "party_id": "partyId"}) +class BridgeTargetRequest(BaseModel): + """BridgeTargetRequest + + :param telephony_session_id: Internal identifier of a call session to be connected to (bridged) + :type telephony_session_id: str + :param party_id: Internal identifier of a call party to be connected to (bridged) + :type party_id: str + """ + + def __init__(self, telephony_session_id: str, party_id: str): + self.telephony_session_id = telephony_session_id + self.party_id = party_id diff --git a/src/ring_central/models/bulk_account_call_recordings_resource.py b/src/ring_central/models/bulk_account_call_recordings_resource.py new file mode 100644 index 00000000..a1909646 --- /dev/null +++ b/src/ring_central/models/bulk_account_call_recordings_resource.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_recording_extension_resource import CallRecordingExtensionResource + + +@JsonMap( + { + "added_extensions": "addedExtensions", + "updated_extensions": "updatedExtensions", + "removed_extensions": "removedExtensions", + } +) +class BulkAccountCallRecordingsResource(BaseModel): + """BulkAccountCallRecordingsResource + + :param added_extensions: added_extensions, defaults to None + :type added_extensions: List[CallRecordingExtensionResource], optional + :param updated_extensions: updated_extensions, defaults to None + :type updated_extensions: List[CallRecordingExtensionResource], optional + :param removed_extensions: removed_extensions, defaults to None + :type removed_extensions: List[CallRecordingExtensionResource], optional + """ + + def __init__( + self, + added_extensions: List[CallRecordingExtensionResource] = None, + updated_extensions: List[CallRecordingExtensionResource] = None, + removed_extensions: List[CallRecordingExtensionResource] = None, + ): + if added_extensions is not None: + self.added_extensions = self._define_list( + added_extensions, CallRecordingExtensionResource + ) + if updated_extensions is not None: + self.updated_extensions = self._define_list( + updated_extensions, CallRecordingExtensionResource + ) + if removed_extensions is not None: + self.removed_extensions = self._define_list( + removed_extensions, CallRecordingExtensionResource + ) diff --git a/src/ring_central/models/bulk_add_devices_error_item.py b/src/ring_central/models/bulk_add_devices_error_item.py new file mode 100644 index 00000000..c17360f0 --- /dev/null +++ b/src/ring_central/models/bulk_add_devices_error_item.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .api_error_with_parameter import ApiErrorWithParameter + + +@JsonMap({}) +class BulkAddDevicesErrorItem(BaseModel): + """BulkAddDevicesErrorItem + + :param successful: Indicates if the provisioning operation was successful for this item, always `false` in this model + :type successful: bool + :param errors: errors + :type errors: List[ApiErrorWithParameter] + """ + + def __init__(self, successful: bool, errors: List[ApiErrorWithParameter]): + self.successful = successful + self.errors = self._define_list(errors, ApiErrorWithParameter) diff --git a/src/ring_central/models/bulk_add_devices_item.py b/src/ring_central/models/bulk_add_devices_item.py new file mode 100644 index 00000000..0c9621eb --- /dev/null +++ b/src/ring_central/models/bulk_add_devices_item.py @@ -0,0 +1,133 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .bulk_operation_extension_reference import BulkOperationExtensionReference +from .postal_address import PostalAddress +from .phone_number_definition_toll_type import PhoneNumberDefinitionTollType +from .phone_number_definition_preferred_area_code import ( + PhoneNumberDefinitionPreferredAreaCode, +) +from .phone_number_definition_direct_number_with_reservation_id import ( + PhoneNumberDefinitionDirectNumberWithReservationId, +) +from .phone_number_definition_number_id import PhoneNumberDefinitionNumberId + + +class BulkAddDevicesItemType(Enum): + """An enumeration representing different categories. + + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar WEBRTC: "WebRTC" + :vartype WEBRTC: str + """ + + OTHERPHONE = "OtherPhone" + WEBRTC = "WebRTC" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, BulkAddDevicesItemType._member_map_.values()) + ) + + +@JsonMap({}) +class Emergency1_2(BaseModel): + """Emergency1_2 + + :param address: Postal address/location + :type address: PostalAddress + """ + + def __init__(self, address: PostalAddress): + self.address = self._define_object(address, PostalAddress) + + +@JsonMap({"id_": "id"}) +class Emergency2Location2(BaseModel): + """Emergency2Location2 + + :param id_: Emergency location ID + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({}) +class Emergency2_2(BaseModel): + """Emergency2_2 + + :param location: location + :type location: Emergency2Location2 + """ + + def __init__(self, location: Emergency2Location2): + self.location = self._define_object(location, Emergency2Location2) + + +class BulkAddDevicesItemEmergencyGuard(OneOfBaseModel): + class_list = {"Emergency1_2": Emergency1_2, "Emergency2_2": Emergency2_2} + + +BulkAddDevicesItemEmergency = Union[Emergency1_2, Emergency2_2] + + +class BulkAddDevicesItemPhoneInfoGuard(OneOfBaseModel): + class_list = { + "PhoneNumberDefinitionTollType": PhoneNumberDefinitionTollType, + "PhoneNumberDefinitionPreferredAreaCode": PhoneNumberDefinitionPreferredAreaCode, + "PhoneNumberDefinitionDirectNumberWithReservationId": PhoneNumberDefinitionDirectNumberWithReservationId, + "PhoneNumberDefinitionNumberId": PhoneNumberDefinitionNumberId, + } + + +BulkAddDevicesItemPhoneInfo = Union[ + PhoneNumberDefinitionTollType, + PhoneNumberDefinitionPreferredAreaCode, + PhoneNumberDefinitionDirectNumberWithReservationId, + PhoneNumberDefinitionNumberId, +] + + +@JsonMap({"cost_center_id": "costCenterId", "type_": "type", "phone_info": "phoneInfo"}) +class BulkAddDevicesItem(BaseModel): + """BulkAddDevicesItem + + :param cost_center_id: Internal identifier of a cost center, defaults to None + :type cost_center_id: str, optional + :param extension: Information about an extension this device is assigned to + :type extension: BulkOperationExtensionReference + :param type_: Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment + :type type_: BulkAddDevicesItemType + :param emergency: Only "address" is supported at the moment + :type emergency: BulkAddDevicesItemEmergency + :param phone_info: phone_info + :type phone_info: BulkAddDevicesItemPhoneInfo + """ + + def __init__( + self, + extension: BulkOperationExtensionReference, + type_: BulkAddDevicesItemType, + emergency: BulkAddDevicesItemEmergency, + phone_info: BulkAddDevicesItemPhoneInfo, + cost_center_id: str = None, + ): + if cost_center_id is not None: + self.cost_center_id = cost_center_id + self.extension = self._define_object(extension, BulkOperationExtensionReference) + self.type_ = self._enum_matching(type_, BulkAddDevicesItemType.list(), "type_") + self.emergency = BulkAddDevicesItemEmergencyGuard.return_one_of(emergency) + self.phone_info = BulkAddDevicesItemPhoneInfoGuard.return_one_of(phone_info) diff --git a/src/ring_central/models/bulk_add_devices_request.py b/src/ring_central/models/bulk_add_devices_request.py new file mode 100644 index 00000000..8161aab9 --- /dev/null +++ b/src/ring_central/models/bulk_add_devices_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_add_devices_item import BulkAddDevicesItem + + +@JsonMap({}) +class BulkAddDevicesRequest(BaseModel): + """BulkAddDevicesRequest + + :param records: records + :type records: List[BulkAddDevicesItem] + """ + + def __init__(self, records: List[BulkAddDevicesItem]): + self.records = self._define_list(records, BulkAddDevicesItem) diff --git a/src/ring_central/models/bulk_add_devices_response.py b/src/ring_central/models/bulk_add_devices_response.py new file mode 100644 index 00000000..955dba13 --- /dev/null +++ b/src/ring_central/models/bulk_add_devices_response.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .bulk_add_devices_success_item import BulkAddDevicesSuccessItem +from .bulk_add_devices_error_item import BulkAddDevicesErrorItem + + +class BulkAddDevicesResponseResultsGuard(OneOfBaseModel): + class_list = { + "BulkAddDevicesSuccessItem": BulkAddDevicesSuccessItem, + "BulkAddDevicesErrorItem": BulkAddDevicesErrorItem, + } + + +BulkAddDevicesResponseResults = Union[ + BulkAddDevicesSuccessItem, BulkAddDevicesErrorItem +] + + +@JsonMap({}) +class BulkAddDevicesResponse(BaseModel): + """BulkAddDevicesResponse + + :param results: results + :type results: List[BulkAddDevicesResponseResults] + """ + + def __init__(self, results: List[BulkAddDevicesResponseResults]): + self.results = self._define_list(results, BulkAddDevicesResponseResults) diff --git a/src/ring_central/models/bulk_add_devices_success_item.py b/src/ring_central/models/bulk_add_devices_success_item.py new file mode 100644 index 00000000..93f0af5b --- /dev/null +++ b/src/ring_central/models/bulk_add_devices_success_item.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_operation_extension_reference import BulkOperationExtensionReference + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class BulkAddDevicesSuccessItem(BaseModel): + """BulkAddDevicesSuccessItem + + :param successful: Indicates if the provisioning operation was successful for this item, always `true` in this model + :type successful: bool + :param id_: Internal identifier of the created device + :type id_: str + :param extension: Information about an extension this device is assigned to + :type extension: BulkOperationExtensionReference + :param phone_number: Phone number in e.164 format (with '+' prefix) + :type phone_number: str + """ + + def __init__( + self, + successful: bool, + id_: str, + extension: BulkOperationExtensionReference, + phone_number: str, + ): + self.successful = successful + self.id_ = id_ + self.extension = self._define_object(extension, BulkOperationExtensionReference) + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) diff --git a/src/ring_central/models/bulk_assign_item.py b/src/ring_central/models/bulk_assign_item.py new file mode 100644 index 00000000..b5d95fd6 --- /dev/null +++ b/src/ring_central/models/bulk_assign_item.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "department_id": "departmentId", + "added_extension_ids": "addedExtensionIds", + "removed_extension_ids": "removedExtensionIds", + } +) +class BulkAssignItem(BaseModel): + """BulkAssignItem + + :param department_id: department_id, defaults to None + :type department_id: str, optional + :param added_extension_ids: added_extension_ids, defaults to None + :type added_extension_ids: List[str], optional + :param removed_extension_ids: removed_extension_ids, defaults to None + :type removed_extension_ids: List[str], optional + """ + + def __init__( + self, + department_id: str = None, + added_extension_ids: List[str] = None, + removed_extension_ids: List[str] = None, + ): + if department_id is not None: + self.department_id = department_id + if added_extension_ids is not None: + self.added_extension_ids = added_extension_ids + if removed_extension_ids is not None: + self.removed_extension_ids = removed_extension_ids diff --git a/src/ring_central/models/bulk_delete_users_request.py b/src/ring_central/models/bulk_delete_users_request.py new file mode 100644 index 00000000..1f1015ec --- /dev/null +++ b/src/ring_central/models/bulk_delete_users_request.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_operation_extension_reference import BulkOperationExtensionReference + + +@JsonMap({"keep_assets_in_inventory": "keepAssetsInInventory"}) +class BulkDeleteUsersRequest(BaseModel): + """BulkDeleteUsersRequest + + :param keep_assets_in_inventory: Indicates that the freed users' assets (phone numbers and devices) should be moved to account inventory rather than deleted. If set to `true`, the phone numbers and devices assigned to deleted extensions will be kept in the account's inventory. If set to `false`, these assets will be deleted from the account and returned to either the partner's phone numbers or RingCentral's phone number pool , defaults to None + :type keep_assets_in_inventory: bool, optional + :param records: records + :type records: List[BulkOperationExtensionReference] + """ + + def __init__( + self, + records: List[BulkOperationExtensionReference], + keep_assets_in_inventory: bool = None, + ): + if keep_assets_in_inventory is not None: + self.keep_assets_in_inventory = keep_assets_in_inventory + self.records = self._define_list(records, BulkOperationExtensionReference) diff --git a/src/ring_central/models/bulk_delete_users_response.py b/src/ring_central/models/bulk_delete_users_response.py new file mode 100644 index 00000000..8c91ec23 --- /dev/null +++ b/src/ring_central/models/bulk_delete_users_response.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "bulk_item_successful": "bulkItemSuccessful", + "bulk_item_errors": "bulkItemErrors", + } +) +class BulkDeleteUsersResponseRecords(BaseModel): + """BulkDeleteUsersResponseRecords + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param bulk_item_successful: Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors + :type bulk_item_successful: bool + :param bulk_item_errors: The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false , defaults to None + :type bulk_item_errors: List[dict], optional + """ + + def __init__( + self, + bulk_item_successful: bool, + id_: str = None, + bulk_item_errors: List[dict] = None, + ): + if id_ is not None: + self.id_ = id_ + self.bulk_item_successful = bulk_item_successful + if bulk_item_errors is not None: + self.bulk_item_errors = bulk_item_errors + + +@JsonMap({}) +class BulkDeleteUsersResponse(BaseModel): + """BulkDeleteUsersResponse + + :param records: records + :type records: List[BulkDeleteUsersResponseRecords] + """ + + def __init__(self, records: List[BulkDeleteUsersResponseRecords]): + self.records = self._define_list(records, BulkDeleteUsersResponseRecords) diff --git a/src/ring_central/models/bulk_operation_extension_reference.py b/src/ring_central/models/bulk_operation_extension_reference.py new file mode 100644 index 00000000..3d4c0558 --- /dev/null +++ b/src/ring_central/models/bulk_operation_extension_reference.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class BulkOperationExtensionReference(BaseModel): + """Information about an extension this device is assigned to + + :param id_: Internal identifier of a RingCentral extension + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ diff --git a/src/ring_central/models/bulk_role_assign_resource.py b/src/ring_central/models/bulk_role_assign_resource.py new file mode 100644 index 00000000..6e79bb32 --- /dev/null +++ b/src/ring_central/models/bulk_role_assign_resource.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "site_restricted": "siteRestricted", + "site_compatible": "siteCompatible", + "added_extension_ids": "addedExtensionIds", + "removed_extension_ids": "removedExtensionIds", + } +) +class BulkRoleAssignResource(BaseModel): + """BulkRoleAssignResource + + :param site_restricted: site_restricted, defaults to None + :type site_restricted: bool, optional + :param site_compatible: site_compatible, defaults to None + :type site_compatible: bool, optional + :param uri: uri, defaults to None + :type uri: str, optional + :param added_extension_ids: added_extension_ids, defaults to None + :type added_extension_ids: List[str], optional + :param removed_extension_ids: removed_extension_ids, defaults to None + :type removed_extension_ids: List[str], optional + """ + + def __init__( + self, + site_restricted: bool = None, + site_compatible: bool = None, + uri: str = None, + added_extension_ids: List[str] = None, + removed_extension_ids: List[str] = None, + ): + if site_restricted is not None: + self.site_restricted = site_restricted + if site_compatible is not None: + self.site_compatible = site_compatible + if uri is not None: + self.uri = uri + if added_extension_ids is not None: + self.added_extension_ids = added_extension_ids + if removed_extension_ids is not None: + self.removed_extension_ids = removed_extension_ids diff --git a/src/ring_central/models/bulk_task_info.py b/src/ring_central/models/bulk_task_info.py new file mode 100644 index 00000000..ae3f6240 --- /dev/null +++ b/src/ring_central/models/bulk_task_info.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class BulkTaskInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + ACCEPTED = "Accepted" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, BulkTaskInfoStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class BulkTaskInfo(BaseModel): + """BulkTaskInfo + + :param id_: Internal identifier of a task for multiple switches creation, defaults to None + :type id_: str, optional + :param status: Status of a task, defaults to None + :type status: BulkTaskInfoStatus, optional + :param creation_time: Task creation time, defaults to None + :type creation_time: str, optional + :param last_modified_time: Time of the task latest modification, defaults to None + :type last_modified_time: str, optional + """ + + def __init__( + self, + id_: str = None, + status: BulkTaskInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._enum_matching( + status, BulkTaskInfoStatus.list(), "status" + ) + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/bulk_update_invitees_request.py b/src/ring_central/models/bulk_update_invitees_request.py new file mode 100644 index 00000000..b4bbbb98 --- /dev/null +++ b/src/ring_central/models/bulk_update_invitees_request.py @@ -0,0 +1,103 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .add_invitee_request import AddInviteeRequest +from .rcw_resource_id_model import RcwResourceIdModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_invitee_type_enum import RcwInviteeTypeEnum + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "type_": "type", + "send_invite": "sendInvite", + } +) +class UpdatedInvitees(BaseModel): + """UpdatedInvitees + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param email: User's contact email, defaults to None + :type email: str, optional + :param job_title: Job title, defaults to None + :type job_title: str, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param type_: The type of the webinar invitee, defaults to None + :type type_: RcwInviteeTypeEnum, optional + :param send_invite: Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. , defaults to None + :type send_invite: bool, optional + """ + + def __init__( + self, + role: RcwRoleEnum, + id_: str = None, + first_name: str = None, + last_name: str = None, + email: str = None, + job_title: str = None, + type_: RcwInviteeTypeEnum = None, + send_invite: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if job_title is not None: + self.job_title = job_title + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + if type_ is not None: + self.type_ = self._enum_matching(type_, RcwInviteeTypeEnum.list(), "type_") + if send_invite is not None: + self.send_invite = send_invite + + +@JsonMap( + { + "added_invitees": "addedInvitees", + "updated_invitees": "updatedInvitees", + "deleted_invitees": "deletedInvitees", + } +) +class BulkUpdateInviteesRequest(BaseModel): + """BulkUpdateInviteesRequest + + :param added_invitees: added_invitees, defaults to None + :type added_invitees: List[AddInviteeRequest], optional + :param updated_invitees: updated_invitees, defaults to None + :type updated_invitees: List[UpdatedInvitees], optional + :param deleted_invitees: deleted_invitees, defaults to None + :type deleted_invitees: List[RcwResourceIdModel], optional + """ + + def __init__( + self, + added_invitees: List[AddInviteeRequest] = None, + updated_invitees: List[UpdatedInvitees] = None, + deleted_invitees: List[RcwResourceIdModel] = None, + ): + if added_invitees is not None: + self.added_invitees = self._define_list(added_invitees, AddInviteeRequest) + if updated_invitees is not None: + self.updated_invitees = self._define_list(updated_invitees, UpdatedInvitees) + if deleted_invitees is not None: + self.deleted_invitees = self._define_list( + deleted_invitees, RcwResourceIdModel + ) diff --git a/src/ring_central/models/bulk_update_invitees_response.py b/src/ring_central/models/bulk_update_invitees_response.py new file mode 100644 index 00000000..74226a53 --- /dev/null +++ b/src/ring_central/models/bulk_update_invitees_response.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .invitee_resource import InviteeResource +from .rcw_resource_id_model import RcwResourceIdModel + + +@JsonMap( + { + "added_invitees": "addedInvitees", + "updated_invitees": "updatedInvitees", + "deleted_invitees": "deletedInvitees", + } +) +class BulkUpdateInviteesResponse(BaseModel): + """BulkUpdateInviteesResponse + + :param added_invitees: added_invitees, defaults to None + :type added_invitees: List[InviteeResource], optional + :param updated_invitees: updated_invitees, defaults to None + :type updated_invitees: List[InviteeResource], optional + :param deleted_invitees: deleted_invitees, defaults to None + :type deleted_invitees: List[RcwResourceIdModel], optional + """ + + def __init__( + self, + added_invitees: List[InviteeResource] = None, + updated_invitees: List[InviteeResource] = None, + deleted_invitees: List[RcwResourceIdModel] = None, + ): + if added_invitees is not None: + self.added_invitees = self._define_list(added_invitees, InviteeResource) + if updated_invitees is not None: + self.updated_invitees = self._define_list(updated_invitees, InviteeResource) + if deleted_invitees is not None: + self.deleted_invitees = self._define_list( + deleted_invitees, RcwResourceIdModel + ) diff --git a/src/ring_central/models/business_address_info.py b/src/ring_central/models/business_address_info.py new file mode 100644 index 00000000..1bda96be --- /dev/null +++ b/src/ring_central/models/business_address_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class BusinessAddressInfo(BaseModel): + """Company business address + + :param country: Name of a country, defaults to None + :type country: str, optional + :param state: Name of a state/province, defaults to None + :type state: str, optional + :param city: Name of a city, defaults to None + :type city: str, optional + :param street: Street address, defaults to None + :type street: str, optional + :param zip: Zip code, defaults to None + :type zip: str, optional + """ + + def __init__( + self, + country: str = None, + state: str = None, + city: str = None, + street: str = None, + zip: str = None, + ): + if country is not None: + self.country = country + if state is not None: + self.state = state + if city is not None: + self.city = city + if street is not None: + self.street = street + if zip is not None: + self.zip = zip diff --git a/src/ring_central/models/business_site_collection_request.py b/src/ring_central/models/business_site_collection_request.py new file mode 100644 index 00000000..65c197af --- /dev/null +++ b/src/ring_central/models/business_site_collection_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .roles_business_site_resource import RolesBusinessSiteResource + + +@JsonMap({}) +class BusinessSiteCollectionRequest(BaseModel): + """BusinessSiteCollectionRequest + + :param records: records, defaults to None + :type records: List[RolesBusinessSiteResource], optional + """ + + def __init__(self, records: List[RolesBusinessSiteResource] = None): + if records is not None: + self.records = self._define_list(records, RolesBusinessSiteResource) diff --git a/src/ring_central/models/business_site_collection_resource.py b/src/ring_central/models/business_site_collection_resource.py new file mode 100644 index 00000000..45a4a760 --- /dev/null +++ b/src/ring_central/models/business_site_collection_resource.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .roles_business_site_resource import RolesBusinessSiteResource + + +@JsonMap({}) +class BusinessSiteCollectionResource(BaseModel): + """BusinessSiteCollectionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[RolesBusinessSiteResource], optional + """ + + def __init__( + self, uri: str = None, records: List[RolesBusinessSiteResource] = None + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, RolesBusinessSiteResource) diff --git a/src/ring_central/models/business_site_resource.py b/src/ring_central/models/business_site_resource.py new file mode 100644 index 00000000..19e97c1a --- /dev/null +++ b/src/ring_central/models/business_site_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class BusinessSiteResource(BaseModel): + """BusinessSiteResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param code: code, defaults to None + :type code: str, optional + """ + + def __init__(self, id_: str = None, name: str = None, code: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if code is not None: + self.code = code diff --git a/src/ring_central/models/cai_async_api_response.py b/src/ring_central/models/cai_async_api_response.py new file mode 100644 index 00000000..894b5b26 --- /dev/null +++ b/src/ring_central/models/cai_async_api_response.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"job_id": "jobId"}) +class CaiAsyncApiResponse(BaseModel): + """CaiAsyncApiResponse + + :param job_id: job_id, defaults to None + :type job_id: str, optional + """ + + def __init__(self, job_id: str = None): + if job_id is not None: + self.job_id = job_id diff --git a/src/ring_central/models/cai_error_code_response.py b/src/ring_central/models/cai_error_code_response.py new file mode 100644 index 00000000..c8ab317d --- /dev/null +++ b/src/ring_central/models/cai_error_code_response.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ErrorCode(Enum): + """An enumeration representing different categories. + + :cvar CAI_101: "CAI-101" + :vartype CAI_101: str + :cvar CAI_102: "CAI-102" + :vartype CAI_102: str + :cvar CAI_103: "CAI-103" + :vartype CAI_103: str + :cvar CAI_104: "CAI-104" + :vartype CAI_104: str + :cvar CAI_105: "CAI-105" + :vartype CAI_105: str + :cvar CAI_106: "CAI-106" + :vartype CAI_106: str + :cvar CAI_107: "CAI-107" + :vartype CAI_107: str + :cvar CAI_108: "CAI-108" + :vartype CAI_108: str + :cvar CAI_109: "CAI-109" + :vartype CAI_109: str + :cvar CAI_110: "CAI-110" + :vartype CAI_110: str + """ + + CAI_101 = "CAI-101" + CAI_102 = "CAI-102" + CAI_103 = "CAI-103" + CAI_104 = "CAI-104" + CAI_105 = "CAI-105" + CAI_106 = "CAI-106" + CAI_107 = "CAI-107" + CAI_108 = "CAI-108" + CAI_109 = "CAI-109" + CAI_110 = "CAI-110" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ErrorCode._member_map_.values())) + + +@JsonMap({"error_code": "errorCode", "parameter_name": "parameterName"}) +class CaiErrorCodeResponse(BaseModel): + """CaiErrorCodeResponse + + :param error_code: error_code + :type error_code: ErrorCode + :param message: Helpful description of the errorCode + :type message: str + :param parameter_name: Name of parameter if specified in the message, defaults to None + :type parameter_name: str, optional + """ + + def __init__(self, error_code: ErrorCode, message: str, parameter_name: str = None): + self.error_code = self._enum_matching( + error_code, ErrorCode.list(), "error_code" + ) + self.message = message + if parameter_name is not None: + self.parameter_name = parameter_name diff --git a/src/ring_central/models/cai_error_response.py b/src/ring_central/models/cai_error_response.py new file mode 100644 index 00000000..77850b5d --- /dev/null +++ b/src/ring_central/models/cai_error_response.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .cai_error_code_response import CaiErrorCodeResponse + + +@JsonMap({}) +class CaiErrorResponse(BaseModel): + """CaiErrorResponse + + :param errors: errors, defaults to None + :type errors: List[CaiErrorCodeResponse], optional + """ + + def __init__(self, errors: List[CaiErrorCodeResponse] = None): + if errors is not None: + self.errors = self._define_list(errors, CaiErrorCodeResponse) diff --git a/src/ring_central/models/call_action.py b/src/ring_central/models/call_action.py new file mode 100644 index 00000000..91c62c3f --- /dev/null +++ b/src/ring_central/models/call_action.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallAction(Enum): + """An enumeration representing different categories. + + :cvar HOLDOFF: "HoldOff" + :vartype HOLDOFF: str + :cvar HOLDON: "HoldOn" + :vartype HOLDON: str + :cvar PARKON: "ParkOn" + :vartype PARKON: str + :cvar PARKOFF: "ParkOff" + :vartype PARKOFF: str + :cvar BLINDTRANSFER: "BlindTransfer" + :vartype BLINDTRANSFER: str + :cvar WARMTRANSFER: "WarmTransfer" + :vartype WARMTRANSFER: str + :cvar DTMFTRANSFER: "DTMFTransfer" + :vartype DTMFTRANSFER: str + """ + + HOLDOFF = "HoldOff" + HOLDON = "HoldOn" + PARKON = "ParkOn" + PARKOFF = "ParkOff" + BLINDTRANSFER = "BlindTransfer" + WARMTRANSFER = "WarmTransfer" + DTMFTRANSFER = "DTMFTransfer" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallAction._member_map_.values())) diff --git a/src/ring_central/models/call_action_enum.py b/src/ring_central/models/call_action_enum.py new file mode 100644 index 00000000..d48bc82a --- /dev/null +++ b/src/ring_central/models/call_action_enum.py @@ -0,0 +1,123 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallActionEnum(Enum): + """An enumeration representing different categories. + + :cvar ACCEPT_CALL: "Accept Call" + :vartype ACCEPT_CALL: str + :cvar BARGE_IN_CALL: "Barge In Call" + :vartype BARGE_IN_CALL: str + :cvar CALL_PARK: "Call Park" + :vartype CALL_PARK: str + :cvar CALL_RETURN: "Call Return" + :vartype CALL_RETURN: str + :cvar CALLOUT_CALLME: "CallOut-CallMe" + :vartype CALLOUT_CALLME: str + :cvar CALLING_CARD: "Calling Card" + :vartype CALLING_CARD: str + :cvar CONFERENCE_CALL: "Conference Call" + :vartype CONFERENCE_CALL: str + :cvar E911_UPDATE: "E911 Update" + :vartype E911_UPDATE: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + :cvar EXTERNAL_APPLICATION: "External Application" + :vartype EXTERNAL_APPLICATION: str + :cvar FINDME: "FindMe" + :vartype FINDME: str + :cvar FOLLOWME: "FollowMe" + :vartype FOLLOWME: str + :cvar FREESPDL: "FreeSPDL" + :vartype FREESPDL: str + :cvar HUNTING: "Hunting" + :vartype HUNTING: str + :cvar INCOMING_FAX: "Incoming Fax" + :vartype INCOMING_FAX: str + :cvar MONITORING: "Monitoring" + :vartype MONITORING: str + :cvar MOVE: "Move" + :vartype MOVE: str + :cvar OUTGOING_FAX: "Outgoing Fax" + :vartype OUTGOING_FAX: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar PARK_LOCATION: "Park Location" + :vartype PARK_LOCATION: str + :cvar PHONE_CALL: "Phone Call" + :vartype PHONE_CALL: str + :cvar PHONE_LOGIN: "Phone Login" + :vartype PHONE_LOGIN: str + :cvar PICKUP: "Pickup" + :vartype PICKUP: str + :cvar RC_MEETINGS: "RC Meetings" + :vartype RC_MEETINGS: str + :cvar RING_DIRECTLY: "Ring Directly" + :vartype RING_DIRECTLY: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar RINGOUT_MOBILE: "RingOut Mobile" + :vartype RINGOUT_MOBILE: str + :cvar RINGOUT_PC: "RingOut PC" + :vartype RINGOUT_PC: str + :cvar RINGOUT_WEB: "RingOut Web" + :vartype RINGOUT_WEB: str + :cvar SIP_FORWARDING: "Sip Forwarding" + :vartype SIP_FORWARDING: str + :cvar SUPPORT: "Support" + :vartype SUPPORT: str + :cvar TEXT_RELAY: "Text Relay" + :vartype TEXT_RELAY: str + :cvar TRANSFER: "Transfer" + :vartype TRANSFER: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar VOIP_CALL: "VoIP Call" + :vartype VOIP_CALL: str + """ + + ACCEPT_CALL = "Accept Call" + BARGE_IN_CALL = "Barge In Call" + CALL_PARK = "Call Park" + CALL_RETURN = "Call Return" + CALLOUT_CALLME = "CallOut-CallMe" + CALLING_CARD = "Calling Card" + CONFERENCE_CALL = "Conference Call" + E911_UPDATE = "E911 Update" + EMERGENCY = "Emergency" + EXTERNAL_APPLICATION = "External Application" + FINDME = "FindMe" + FOLLOWME = "FollowMe" + FREESPDL = "FreeSPDL" + HUNTING = "Hunting" + INCOMING_FAX = "Incoming Fax" + MONITORING = "Monitoring" + MOVE = "Move" + OUTGOING_FAX = "Outgoing Fax" + PAGING = "Paging" + PARK_LOCATION = "Park Location" + PHONE_CALL = "Phone Call" + PHONE_LOGIN = "Phone Login" + PICKUP = "Pickup" + RC_MEETINGS = "RC Meetings" + RING_DIRECTLY = "Ring Directly" + RINGME = "RingMe" + RINGOUT_MOBILE = "RingOut Mobile" + RINGOUT_PC = "RingOut PC" + RINGOUT_WEB = "RingOut Web" + SIP_FORWARDING = "Sip Forwarding" + SUPPORT = "Support" + TEXT_RELAY = "Text Relay" + TRANSFER = "Transfer" + UNKNOWN = "Unknown" + VOIP_CALL = "VoIP Call" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallActionEnum._member_map_.values())) diff --git a/src/ring_central/models/call_direction_enum.py b/src/ring_central/models/call_direction_enum.py new file mode 100644 index 00000000..130fef8b --- /dev/null +++ b/src/ring_central/models/call_direction_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallDirectionEnum(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallDirectionEnum._member_map_.values())) diff --git a/src/ring_central/models/call_duration_filter.py b/src/ring_central/models/call_duration_filter.py new file mode 100644 index 00000000..1169030c --- /dev/null +++ b/src/ring_central/models/call_duration_filter.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"min_seconds": "minSeconds", "max_seconds": "maxSeconds"}) +class CallDurationFilter(BaseModel): + """Filtering of calls based on the overall call length + + :param min_seconds: Minimum duration of call in seconds, defaults to None + :type min_seconds: int, optional + :param max_seconds: Maximum duration of call in seconds, defaults to None + :type max_seconds: int, optional + """ + + def __init__(self, min_seconds: int = None, max_seconds: int = None): + if min_seconds is not None: + self.min_seconds = min_seconds + if max_seconds is not None: + self.max_seconds = max_seconds diff --git a/src/ring_central/models/call_filters.py b/src/ring_central/models/call_filters.py new file mode 100644 index 00000000..9ff024b8 --- /dev/null +++ b/src/ring_central/models/call_filters.py @@ -0,0 +1,115 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_filters import ExtensionFilters +from .direction import Direction +from .origin import Origin +from .call_response import CallResponse +from .call_result import CallResult +from .call_segment_filter import CallSegmentFilter +from .call_action import CallAction +from .company_hours_options import CompanyHoursOptions +from .call_duration_filter import CallDurationFilter +from .time_spent_filter import TimeSpentFilter +from .queue_sla_options import QueueSlaOptions +from .call_type import CallType + + +@JsonMap( + { + "extension_filters": "extensionFilters", + "called_numbers": "calledNumbers", + "call_responses": "callResponses", + "call_results": "callResults", + "call_segments": "callSegments", + "call_actions": "callActions", + "company_hours": "companyHours", + "call_duration": "callDuration", + "time_spent": "timeSpent", + "queue_sla": "queueSla", + "call_types": "callTypes", + } +) +class CallFilters(BaseModel): + """Optional filters that limit the scope of calls (joined via AND) + + :param extension_filters: Specifies filtering based on extension ids, defaults to None + :type extension_filters: ExtensionFilters, optional + :param queues: List of queues extension ids which allows to get data only for calls that were routed through any of these queues, defaults to None + :type queues: List[str], optional + :param called_numbers: The direct company numbers the caller called (joined via OR), defaults to None + :type called_numbers: List[str], optional + :param directions: Specifies the call directions relative to the scope specified in grouping object (joined via OR). Not applicable to internal origin calls with company scope, defaults to None + :type directions: List[Direction], optional + :param origins: Specifies whether an external party was present in the initial segment of the call (joined via OR), defaults to None + :type origins: List[Origin], optional + :param call_responses: Filtering of calls by first response (joined via OR), defaults to None + :type call_responses: List[CallResponse], optional + :param call_results: Filtering of calls by the nature of call result (joined via OR), defaults to None + :type call_results: List[CallResult], optional + :param call_segments: Filtering of calls by presence of specific segment (joined via OR), defaults to None + :type call_segments: List[CallSegmentFilter], optional + :param call_actions: Filtering of calls by presence of specific action (joined via OR), defaults to None + :type call_actions: List[CallAction], optional + :param company_hours: Filtering of calls by company's business hours or after hours (joined via OR), defaults to None + :type company_hours: List[CompanyHoursOptions], optional + :param call_duration: Filtering of calls based on the overall call length, defaults to None + :type call_duration: CallDurationFilter, optional + :param time_spent: Filtering of calls based on the time spent by specified mailbox(es) on call, defaults to None + :type time_spent: TimeSpentFilter, optional + :param queue_sla: Filtering calls that were within or out of queue SLA (joined via OR). Only applicable to Queues grouping, defaults to None + :type queue_sla: List[QueueSlaOptions], optional + :param call_types: Filtering of calls based on how the call started from the callee perspective (joined via OR). If the call is outbound relative to the grouping scope, CallType is Outbound, defaults to None + :type call_types: List[CallType], optional + """ + + def __init__( + self, + extension_filters: ExtensionFilters = None, + queues: List[str] = None, + called_numbers: List[str] = None, + directions: List[Direction] = None, + origins: List[Origin] = None, + call_responses: List[CallResponse] = None, + call_results: List[CallResult] = None, + call_segments: List[CallSegmentFilter] = None, + call_actions: List[CallAction] = None, + company_hours: List[CompanyHoursOptions] = None, + call_duration: CallDurationFilter = None, + time_spent: TimeSpentFilter = None, + queue_sla: List[QueueSlaOptions] = None, + call_types: List[CallType] = None, + ): + if extension_filters is not None: + self.extension_filters = self._define_object( + extension_filters, ExtensionFilters + ) + if queues is not None: + self.queues = queues + if called_numbers is not None: + self.called_numbers = called_numbers + if directions is not None: + self.directions = self._define_list(directions, Direction) + if origins is not None: + self.origins = self._define_list(origins, Origin) + if call_responses is not None: + self.call_responses = self._define_list(call_responses, CallResponse) + if call_results is not None: + self.call_results = self._define_list(call_results, CallResult) + if call_segments is not None: + self.call_segments = self._define_list(call_segments, CallSegmentFilter) + if call_actions is not None: + self.call_actions = self._define_list(call_actions, CallAction) + if company_hours is not None: + self.company_hours = self._define_list(company_hours, CompanyHoursOptions) + if call_duration is not None: + self.call_duration = self._define_object(call_duration, CallDurationFilter) + if time_spent is not None: + self.time_spent = self._define_object(time_spent, TimeSpentFilter) + if queue_sla is not None: + self.queue_sla = self._define_list(queue_sla, QueueSlaOptions) + if call_types is not None: + self.call_types = self._define_list(call_types, CallType) diff --git a/src/ring_central/models/call_info_cq.py b/src/ring_central/models/call_info_cq.py new file mode 100644 index 00000000..df51fd5e --- /dev/null +++ b/src/ring_central/models/call_info_cq.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .primary_cq_info import PrimaryCqInfo +from .additional_cq_info import AdditionalCqInfo + + +@JsonMap({}) +class CallInfoCq(BaseModel): + """Primary/additional CQ information + + :param primary: Primary call session information. Supported for Call Queues only, defaults to None + :type primary: PrimaryCqInfo, optional + :param additional: Additional call session information. Supported for Call Queues only, defaults to None + :type additional: AdditionalCqInfo, optional + """ + + def __init__( + self, primary: PrimaryCqInfo = None, additional: AdditionalCqInfo = None + ): + if primary is not None: + self.primary = self._define_object(primary, PrimaryCqInfo) + if additional is not None: + self.additional = self._define_object(additional, AdditionalCqInfo) diff --git a/src/ring_central/models/call_internal_type_enum.py b/src/ring_central/models/call_internal_type_enum.py new file mode 100644 index 00000000..82f95e68 --- /dev/null +++ b/src/ring_central/models/call_internal_type_enum.py @@ -0,0 +1,57 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallInternalTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar LOCAL: "Local" + :vartype LOCAL: str + :cvar LONGDISTANCE: "LongDistance" + :vartype LONGDISTANCE: str + :cvar INTERNATIONAL: "International" + :vartype INTERNATIONAL: str + :cvar SIP: "Sip" + :vartype SIP: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar USUAL: "Usual" + :vartype USUAL: str + :cvar TOLLFREENUMBER: "TollFreeNumber" + :vartype TOLLFREENUMBER: str + :cvar VERIFICATIONNUMBER: "VerificationNumber" + :vartype VERIFICATIONNUMBER: str + :cvar VMA: "Vma" + :vartype VMA: str + :cvar LOCALNUMBER: "LocalNumber" + :vartype LOCALNUMBER: str + :cvar IMSOUTGOING: "ImsOutgoing" + :vartype IMSOUTGOING: str + :cvar IMSINCOMING: "ImsIncoming" + :vartype IMSINCOMING: str + """ + + LOCAL = "Local" + LONGDISTANCE = "LongDistance" + INTERNATIONAL = "International" + SIP = "Sip" + RINGME = "RingMe" + RINGOUT = "RingOut" + USUAL = "Usual" + TOLLFREENUMBER = "TollFreeNumber" + VERIFICATIONNUMBER = "VerificationNumber" + VMA = "Vma" + LOCALNUMBER = "LocalNumber" + IMSOUTGOING = "ImsOutgoing" + IMSINCOMING = "ImsIncoming" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallInternalTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/call_leg_type_enum.py b/src/ring_central/models/call_leg_type_enum.py new file mode 100644 index 00000000..60359ebe --- /dev/null +++ b/src/ring_central/models/call_leg_type_enum.py @@ -0,0 +1,138 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallLegTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar SIPFORWARDING: "SipForwarding" + :vartype SIPFORWARDING: str + :cvar SERVICEMINUS2: "ServiceMinus2" + :vartype SERVICEMINUS2: str + :cvar SERVICEMINUS3: "ServiceMinus3" + :vartype SERVICEMINUS3: str + :cvar PSTNTOSIP: "PstnToSip" + :vartype PSTNTOSIP: str + :cvar ACCEPT: "Accept" + :vartype ACCEPT: str + :cvar FINDME: "FindMe" + :vartype FINDME: str + :cvar FOLLOWME: "FollowMe" + :vartype FOLLOWME: str + :cvar TESTCALL: "TestCall" + :vartype TESTCALL: str + :cvar FAXSENT: "FaxSent" + :vartype FAXSENT: str + :cvar CALLBACK: "CallBack" + :vartype CALLBACK: str + :cvar CALLINGCARD: "CallingCard" + :vartype CALLINGCARD: str + :cvar RINGDIRECTLY: "RingDirectly" + :vartype RINGDIRECTLY: str + :cvar RINGOUTWEBTOSUBSCRIBER: "RingOutWebToSubscriber" + :vartype RINGOUTWEBTOSUBSCRIBER: str + :cvar RINGOUTWEBTOCALLER: "RingOutWebToCaller" + :vartype RINGOUTWEBTOCALLER: str + :cvar SIPTOPSTNMETERED: "SipToPstnMetered" + :vartype SIPTOPSTNMETERED: str + :cvar RINGOUTCLIENTTOSUBSCRIBER: "RingOutClientToSubscriber" + :vartype RINGOUTCLIENTTOSUBSCRIBER: str + :cvar RINGOUTCLIENTTOCALLER: "RingOutClientToCaller" + :vartype RINGOUTCLIENTTOCALLER: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar TRANSFERCALL: "TransferCall" + :vartype TRANSFERCALL: str + :cvar SIPTOPSTNUNMETERED: "SipToPstnUnmetered" + :vartype SIPTOPSTNUNMETERED: str + :cvar RINGOUTDEVICETOSUBSCRIBER: "RingOutDeviceToSubscriber" + :vartype RINGOUTDEVICETOSUBSCRIBER: str + :cvar RINGOUTDEVICETOCALLER: "RingOutDeviceToCaller" + :vartype RINGOUTDEVICETOCALLER: str + :cvar RINGOUTONELEGTOCALLER: "RingOutOneLegToCaller" + :vartype RINGOUTONELEGTOCALLER: str + :cvar EXTENSIONTOEXTENSION: "ExtensionToExtension" + :vartype EXTENSIONTOEXTENSION: str + :cvar CALLPARK: "CallPark" + :vartype CALLPARK: str + :cvar PAGINGSERVER: "PagingServer" + :vartype PAGINGSERVER: str + :cvar HUNTING: "Hunting" + :vartype HUNTING: str + :cvar OUTGOINGFREESPDL: "OutgoingFreeSpDl" + :vartype OUTGOINGFREESPDL: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar CONFERENCECALL: "ConferenceCall" + :vartype CONFERENCECALL: str + :cvar MOBILEAPP: "MobileApp" + :vartype MOBILEAPP: str + :cvar MOVETOCONFERENCE: "MoveToConference" + :vartype MOVETOCONFERENCE: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar MEETINGSCALL: "MeetingsCall" + :vartype MEETINGSCALL: str + :cvar SILENTMONITORING: "SilentMonitoring" + :vartype SILENTMONITORING: str + :cvar MONITORING: "Monitoring" + :vartype MONITORING: str + :cvar PICKUP: "Pickup" + :vartype PICKUP: str + :cvar IMSCALL: "ImsCall" + :vartype IMSCALL: str + :cvar JOINCALL: "JoinCall" + :vartype JOINCALL: str + :cvar TEXTRELAY: "TextRelay" + :vartype TEXTRELAY: str + """ + + SIPFORWARDING = "SipForwarding" + SERVICEMINUS2 = "ServiceMinus2" + SERVICEMINUS3 = "ServiceMinus3" + PSTNTOSIP = "PstnToSip" + ACCEPT = "Accept" + FINDME = "FindMe" + FOLLOWME = "FollowMe" + TESTCALL = "TestCall" + FAXSENT = "FaxSent" + CALLBACK = "CallBack" + CALLINGCARD = "CallingCard" + RINGDIRECTLY = "RingDirectly" + RINGOUTWEBTOSUBSCRIBER = "RingOutWebToSubscriber" + RINGOUTWEBTOCALLER = "RingOutWebToCaller" + SIPTOPSTNMETERED = "SipToPstnMetered" + RINGOUTCLIENTTOSUBSCRIBER = "RingOutClientToSubscriber" + RINGOUTCLIENTTOCALLER = "RingOutClientToCaller" + RINGME = "RingMe" + TRANSFERCALL = "TransferCall" + SIPTOPSTNUNMETERED = "SipToPstnUnmetered" + RINGOUTDEVICETOSUBSCRIBER = "RingOutDeviceToSubscriber" + RINGOUTDEVICETOCALLER = "RingOutDeviceToCaller" + RINGOUTONELEGTOCALLER = "RingOutOneLegToCaller" + EXTENSIONTOEXTENSION = "ExtensionToExtension" + CALLPARK = "CallPark" + PAGINGSERVER = "PagingServer" + HUNTING = "Hunting" + OUTGOINGFREESPDL = "OutgoingFreeSpDl" + PARKLOCATION = "ParkLocation" + CONFERENCECALL = "ConferenceCall" + MOBILEAPP = "MobileApp" + MOVETOCONFERENCE = "MoveToConference" + UNKNOWN = "Unknown" + MEETINGSCALL = "MeetingsCall" + SILENTMONITORING = "SilentMonitoring" + MONITORING = "Monitoring" + PICKUP = "Pickup" + IMSCALL = "ImsCall" + JOINCALL = "JoinCall" + TEXTRELAY = "TextRelay" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallLegTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/call_log_delegate_info.py b/src/ring_central/models/call_log_delegate_info.py new file mode 100644 index 00000000..9b9f0e96 --- /dev/null +++ b/src/ring_central/models/call_log_delegate_info.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallLogDelegateInfo(BaseModel): + """Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension + + :param id_: Internal identifier of a Secretary extension + :type id_: str + :param name: Custom name of a Secretary extension, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str, name: str = None): + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/call_log_from_party.py b/src/ring_central/models/call_log_from_party.py new file mode 100644 index 00000000..50208b37 --- /dev/null +++ b/src/ring_central/models/call_log_from_party.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_log_record_device_info import CallLogRecordDeviceInfo + + +@JsonMap( + { + "phone_number": "phoneNumber", + "extension_number": "extensionNumber", + "extension_id": "extensionId", + "dialer_phone_number": "dialerPhoneNumber", + } +) +class CallLogFromParty(BaseModel): + """CallLogFromParty + + :param phone_number: Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS, defaults to None + :type phone_number: str, optional + :param extension_number: Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message, defaults to None + :type extension_number: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param name: Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then, defaults to None + :type name: str, optional + :param location: Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers), defaults to None + :type location: str, optional + :param device: device, defaults to None + :type device: CallLogRecordDeviceInfo, optional + :param dialer_phone_number: Dialer phone number without any format modifications. Returned for inbound calls, defaults to None + :type dialer_phone_number: str, optional + """ + + def __init__( + self, + phone_number: str = None, + extension_number: str = None, + extension_id: str = None, + name: str = None, + location: str = None, + device: CallLogRecordDeviceInfo = None, + dialer_phone_number: str = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if extension_number is not None: + self.extension_number = extension_number + if extension_id is not None: + self.extension_id = extension_id + if name is not None: + self.name = name + if location is not None: + self.location = location + if device is not None: + self.device = self._define_object(device, CallLogRecordDeviceInfo) + if dialer_phone_number is not None: + self.dialer_phone_number = dialer_phone_number diff --git a/src/ring_central/models/call_log_record.py b/src/ring_central/models/call_log_record.py new file mode 100644 index 00000000..b95812fd --- /dev/null +++ b/src/ring_central/models/call_log_record.py @@ -0,0 +1,235 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_info_call_log import ExtensionInfoCallLog +from .call_transport_enum import CallTransportEnum +from .call_log_from_party import CallLogFromParty +from .call_log_to_party import CallLogToParty +from .call_type_enum import CallTypeEnum +from .call_direction_enum import CallDirectionEnum +from .call_log_record_message import CallLogRecordMessage +from .call_log_delegate_info import CallLogDelegateInfo +from .delegation_type_enum import DelegationTypeEnum +from .call_action_enum import CallActionEnum +from .call_result_enum import CallResultEnum +from .call_result_reason_enum import CallResultReasonEnum +from .call_log_recording_info import CallLogRecordingInfo +from .billing_info import BillingInfo +from .call_internal_type_enum import CallInternalTypeEnum +from .call_log_record_leg_info import CallLogRecordLegInfo + + +@JsonMap({"telephony_session_id": "telephonySessionId"}) +class CallLogRecordTransferTarget(BaseModel): + """CallLogRecordTransferTarget + + :param telephony_session_id: Internal Identifier of Telephony Session, which belongs to transfer target in case of Warm Transfer, defaults to None + :type telephony_session_id: str, optional + """ + + def __init__(self, telephony_session_id: str = None): + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + + +@JsonMap({"telephony_session_id": "telephonySessionId"}) +class CallLogRecordTransferee(BaseModel): + """CallLogRecordTransferee + + :param telephony_session_id: Internal Identifier of Telephony Session, which belongs to transferee in case of Warm Transfer, defaults to None + :type telephony_session_id: str, optional + """ + + def __init__(self, telephony_session_id: str = None): + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + + +@JsonMap( + { + "telephony_session_id": "telephonySessionId", + "sip_uuid_info": "sipUuidInfo", + "transfer_target": "transferTarget", + "party_id": "partyId", + "from_": "from", + "type_": "type", + "delegation_type": "delegationType", + "reason_description": "reasonDescription", + "start_time": "startTime", + "duration_ms": "durationMs", + "short_recording": "shortRecording", + "internal_type": "internalType", + "id_": "id", + "session_id": "sessionId", + "last_modified_time": "lastModifiedTime", + } +) +class CallLogRecord(BaseModel): + """CallLogRecord + + :param extension: Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned, defaults to None + :type extension: ExtensionInfoCallLog, optional + :param telephony_session_id: Telephony identifier of a call session, defaults to None + :type telephony_session_id: str, optional + :param sip_uuid_info: Call session identifier, required for Telephony REST API, defaults to None + :type sip_uuid_info: str, optional + :param transfer_target: transfer_target, defaults to None + :type transfer_target: CallLogRecordTransferTarget, optional + :param transferee: transferee, defaults to None + :type transferee: CallLogRecordTransferee, optional + :param party_id: Internal Identifier of Participant, defaults to None + :type party_id: str, optional + :param transport: The type of call transport. 'PSTN' indicates that a call leg was initiated from the PSTN network provider; 'VoIP' - from an RC phone. , defaults to None + :type transport: CallTransportEnum, optional + :param from_: from_, defaults to None + :type from_: CallLogFromParty, optional + :param to: to, defaults to None + :type to: CallLogToParty, optional + :param type_: The type of call + :type type_: CallTypeEnum + :param direction: The direction of a call + :type direction: CallDirectionEnum + :param message: Linked message (Fax/Voicemail), defaults to None + :type message: CallLogRecordMessage, optional + :param delegate: Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension, defaults to None + :type delegate: CallLogDelegateInfo, optional + :param delegation_type: Call delegation type, defaults to None + :type delegation_type: DelegationTypeEnum, optional + :param action: The internal action corresponding to the call operation + :type action: CallActionEnum + :param result: The result of the call operation, defaults to None + :type result: CallResultEnum, optional + :param reason: The reason of the call result: * `Accepted` - The call was connected to and accepted by this number * `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) * `Line Busy` - The phone number you dialed was busy * `Not Answered` - The phone number you dialed was not answered * `No Answer` - You did not answer the call * `Hang Up` - The caller hung up before the call was answered * `Stopped` - This attempt was stopped because the call was answered by another phone * `Internal Error` - An internal error occurred when making the call. Please try again * `No Credit` - There was not enough Calling Credit on your account to make this call * `Restricted Number` - The number you dialed is restricted by RingCentral * `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again * `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling * `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator * `Bad Number` - An error occurred when making the call. Please check the number before trying again * `Info 411 Restricted` - Calling to 411 Information Services is restricted * `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> * `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection * `Failed Try Again` - Call failed. Please try again * `Max Call Limit` - The number of simultaneous calls to your account has reached its limit * `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service * `Calls Not Accepted` - Your account was not accepting calls at this time * `Number Not Allowed` - The number that was dialed to access your account is not allowed * `Number Blocked` - This number is in your Blocked Numbers list * `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator * `Resource Error` - An error occurred when making the call. Please try again * `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account * `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established * `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped * `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine * `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax * `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again * `Fax Save Error` - An internal error occurred when saving the fax. Please try again * `Fax Send Error` - An error occurred when sending the fax. Please try again * `Emergency Address not defined` - The call was rejected due to no E911 address * `Carrier is not active` - The call was rejected due to carrier inactivity * `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration * `Internal Call Error` - An internal error occurred when making the call. Please try again * `Receive Error` - Fax receive error , defaults to None + :type reason: CallResultReasonEnum, optional + :param reason_description: The detailed reason description of the call result, defaults to None + :type reason_description: str, optional + :param start_time: The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z + :type start_time: str + :param duration: Call duration in seconds + :type duration: int + :param duration_ms: Call duration in milliseconds + :type duration_ms: int + :param recording: Call recording data. Returned if the call was recorded, defaults to None + :type recording: CallLogRecordingInfo, optional + :param short_recording: Indicates that the recording is too short and therefore wouldn't be returned. The flag is not returned if the value is false, defaults to None + :type short_recording: bool, optional + :param billing: Billing information related to the call. Returned for 'Detailed' view only, defaults to None + :type billing: BillingInfo, optional + :param internal_type: The internal type of the call, defaults to None + :type internal_type: CallInternalTypeEnum, optional + :param id_: Internal identifier of a call log record + :type id_: str + :param uri: Canonical URI of a call log record + :type uri: str + :param session_id: Internal identifier of a call session + :type session_id: str + :param deleted: Indicates whether the record is deleted. Returned for deleted records, for ISync requests, defaults to None + :type deleted: bool, optional + :param legs: For 'Detailed' view only. Leg description, defaults to None + :type legs: List[CallLogRecordLegInfo], optional + :param last_modified_time: For 'Detailed' view only. The datetime when the call log record was modified in (ISO 8601)[https://en.wikipedia.org/wiki/ISO_8601] format including timezone, for example *2016-03-10T18:07:52.534Z* , defaults to None + :type last_modified_time: str, optional + """ + + def __init__( + self, + type_: CallTypeEnum, + direction: CallDirectionEnum, + action: CallActionEnum, + start_time: str, + duration: int, + duration_ms: int, + id_: str, + uri: str, + session_id: str, + extension: ExtensionInfoCallLog = None, + telephony_session_id: str = None, + sip_uuid_info: str = None, + transfer_target: CallLogRecordTransferTarget = None, + transferee: CallLogRecordTransferee = None, + party_id: str = None, + transport: CallTransportEnum = None, + from_: CallLogFromParty = None, + to: CallLogToParty = None, + message: CallLogRecordMessage = None, + delegate: CallLogDelegateInfo = None, + delegation_type: DelegationTypeEnum = None, + result: CallResultEnum = None, + reason: CallResultReasonEnum = None, + reason_description: str = None, + recording: CallLogRecordingInfo = None, + short_recording: bool = None, + billing: BillingInfo = None, + internal_type: CallInternalTypeEnum = None, + deleted: bool = None, + legs: List[CallLogRecordLegInfo] = None, + last_modified_time: str = None, + ): + if extension is not None: + self.extension = self._define_object(extension, ExtensionInfoCallLog) + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + if sip_uuid_info is not None: + self.sip_uuid_info = sip_uuid_info + if transfer_target is not None: + self.transfer_target = self._define_object( + transfer_target, CallLogRecordTransferTarget + ) + if transferee is not None: + self.transferee = self._define_object(transferee, CallLogRecordTransferee) + if party_id is not None: + self.party_id = party_id + if transport is not None: + self.transport = self._enum_matching( + transport, CallTransportEnum.list(), "transport" + ) + if from_ is not None: + self.from_ = self._define_object(from_, CallLogFromParty) + if to is not None: + self.to = self._define_object(to, CallLogToParty) + self.type_ = self._enum_matching(type_, CallTypeEnum.list(), "type_") + self.direction = self._enum_matching( + direction, CallDirectionEnum.list(), "direction" + ) + if message is not None: + self.message = self._define_object(message, CallLogRecordMessage) + if delegate is not None: + self.delegate = self._define_object(delegate, CallLogDelegateInfo) + if delegation_type is not None: + self.delegation_type = self._enum_matching( + delegation_type, DelegationTypeEnum.list(), "delegation_type" + ) + self.action = self._enum_matching(action, CallActionEnum.list(), "action") + if result is not None: + self.result = self._enum_matching(result, CallResultEnum.list(), "result") + if reason is not None: + self.reason = self._enum_matching( + reason, CallResultReasonEnum.list(), "reason" + ) + if reason_description is not None: + self.reason_description = reason_description + self.start_time = start_time + self.duration = duration + self.duration_ms = duration_ms + if recording is not None: + self.recording = self._define_object(recording, CallLogRecordingInfo) + if short_recording is not None: + self.short_recording = short_recording + if billing is not None: + self.billing = self._define_object(billing, BillingInfo) + if internal_type is not None: + self.internal_type = self._enum_matching( + internal_type, CallInternalTypeEnum.list(), "internal_type" + ) + self.id_ = id_ + self.uri = uri + self.session_id = session_id + if deleted is not None: + self.deleted = deleted + if legs is not None: + self.legs = self._define_list(legs, CallLogRecordLegInfo) + if last_modified_time is not None: + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/call_log_record_device_info.py b/src/ring_central/models/call_log_record_device_info.py new file mode 100644 index 00000000..e119bed4 --- /dev/null +++ b/src/ring_central/models/call_log_record_device_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallLogRecordDeviceInfo(BaseModel): + """CallLogRecordDeviceInfo + + :param id_: Internal identifier of a device + :type id_: str + :param uri: Canonical URI of a device resource + :type uri: str + """ + + def __init__(self, id_: str, uri: str): + self.id_ = id_ + self.uri = uri diff --git a/src/ring_central/models/call_log_record_leg_info.py b/src/ring_central/models/call_log_record_leg_info.py new file mode 100644 index 00000000..394fda0b --- /dev/null +++ b/src/ring_central/models/call_log_record_leg_info.py @@ -0,0 +1,218 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_info_call_log import ExtensionInfoCallLog +from .call_transport_enum import CallTransportEnum +from .call_log_from_party import CallLogFromParty +from .call_log_to_party import CallLogToParty +from .call_type_enum import CallTypeEnum +from .call_direction_enum import CallDirectionEnum +from .call_log_record_message import CallLogRecordMessage +from .call_log_delegate_info import CallLogDelegateInfo +from .delegation_type_enum import DelegationTypeEnum +from .call_action_enum import CallActionEnum +from .call_result_enum import CallResultEnum +from .call_result_reason_enum import CallResultReasonEnum +from .call_log_recording_info import CallLogRecordingInfo +from .billing_info import BillingInfo +from .call_internal_type_enum import CallInternalTypeEnum +from .call_leg_type_enum import CallLegTypeEnum + + +@JsonMap({"telephony_session_id": "telephonySessionId"}) +class CallLogRecordLegInfoTransferTarget(BaseModel): + """CallLogRecordLegInfoTransferTarget + + :param telephony_session_id: Internal Identifier of Telephony Session, which belongs to transfer target in case of Warm Transfer, defaults to None + :type telephony_session_id: str, optional + """ + + def __init__(self, telephony_session_id: str = None): + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + + +@JsonMap({"telephony_session_id": "telephonySessionId"}) +class CallLogRecordLegInfoTransferee(BaseModel): + """CallLogRecordLegInfoTransferee + + :param telephony_session_id: Internal Identifier of Telephony Session, which belongs to transferee in case of Warm Transfer, defaults to None + :type telephony_session_id: str, optional + """ + + def __init__(self, telephony_session_id: str = None): + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + + +@JsonMap( + { + "telephony_session_id": "telephonySessionId", + "sip_uuid_info": "sipUuidInfo", + "transfer_target": "transferTarget", + "party_id": "partyId", + "from_": "from", + "type_": "type", + "delegation_type": "delegationType", + "reason_description": "reasonDescription", + "start_time": "startTime", + "duration_ms": "durationMs", + "short_recording": "shortRecording", + "internal_type": "internalType", + "leg_type": "legType", + } +) +class CallLogRecordLegInfo(BaseModel): + """CallLogRecordLegInfo + + :param extension: Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned, defaults to None + :type extension: ExtensionInfoCallLog, optional + :param telephony_session_id: Telephony identifier of a call session, defaults to None + :type telephony_session_id: str, optional + :param sip_uuid_info: Call session identifier, required for Telephony REST API, defaults to None + :type sip_uuid_info: str, optional + :param transfer_target: transfer_target, defaults to None + :type transfer_target: CallLogRecordLegInfoTransferTarget, optional + :param transferee: transferee, defaults to None + :type transferee: CallLogRecordLegInfoTransferee, optional + :param party_id: Internal Identifier of Participant, defaults to None + :type party_id: str, optional + :param transport: The type of call transport. 'PSTN' indicates that a call leg was initiated from the PSTN network provider; 'VoIP' - from an RC phone. , defaults to None + :type transport: CallTransportEnum, optional + :param from_: from_, defaults to None + :type from_: CallLogFromParty, optional + :param to: to, defaults to None + :type to: CallLogToParty, optional + :param type_: The type of call + :type type_: CallTypeEnum + :param direction: The direction of a call + :type direction: CallDirectionEnum + :param message: Linked message (Fax/Voicemail), defaults to None + :type message: CallLogRecordMessage, optional + :param delegate: Information on a delegate extension that actually implemented a call action. For Secretary call log the field is returned if the current extension implemented a call. For Boss call log the field contains information on a Secretary extension which actually implemented a call on behalf of the current extension, defaults to None + :type delegate: CallLogDelegateInfo, optional + :param delegation_type: Call delegation type, defaults to None + :type delegation_type: DelegationTypeEnum, optional + :param action: The internal action corresponding to the call operation + :type action: CallActionEnum + :param result: The result of the call operation, defaults to None + :type result: CallResultEnum, optional + :param reason: The reason of the call result: * `Accepted` - The call was connected to and accepted by this number * `Connected` - The call was answered, but there was no response on how to handle the call (for example, a voice mail system answered the call and did not push "1" to accept) * `Line Busy` - The phone number you dialed was busy * `Not Answered` - The phone number you dialed was not answered * `No Answer` - You did not answer the call * `Hang Up` - The caller hung up before the call was answered * `Stopped` - This attempt was stopped because the call was answered by another phone * `Internal Error` - An internal error occurred when making the call. Please try again * `No Credit` - There was not enough Calling Credit on your account to make this call * `Restricted Number` - The number you dialed is restricted by RingCentral * `Wrong Number` - The number you dialed has either been disconnected or is not a valid phone number. Please check the number and try again * `International Disabled` - International calling is not enabled on your account. Contact customer service to activate International Calling * `International Restricted` - The country and/or area you attempted to call has been prohibited by your administrator * `Bad Number` - An error occurred when making the call. Please check the number before trying again * `Info 411 Restricted` - Calling to 411 Information Services is restricted * `Customer 611 Restricted` - 611 customer service is not supported. Please contact customer service at <(888) 555-1212> * `No Digital Line` - This DigitalLine was either not plugged in or did not have an internet connection * `Failed Try Again` - Call failed. Please try again * `Max Call Limit` - The number of simultaneous calls to your account has reached its limit * `Too Many Calls` - The number of simultaneous calls for per DigitalLine associated with Other Phone has reached its limit. Please contact customer service * `Calls Not Accepted` - Your account was not accepting calls at this time * `Number Not Allowed` - The number that was dialed to access your account is not allowed * `Number Blocked` - This number is in your Blocked Numbers list * `Number Disabled` - The phone number and/or area you attempted to call has been prohibited by your administrator * `Resource Error` - An error occurred when making the call. Please try again * `Call Loop` - A call loop occurred due to an incorrect call forwarding configuration. Please check that you are not forwarding calls back to your own account * `Fax Not Received` - An incoming fax could not be received because a proper connection with the sender's fax machine could not be established * `Fax Partially Sent` - The fax was only partially sent. Possible explanations include phone line quality to poor to maintain the connection or the call was dropped * `Fax Not Sent` - An attempt to send the fax was made, but could not connect with the receiving fax machine * `Fax Poor Line` - An attempt to send the fax was made, but the phone line quality was too poor to send the fax * `Fax Prepare Error` - An internal error occurred when preparing the fax. Please try again * `Fax Save Error` - An internal error occurred when saving the fax. Please try again * `Fax Send Error` - An error occurred when sending the fax. Please try again * `Emergency Address not defined` - The call was rejected due to no E911 address * `Carrier is not active` - The call was rejected due to carrier inactivity * `EDGE trunk misconfigured` - The call was rejected due to error in EDGE trunk configuration * `Internal Call Error` - An internal error occurred when making the call. Please try again * `Receive Error` - Fax receive error , defaults to None + :type reason: CallResultReasonEnum, optional + :param reason_description: The detailed reason description of the call result, defaults to None + :type reason_description: str, optional + :param start_time: The call start datetime in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z + :type start_time: str + :param duration: Call duration in seconds + :type duration: int + :param duration_ms: Call duration in milliseconds + :type duration_ms: int + :param recording: Call recording data. Returned if the call was recorded, defaults to None + :type recording: CallLogRecordingInfo, optional + :param short_recording: Indicates that the recording is too short and therefore wouldn't be returned. The flag is not returned if the value is false, defaults to None + :type short_recording: bool, optional + :param billing: Billing information related to the call. Returned for 'Detailed' view only, defaults to None + :type billing: BillingInfo, optional + :param internal_type: The internal type of the call, defaults to None + :type internal_type: CallInternalTypeEnum, optional + :param leg_type: Leg type + :type leg_type: CallLegTypeEnum + :param master: Returned for 'Detailed' call log. Specifies if the leg is master-leg, defaults to None + :type master: bool, optional + """ + + def __init__( + self, + type_: CallTypeEnum, + direction: CallDirectionEnum, + action: CallActionEnum, + start_time: str, + duration: int, + duration_ms: int, + leg_type: CallLegTypeEnum, + extension: ExtensionInfoCallLog = None, + telephony_session_id: str = None, + sip_uuid_info: str = None, + transfer_target: CallLogRecordLegInfoTransferTarget = None, + transferee: CallLogRecordLegInfoTransferee = None, + party_id: str = None, + transport: CallTransportEnum = None, + from_: CallLogFromParty = None, + to: CallLogToParty = None, + message: CallLogRecordMessage = None, + delegate: CallLogDelegateInfo = None, + delegation_type: DelegationTypeEnum = None, + result: CallResultEnum = None, + reason: CallResultReasonEnum = None, + reason_description: str = None, + recording: CallLogRecordingInfo = None, + short_recording: bool = None, + billing: BillingInfo = None, + internal_type: CallInternalTypeEnum = None, + master: bool = None, + ): + if extension is not None: + self.extension = self._define_object(extension, ExtensionInfoCallLog) + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + if sip_uuid_info is not None: + self.sip_uuid_info = sip_uuid_info + if transfer_target is not None: + self.transfer_target = self._define_object( + transfer_target, CallLogRecordLegInfoTransferTarget + ) + if transferee is not None: + self.transferee = self._define_object( + transferee, CallLogRecordLegInfoTransferee + ) + if party_id is not None: + self.party_id = party_id + if transport is not None: + self.transport = self._enum_matching( + transport, CallTransportEnum.list(), "transport" + ) + if from_ is not None: + self.from_ = self._define_object(from_, CallLogFromParty) + if to is not None: + self.to = self._define_object(to, CallLogToParty) + self.type_ = self._enum_matching(type_, CallTypeEnum.list(), "type_") + self.direction = self._enum_matching( + direction, CallDirectionEnum.list(), "direction" + ) + if message is not None: + self.message = self._define_object(message, CallLogRecordMessage) + if delegate is not None: + self.delegate = self._define_object(delegate, CallLogDelegateInfo) + if delegation_type is not None: + self.delegation_type = self._enum_matching( + delegation_type, DelegationTypeEnum.list(), "delegation_type" + ) + self.action = self._enum_matching(action, CallActionEnum.list(), "action") + if result is not None: + self.result = self._enum_matching(result, CallResultEnum.list(), "result") + if reason is not None: + self.reason = self._enum_matching( + reason, CallResultReasonEnum.list(), "reason" + ) + if reason_description is not None: + self.reason_description = reason_description + self.start_time = start_time + self.duration = duration + self.duration_ms = duration_ms + if recording is not None: + self.recording = self._define_object(recording, CallLogRecordingInfo) + if short_recording is not None: + self.short_recording = short_recording + if billing is not None: + self.billing = self._define_object(billing, BillingInfo) + if internal_type is not None: + self.internal_type = self._enum_matching( + internal_type, CallInternalTypeEnum.list(), "internal_type" + ) + self.leg_type = self._enum_matching( + leg_type, CallLegTypeEnum.list(), "leg_type" + ) + if master is not None: + self.master = master diff --git a/src/ring_central/models/call_log_record_message.py b/src/ring_central/models/call_log_record_message.py new file mode 100644 index 00000000..557c9637 --- /dev/null +++ b/src/ring_central/models/call_log_record_message.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "type_": "type"}) +class CallLogRecordMessage(BaseModel): + """Linked message (Fax/Voicemail) + + :param id_: Internal identifier of a message + :type id_: str + :param type_: Type of message + :type type_: str + :param uri: Link to a message resource + :type uri: str + """ + + def __init__(self, id_: str, type_: str, uri: str): + self.id_ = id_ + self.type_ = type_ + self.uri = uri diff --git a/src/ring_central/models/call_log_recording_info.py b/src/ring_central/models/call_log_recording_info.py new file mode 100644 index 00000000..59abcc45 --- /dev/null +++ b/src/ring_central/models/call_log_recording_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallLogRecordingInfoType(Enum): + """An enumeration representing different categories. + + :cvar AUTOMATIC: "Automatic" + :vartype AUTOMATIC: str + :cvar ONDEMAND: "OnDemand" + :vartype ONDEMAND: str + """ + + AUTOMATIC = "Automatic" + ONDEMAND = "OnDemand" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallLogRecordingInfoType._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "type_": "type", "content_uri": "contentUri"}) +class CallLogRecordingInfo(BaseModel): + """Call recording data. Returned if the call was recorded + + :param id_: Internal identifier of the call recording + :type id_: str + :param uri: Link to the call recording metadata resource + :type uri: str + :param type_: Indicates recording mode used + :type type_: CallLogRecordingInfoType + :param content_uri: Link to a call recording binary content. Has to be retrieved with proper authorization (access token must be passed via `Authorization` header or query parameter) + :type content_uri: str + """ + + def __init__( + self, id_: str, uri: str, type_: CallLogRecordingInfoType, content_uri: str + ): + self.id_ = id_ + self.uri = uri + self.type_ = self._enum_matching( + type_, CallLogRecordingInfoType.list(), "type_" + ) + self.content_uri = content_uri diff --git a/src/ring_central/models/call_log_response.py b/src/ring_central/models/call_log_response.py new file mode 100644 index 00000000..aa705a2a --- /dev/null +++ b/src/ring_central/models/call_log_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_log_record import CallLogRecord +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallLogResponse(BaseModel): + """CallLogResponse + + :param uri: Link to the list of company/user call log records, defaults to None + :type uri: str, optional + :param records: List of call log records + :type records: List[CallLogRecord] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[CallLogRecord], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, CallLogRecord) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_log_sync_info.py b/src/ring_central/models/call_log_sync_info.py new file mode 100644 index 00000000..baa0ab82 --- /dev/null +++ b/src/ring_central/models/call_log_sync_info.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_log_sync_type_enum import CallLogSyncTypeEnum + + +@JsonMap({"sync_type": "syncType", "sync_token": "syncToken", "sync_time": "syncTime"}) +class CallLogSyncInfo(BaseModel): + """CallLogSyncInfo + + :param sync_type: Type of call log synchronization request: full or incremental sync + :type sync_type: CallLogSyncTypeEnum + :param sync_token: Synchronization token + :type sync_token: str + :param sync_time: Time of the last synchronization in (ISO 8601)[https://en.wikipedia.org/wiki/ISO_8601] format including timezone, for example *2016-03-10T18:07:52.534Z* + :type sync_time: str + """ + + def __init__(self, sync_type: CallLogSyncTypeEnum, sync_token: str, sync_time: str): + self.sync_type = self._enum_matching( + sync_type, CallLogSyncTypeEnum.list(), "sync_type" + ) + self.sync_token = sync_token + self.sync_time = sync_time diff --git a/src/ring_central/models/call_log_sync_response.py b/src/ring_central/models/call_log_sync_response.py new file mode 100644 index 00000000..ef51de1f --- /dev/null +++ b/src/ring_central/models/call_log_sync_response.py @@ -0,0 +1,28 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_log_record import CallLogRecord +from .call_log_sync_info import CallLogSyncInfo + + +@JsonMap({"sync_info": "syncInfo"}) +class CallLogSyncResponse(BaseModel): + """CallLogSyncResponse + + :param uri: Link to the list of call log records with sync information + :type uri: str + :param records: List of call log records with synchronization information. For `ISync` the total number of returned records is limited to 250; this includes both new records and the old ones, specified by the recordCount parameter + :type records: List[CallLogRecord] + :param sync_info: sync_info + :type sync_info: CallLogSyncInfo + """ + + def __init__( + self, uri: str, records: List[CallLogRecord], sync_info: CallLogSyncInfo + ): + self.uri = uri + self.records = self._define_list(records, CallLogRecord) + self.sync_info = self._define_object(sync_info, CallLogSyncInfo) diff --git a/src/ring_central/models/call_log_sync_type_enum.py b/src/ring_central/models/call_log_sync_type_enum.py new file mode 100644 index 00000000..afc447f4 --- /dev/null +++ b/src/ring_central/models/call_log_sync_type_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallLogSyncTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar FSYNC: "FSync" + :vartype FSYNC: str + :cvar ISYNC: "ISync" + :vartype ISYNC: str + """ + + FSYNC = "FSync" + ISYNC = "ISync" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallLogSyncTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/call_log_to_party.py b/src/ring_central/models/call_log_to_party.py new file mode 100644 index 00000000..d5e80b15 --- /dev/null +++ b/src/ring_central/models/call_log_to_party.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_log_record_device_info import CallLogRecordDeviceInfo + + +@JsonMap( + { + "phone_number": "phoneNumber", + "extension_number": "extensionNumber", + "extension_id": "extensionId", + "dialed_phone_number": "dialedPhoneNumber", + } +) +class CallLogToParty(BaseModel): + """CallLogToParty + + :param phone_number: Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS, defaults to None + :type phone_number: str, optional + :param extension_number: Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message, defaults to None + :type extension_number: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param name: Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then, defaults to None + :type name: str, optional + :param location: Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers), defaults to None + :type location: str, optional + :param device: device, defaults to None + :type device: CallLogRecordDeviceInfo, optional + :param dialed_phone_number: Dialed phone number without any format modifications. Returned for outbound calls, defaults to None + :type dialed_phone_number: str, optional + """ + + def __init__( + self, + phone_number: str = None, + extension_number: str = None, + extension_id: str = None, + name: str = None, + location: str = None, + device: CallLogRecordDeviceInfo = None, + dialed_phone_number: str = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if extension_number is not None: + self.extension_number = extension_number + if extension_id is not None: + self.extension_id = extension_id + if name is not None: + self.name = name + if location is not None: + self.location = location + if device is not None: + self.device = self._define_object(device, CallLogRecordDeviceInfo) + if dialed_phone_number is not None: + self.dialed_phone_number = dialed_phone_number diff --git a/src/ring_central/models/call_monitoring_bulk_assign.py b/src/ring_central/models/call_monitoring_bulk_assign.py new file mode 100644 index 00000000..394e4fd4 --- /dev/null +++ b/src/ring_central/models/call_monitoring_bulk_assign.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_monitoring_extension_info import CallMonitoringExtensionInfo + + +@JsonMap( + { + "added_extensions": "addedExtensions", + "updated_extensions": "updatedExtensions", + "removed_extensions": "removedExtensions", + } +) +class CallMonitoringBulkAssign(BaseModel): + """CallMonitoringBulkAssign + + :param added_extensions: added_extensions, defaults to None + :type added_extensions: List[CallMonitoringExtensionInfo], optional + :param updated_extensions: updated_extensions, defaults to None + :type updated_extensions: List[CallMonitoringExtensionInfo], optional + :param removed_extensions: removed_extensions, defaults to None + :type removed_extensions: List[CallMonitoringExtensionInfo], optional + """ + + def __init__( + self, + added_extensions: List[CallMonitoringExtensionInfo] = None, + updated_extensions: List[CallMonitoringExtensionInfo] = None, + removed_extensions: List[CallMonitoringExtensionInfo] = None, + ): + if added_extensions is not None: + self.added_extensions = self._define_list( + added_extensions, CallMonitoringExtensionInfo + ) + if updated_extensions is not None: + self.updated_extensions = self._define_list( + updated_extensions, CallMonitoringExtensionInfo + ) + if removed_extensions is not None: + self.removed_extensions = self._define_list( + removed_extensions, CallMonitoringExtensionInfo + ) diff --git a/src/ring_central/models/call_monitoring_extension_info.py b/src/ring_central/models/call_monitoring_extension_info.py new file mode 100644 index 00000000..f637550a --- /dev/null +++ b/src/ring_central/models/call_monitoring_extension_info.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallMonitoringExtensionInfoPermissions(Enum): + """An enumeration representing different categories. + + :cvar MONITORING: "Monitoring" + :vartype MONITORING: str + :cvar MONITORED: "Monitored" + :vartype MONITORED: str + """ + + MONITORING = "Monitoring" + MONITORED = "Monitored" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallMonitoringExtensionInfoPermissions._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id"}) +class CallMonitoringExtensionInfo(BaseModel): + """CallMonitoringExtensionInfo + + :param id_: Internal identifier of an extension. Only the following extension types are allowed: User, DigitalUser, VirtualUser, FaxUser, Limited , defaults to None + :type id_: str, optional + :param permissions: Set of call monitoring group permissions granted to a specified extension. In order to remove a specified extension from a call monitoring group use an empty value , defaults to None + :type permissions: List[CallMonitoringExtensionInfoPermissions], optional + """ + + def __init__( + self, + id_: str = None, + permissions: List[CallMonitoringExtensionInfoPermissions] = None, + ): + if id_ is not None: + self.id_ = id_ + if permissions is not None: + self.permissions = self._define_list( + permissions, CallMonitoringExtensionInfoPermissions + ) diff --git a/src/ring_central/models/call_monitoring_group.py b/src/ring_central/models/call_monitoring_group.py new file mode 100644 index 00000000..ad6ffd62 --- /dev/null +++ b/src/ring_central/models/call_monitoring_group.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallMonitoringGroup(BaseModel): + """CallMonitoringGroup + + :param uri: Link to a call monitoring group resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a group, defaults to None + :type id_: str, optional + :param name: Name of a group, defaults to None + :type name: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None, name: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/call_monitoring_group_member_info.py b/src/ring_central/models/call_monitoring_group_member_info.py new file mode 100644 index 00000000..216e0304 --- /dev/null +++ b/src/ring_central/models/call_monitoring_group_member_info.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallMonitoringGroupMemberInfoPermissions(Enum): + """An enumeration representing different categories. + + :cvar MONITORING: "Monitoring" + :vartype MONITORING: str + :cvar MONITORED: "Monitored" + :vartype MONITORED: str + """ + + MONITORING = "Monitoring" + MONITORED = "Monitored" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallMonitoringGroupMemberInfoPermissions._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class CallMonitoringGroupMemberInfo(BaseModel): + """CallMonitoringGroupMemberInfo + + :param uri: Link to a call monitoring group member, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a call monitoring group member , defaults to None + :type id_: str, optional + :param extension_number: Extension number of a call monitoring group member , defaults to None + :type extension_number: str, optional + :param permissions: permissions, defaults to None + :type permissions: List[CallMonitoringGroupMemberInfoPermissions], optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + extension_number: str = None, + permissions: List[CallMonitoringGroupMemberInfoPermissions] = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if permissions is not None: + self.permissions = self._define_list( + permissions, CallMonitoringGroupMemberInfoPermissions + ) diff --git a/src/ring_central/models/call_monitoring_group_member_list.py b/src/ring_central/models/call_monitoring_group_member_list.py new file mode 100644 index 00000000..49e7f452 --- /dev/null +++ b/src/ring_central/models/call_monitoring_group_member_list.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_monitoring_group_member_info import CallMonitoringGroupMemberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallMonitoringGroupMemberList(BaseModel): + """CallMonitoringGroupMemberList + + :param uri: Link to a call monitoring group members resource + :type uri: str + :param records: List of a call monitoring group members + :type records: List[CallMonitoringGroupMemberInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + uri: str, + records: List[CallMonitoringGroupMemberInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + ): + self.uri = uri + self.records = self._define_list(records, CallMonitoringGroupMemberInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_monitoring_groups.py b/src/ring_central/models/call_monitoring_groups.py new file mode 100644 index 00000000..3c8defb5 --- /dev/null +++ b/src/ring_central/models/call_monitoring_groups.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_monitoring_group import CallMonitoringGroup +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallMonitoringGroups(BaseModel): + """CallMonitoringGroups + + :param uri: Link to a call monitoring groups resource + :type uri: str + :param records: List of call monitoring group members + :type records: List[CallMonitoringGroup] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + uri: str, + records: List[CallMonitoringGroup], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + ): + self.uri = uri + self.records = self._define_list(records, CallMonitoringGroup) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_party.py b/src/ring_central/models/call_party.py new file mode 100644 index 00000000..28cb7280 --- /dev/null +++ b/src/ring_central/models/call_party.py @@ -0,0 +1,191 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_status_info import CallStatusInfo +from .park_info import ParkInfo +from .party_info import PartyInfo +from .owner_info import OwnerInfo +from .recording_info import RecordingInfo + + +class CallPartyDirection(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallPartyDirection._member_map_.values())) + + +class CallPartyConferenceRole(Enum): + """An enumeration representing different categories. + + :cvar HOST: "Host" + :vartype HOST: str + :cvar PARTICIPANT: "Participant" + :vartype PARTICIPANT: str + """ + + HOST = "Host" + PARTICIPANT = "Participant" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallPartyConferenceRole._member_map_.values()) + ) + + +class CallPartyRingOutRole(Enum): + """An enumeration representing different categories. + + :cvar INITIATOR: "Initiator" + :vartype INITIATOR: str + :cvar TARGET: "Target" + :vartype TARGET: str + """ + + INITIATOR = "Initiator" + TARGET = "Target" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallPartyRingOutRole._member_map_.values())) + + +class CallPartyRingMeRole(Enum): + """An enumeration representing different categories. + + :cvar INITIATOR: "Initiator" + :vartype INITIATOR: str + :cvar TARGET: "Target" + :vartype TARGET: str + """ + + INITIATOR = "Initiator" + TARGET = "Target" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallPartyRingMeRole._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "stand_alone": "standAlone", + "from_": "from", + "conference_role": "conferenceRole", + "ring_out_role": "ringOutRole", + "ring_me_role": "ringMeRole", + } +) +class CallParty(BaseModel): + """Information on a party of a call session + + :param id_: Internal identifier of a party, defaults to None + :type id_: str, optional + :param status: Status data of a call session, defaults to None + :type status: CallStatusInfo, optional + :param muted: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces , defaults to None + :type muted: bool, optional + :param stand_alone: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session , defaults to None + :type stand_alone: bool, optional + :param park: Call park information, defaults to None + :type park: ParkInfo, optional + :param from_: from_, defaults to None + :type from_: PartyInfo, optional + :param to: to, defaults to None + :type to: PartyInfo, optional + :param owner: Deprecated. Information on a call owner, defaults to None + :type owner: OwnerInfo, optional + :param direction: Direction of a call, defaults to None + :type direction: CallPartyDirection, optional + :param conference_role: A party's role in the conference scenarios. For calls of 'Conference' type only, defaults to None + :type conference_role: CallPartyConferenceRole, optional + :param ring_out_role: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only, defaults to None + :type ring_out_role: CallPartyRingOutRole, optional + :param ring_me_role: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only, defaults to None + :type ring_me_role: CallPartyRingMeRole, optional + :param recordings: Active recordings list, defaults to None + :type recordings: List[RecordingInfo], optional + """ + + def __init__( + self, + id_: str = None, + status: CallStatusInfo = None, + muted: bool = None, + stand_alone: bool = None, + park: ParkInfo = None, + from_: PartyInfo = None, + to: PartyInfo = None, + owner: OwnerInfo = None, + direction: CallPartyDirection = None, + conference_role: CallPartyConferenceRole = None, + ring_out_role: CallPartyRingOutRole = None, + ring_me_role: CallPartyRingMeRole = None, + recordings: List[RecordingInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._define_object(status, CallStatusInfo) + if muted is not None: + self.muted = muted + if stand_alone is not None: + self.stand_alone = stand_alone + if park is not None: + self.park = self._define_object(park, ParkInfo) + if from_ is not None: + self.from_ = self._define_object(from_, PartyInfo) + if to is not None: + self.to = self._define_object(to, PartyInfo) + if owner is not None: + self.owner = self._define_object(owner, OwnerInfo) + if direction is not None: + self.direction = self._enum_matching( + direction, CallPartyDirection.list(), "direction" + ) + if conference_role is not None: + self.conference_role = self._enum_matching( + conference_role, CallPartyConferenceRole.list(), "conference_role" + ) + if ring_out_role is not None: + self.ring_out_role = self._enum_matching( + ring_out_role, CallPartyRingOutRole.list(), "ring_out_role" + ) + if ring_me_role is not None: + self.ring_me_role = self._enum_matching( + ring_me_role, CallPartyRingMeRole.list(), "ring_me_role" + ) + if recordings is not None: + self.recordings = self._define_list(recordings, RecordingInfo) diff --git a/src/ring_central/models/call_party_flip.py b/src/ring_central/models/call_party_flip.py new file mode 100644 index 00000000..1e2127b7 --- /dev/null +++ b/src/ring_central/models/call_party_flip.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"call_flip_id": "callFlipId"}) +class CallPartyFlip(BaseModel): + """CallPartyFlip + + :param call_flip_id: Call flip id, defaults to None + :type call_flip_id: str, optional + """ + + def __init__(self, call_flip_id: str = None): + if call_flip_id is not None: + self.call_flip_id = call_flip_id diff --git a/src/ring_central/models/call_party_reply.py b/src/ring_central/models/call_party_reply.py new file mode 100644 index 00000000..e2d8247b --- /dev/null +++ b/src/ring_central/models/call_party_reply.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .reply_with_pattern import ReplyWithPattern + + +@JsonMap({"reply_with_text": "replyWithText", "reply_with_pattern": "replyWithPattern"}) +class CallPartyReply(BaseModel): + """CallPartyReply + + :param reply_with_text: Text to reply, defaults to None + :type reply_with_text: str, optional + :param reply_with_pattern: reply_with_pattern, defaults to None + :type reply_with_pattern: ReplyWithPattern, optional + """ + + def __init__( + self, reply_with_text: str = None, reply_with_pattern: ReplyWithPattern = None + ): + if reply_with_text is not None: + self.reply_with_text = reply_with_text + if reply_with_pattern is not None: + self.reply_with_pattern = self._define_object( + reply_with_pattern, ReplyWithPattern + ) diff --git a/src/ring_central/models/call_queue_bulk_assign_resource.py b/src/ring_central/models/call_queue_bulk_assign_resource.py new file mode 100644 index 00000000..55e14751 --- /dev/null +++ b/src/ring_central/models/call_queue_bulk_assign_resource.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "added_extension_ids": "addedExtensionIds", + "removed_extension_ids": "removedExtensionIds", + } +) +class CallQueueBulkAssignResource(BaseModel): + """CallQueueBulkAssignResource + + :param added_extension_ids: added_extension_ids, defaults to None + :type added_extension_ids: List[str], optional + :param removed_extension_ids: removed_extension_ids, defaults to None + :type removed_extension_ids: List[str], optional + """ + + def __init__( + self, + added_extension_ids: List[str] = None, + removed_extension_ids: List[str] = None, + ): + if added_extension_ids is not None: + self.added_extension_ids = added_extension_ids + if removed_extension_ids is not None: + self.removed_extension_ids = removed_extension_ids diff --git a/src/ring_central/models/call_queue_details.py b/src/ring_central/models/call_queue_details.py new file mode 100644 index 00000000..ad3f24ed --- /dev/null +++ b/src/ring_central/models/call_queue_details.py @@ -0,0 +1,189 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_service_level_settings import CallQueueServiceLevelSettings + + +class CallQueueDetailsStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + NOTACTIVATED = "NotActivated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallQueueDetailsStatus._member_map_.values()) + ) + + +class CallQueueDetailsSubType(Enum): + """An enumeration representing different categories. + + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallQueueDetailsSubType._member_map_.values()) + ) + + +class AlertTimer(Enum): + """An enumeration representing different categories. + + :cvar _5: 5 + :vartype _5: str + :cvar _10: 10 + :vartype _10: str + :cvar _15: 15 + :vartype _15: str + :cvar _20: 20 + :vartype _20: str + :cvar _30: 30 + :vartype _30: str + :cvar _45: 45 + :vartype _45: str + :cvar _60: 60 + :vartype _60: str + :cvar _120: 120 + :vartype _120: str + :cvar _180: 180 + :vartype _180: str + :cvar _240: 240 + :vartype _240: str + :cvar _300: 300 + :vartype _300: str + :cvar _360: 360 + :vartype _360: str + :cvar _420: 420 + :vartype _420: str + :cvar _480: 480 + :vartype _480: str + :cvar _540: 540 + :vartype _540: str + :cvar _600: 600 + :vartype _600: str + """ + + _5 = 5 + _10 = 10 + _15 = 15 + _20 = 20 + _30 = 30 + _45 = 45 + _60 = 60 + _120 = 120 + _180 = 180 + _240 = 240 + _300 = 300 + _360 = 360 + _420 = 420 + _480 = 480 + _540 = 540 + _600 = 600 + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AlertTimer._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "sub_type": "subType", + "service_level_settings": "serviceLevelSettings", + "editable_member_status": "editableMemberStatus", + "alert_timer": "alertTimer", + } +) +class CallQueueDetails(BaseModel): + """CallQueueDetails + + :param uri: Link to a call queue, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a call queue, defaults to None + :type id_: str, optional + :param extension_number: Extension number of a call queue, defaults to None + :type extension_number: str, optional + :param name: Name of a call queue, defaults to None + :type name: str, optional + :param status: Call queue status, defaults to None + :type status: CallQueueDetailsStatus, optional + :param sub_type: Indicates whether it is an emergency call queue extension or not, defaults to None + :type sub_type: CallQueueDetailsSubType, optional + :param service_level_settings: Call queue service level settings, defaults to None + :type service_level_settings: CallQueueServiceLevelSettings, optional + :param editable_member_status: Allows members to change their queue status, defaults to None + :type editable_member_status: bool, optional + :param alert_timer: Alert timer or pickup setting. Delay time in seconds before call queue group members are notified when calls are queued , defaults to None + :type alert_timer: AlertTimer, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + extension_number: str = None, + name: str = None, + status: CallQueueDetailsStatus = None, + sub_type: CallQueueDetailsSubType = None, + service_level_settings: CallQueueServiceLevelSettings = None, + editable_member_status: bool = None, + alert_timer: AlertTimer = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if status is not None: + self.status = self._enum_matching( + status, CallQueueDetailsStatus.list(), "status" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, CallQueueDetailsSubType.list(), "sub_type" + ) + if service_level_settings is not None: + self.service_level_settings = self._define_object( + service_level_settings, CallQueueServiceLevelSettings + ) + if editable_member_status is not None: + self.editable_member_status = editable_member_status + if alert_timer is not None: + self.alert_timer = self._enum_matching( + alert_timer, AlertTimer.list(), "alert_timer" + ) diff --git a/src/ring_central/models/call_queue_extension_info.py b/src/ring_central/models/call_queue_extension_info.py new file mode 100644 index 00000000..610fe85e --- /dev/null +++ b/src/ring_central/models/call_queue_extension_info.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "sla_goal": "slaGoal", + "sla_threshold_seconds": "slaThresholdSeconds", + "include_abandoned_calls": "includeAbandonedCalls", + "abandoned_threshold_seconds": "abandonedThresholdSeconds", + } +) +class CallQueueExtensionInfo(BaseModel): + """For Call Queue extension type only. Please note that legacy + 'Department' extension type corresponds to 'Call Queue' extensions + in modern RingCentral product terminology + + + :param sla_goal: Target percentage of calls that must be answered by agents within the service level time threshold , defaults to None + :type sla_goal: int, optional + :param sla_threshold_seconds: Period of time in seconds that is considered to be an acceptable service level , defaults to None + :type sla_threshold_seconds: int, optional + :param include_abandoned_calls: If `true` abandoned calls (hanged up prior to being served) are included into service level calculation , defaults to None + :type include_abandoned_calls: bool, optional + :param abandoned_threshold_seconds: Period of time in seconds specifying abandoned calls duration - calls that are shorter will not be included into the calculation of service level.; zero value means that abandoned calls of any duration will be included into calculation , defaults to None + :type abandoned_threshold_seconds: int, optional + """ + + def __init__( + self, + sla_goal: int = None, + sla_threshold_seconds: int = None, + include_abandoned_calls: bool = None, + abandoned_threshold_seconds: int = None, + ): + if sla_goal is not None: + self.sla_goal = sla_goal + if sla_threshold_seconds is not None: + self.sla_threshold_seconds = sla_threshold_seconds + if include_abandoned_calls is not None: + self.include_abandoned_calls = include_abandoned_calls + if abandoned_threshold_seconds is not None: + self.abandoned_threshold_seconds = abandoned_threshold_seconds diff --git a/src/ring_central/models/call_queue_id.py b/src/ring_central/models/call_queue_id.py new file mode 100644 index 00000000..79fa3ef9 --- /dev/null +++ b/src/ring_central/models/call_queue_id.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallQueueId(BaseModel): + """Call queue information + + :param id_: Internal identifier of a call queue, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/call_queue_id_resource.py b/src/ring_central/models/call_queue_id_resource.py new file mode 100644 index 00000000..dbd5e945 --- /dev/null +++ b/src/ring_central/models/call_queue_id_resource.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallQueueIdResource(BaseModel): + """CallQueueIdResource + + :param id_: Internal identifier of a call queue, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/call_queue_info.py b/src/ring_central/models/call_queue_info.py new file mode 100644 index 00000000..dcb3c695 --- /dev/null +++ b/src/ring_central/models/call_queue_info.py @@ -0,0 +1,92 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallQueueInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + NOTACTIVATED = "NotActivated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallQueueInfoStatus._member_map_.values())) + + +class CallQueueInfoSubType(Enum): + """An enumeration representing different categories. + + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallQueueInfoSubType._member_map_.values())) + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber", "sub_type": "subType"}) +class CallQueueInfo(BaseModel): + """CallQueueInfo + + :param uri: Link to a call queue, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a call queue, defaults to None + :type id_: str, optional + :param extension_number: Extension number of a call queue, defaults to None + :type extension_number: str, optional + :param name: Name of a call queue, defaults to None + :type name: str, optional + :param status: Call queue status, defaults to None + :type status: CallQueueInfoStatus, optional + :param sub_type: Indicates whether it is an emergency call queue extension or not, defaults to None + :type sub_type: CallQueueInfoSubType, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + extension_number: str = None, + name: str = None, + status: CallQueueInfoStatus = None, + sub_type: CallQueueInfoSubType = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if status is not None: + self.status = self._enum_matching( + status, CallQueueInfoStatus.list(), "status" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, CallQueueInfoSubType.list(), "sub_type" + ) diff --git a/src/ring_central/models/call_queue_info_request.py b/src/ring_central/models/call_queue_info_request.py new file mode 100644 index 00000000..b625504a --- /dev/null +++ b/src/ring_central/models/call_queue_info_request.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "sla_goal": "slaGoal", + "sla_threshold_seconds": "slaThresholdSeconds", + "include_abandoned_calls": "includeAbandonedCalls", + "abandoned_threshold_seconds": "abandonedThresholdSeconds", + } +) +class CallQueueInfoRequest(BaseModel): + """For Call Queue extension type only. Please note that legacy 'Department' + extension type corresponds to 'Call Queue' extensions in modern RingCentral + product terminology + + + :param sla_goal: Target percentage of calls that must be answered by agents within the service level time threshold , defaults to None + :type sla_goal: int, optional + :param sla_threshold_seconds: sla_threshold_seconds, defaults to None + :type sla_threshold_seconds: int, optional + :param include_abandoned_calls: include_abandoned_calls, defaults to None + :type include_abandoned_calls: bool, optional + :param abandoned_threshold_seconds: abandoned_threshold_seconds, defaults to None + :type abandoned_threshold_seconds: int, optional + """ + + def __init__( + self, + sla_goal: int = None, + sla_threshold_seconds: int = None, + include_abandoned_calls: bool = None, + abandoned_threshold_seconds: int = None, + ): + if sla_goal is not None: + self.sla_goal = sla_goal + if sla_threshold_seconds is not None: + self.sla_threshold_seconds = sla_threshold_seconds + if include_abandoned_calls is not None: + self.include_abandoned_calls = include_abandoned_calls + if abandoned_threshold_seconds is not None: + self.abandoned_threshold_seconds = abandoned_threshold_seconds diff --git a/src/ring_central/models/call_queue_member.py b/src/ring_central/models/call_queue_member.py new file mode 100644 index 00000000..c5aacc7d --- /dev/null +++ b/src/ring_central/models/call_queue_member.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_resource import SiteResource + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class CallQueueMember(BaseModel): + """Call queue member information + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param name: Extension full name, defaults to None + :type name: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + :param site: Site extension information, defaults to None + :type site: SiteResource, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + extension_number: str = None, + site: SiteResource = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if site is not None: + self.site = self._define_object(site, SiteResource) diff --git a/src/ring_central/models/call_queue_member_id.py b/src/ring_central/models/call_queue_member_id.py new file mode 100644 index 00000000..f1129c32 --- /dev/null +++ b/src/ring_central/models/call_queue_member_id.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallQueueMemberId(BaseModel): + """Call queue member information + + :param id_: Internal identifier of an extension - queue member, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/call_queue_member_info.py b/src/ring_central/models/call_queue_member_info.py new file mode 100644 index 00000000..f7da3a07 --- /dev/null +++ b/src/ring_central/models/call_queue_member_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class CallQueueMemberInfo(BaseModel): + """CallQueueMemberInfo + + :param uri: Link to a call queue member, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a call queue member, defaults to None + :type id_: int, optional + :param extension_number: Extension number of a call queue member, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, uri: str = None, id_: int = None, extension_number: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/call_queue_member_presence.py b/src/ring_central/models/call_queue_member_presence.py new file mode 100644 index 00000000..4b60caa7 --- /dev/null +++ b/src/ring_central/models/call_queue_member_presence.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_member import CallQueueMember + + +@JsonMap( + { + "accept_queue_calls": "acceptQueueCalls", + "accept_current_queue_calls": "acceptCurrentQueueCalls", + } +) +class CallQueueMemberPresence(BaseModel): + """CallQueueMemberPresence + + :param member: Call queue member information, defaults to None + :type member: CallQueueMember, optional + :param accept_queue_calls: Private member telephony availability status applied to calls of all queues, defaults to None + :type accept_queue_calls: bool, optional + :param accept_current_queue_calls: Call queue member availability in this particular queue, defaults to None + :type accept_current_queue_calls: bool, optional + """ + + def __init__( + self, + member: CallQueueMember = None, + accept_queue_calls: bool = None, + accept_current_queue_calls: bool = None, + ): + if member is not None: + self.member = self._define_object(member, CallQueueMember) + if accept_queue_calls is not None: + self.accept_queue_calls = accept_queue_calls + if accept_current_queue_calls is not None: + self.accept_current_queue_calls = accept_current_queue_calls diff --git a/src/ring_central/models/call_queue_members.py b/src/ring_central/models/call_queue_members.py new file mode 100644 index 00000000..9a1b9a0d --- /dev/null +++ b/src/ring_central/models/call_queue_members.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_member_info import CallQueueMemberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallQueueMembers(BaseModel): + """CallQueueMembers + + :param uri: Link to a call queue members resource + :type uri: str + :param records: List of call queue members + :type records: List[CallQueueMemberInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + uri: str, + records: List[CallQueueMemberInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + ): + self.uri = uri + self.records = self._define_list(records, CallQueueMemberInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_queue_overflow_settings.py b/src/ring_central/models/call_queue_overflow_settings.py new file mode 100644 index 00000000..0281ec7e --- /dev/null +++ b/src/ring_central/models/call_queue_overflow_settings.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_info import CallQueueInfo + + +@JsonMap({}) +class CallQueueOverflowSettings(BaseModel): + """CallQueueOverflowSettings + + :param enabled: Call queue overflow status, defaults to None + :type enabled: bool, optional + :param items: items, defaults to None + :type items: List[CallQueueInfo], optional + """ + + def __init__(self, enabled: bool = None, items: List[CallQueueInfo] = None): + if enabled is not None: + self.enabled = enabled + if items is not None: + self.items = self._define_list(items, CallQueueInfo) diff --git a/src/ring_central/models/call_queue_overflow_settings_request_resource.py b/src/ring_central/models/call_queue_overflow_settings_request_resource.py new file mode 100644 index 00000000..e14baebc --- /dev/null +++ b/src/ring_central/models/call_queue_overflow_settings_request_resource.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_id_resource import CallQueueIdResource + + +@JsonMap({}) +class CallQueueOverflowSettingsRequestResource(BaseModel): + """CallQueueOverflowSettingsRequestResource + + :param enabled: Call queue overflow status, defaults to None + :type enabled: bool, optional + :param items: items, defaults to None + :type items: List[CallQueueIdResource], optional + """ + + def __init__(self, enabled: bool = None, items: List[CallQueueIdResource] = None): + if enabled is not None: + self.enabled = enabled + if items is not None: + self.items = self._define_list(items, CallQueueIdResource) diff --git a/src/ring_central/models/call_queue_presence.py b/src/ring_central/models/call_queue_presence.py new file mode 100644 index 00000000..8db85f58 --- /dev/null +++ b/src/ring_central/models/call_queue_presence.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_member_presence import CallQueueMemberPresence + + +@JsonMap({}) +class CallQueuePresence(BaseModel): + """CallQueuePresence + + :param records: records, defaults to None + :type records: List[CallQueueMemberPresence], optional + """ + + def __init__(self, records: List[CallQueueMemberPresence] = None): + if records is not None: + self.records = self._define_list(records, CallQueueMemberPresence) diff --git a/src/ring_central/models/call_queue_resource.py b/src/ring_central/models/call_queue_resource.py new file mode 100644 index 00000000..7130ecd1 --- /dev/null +++ b/src/ring_central/models/call_queue_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallQueueResource(BaseModel): + """CallQueueResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/call_queue_service_level_settings.py b/src/ring_central/models/call_queue_service_level_settings.py new file mode 100644 index 00000000..899e7b89 --- /dev/null +++ b/src/ring_central/models/call_queue_service_level_settings.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "sla_goal": "slaGoal", + "sla_threshold_seconds": "slaThresholdSeconds", + "include_abandoned_calls": "includeAbandonedCalls", + "abandoned_threshold_seconds": "abandonedThresholdSeconds", + } +) +class CallQueueServiceLevelSettings(BaseModel): + """Call queue service level settings + + :param sla_goal: Target percentage of calls that must be answered by agents within the service level time threshold , defaults to None + :type sla_goal: int, optional + :param sla_threshold_seconds: The period of time in seconds that is considered to be an acceptable service level , defaults to None + :type sla_threshold_seconds: int, optional + :param include_abandoned_calls: Includes abandoned calls (when callers hang up prior to being served by an agent) into service-level calculation , defaults to None + :type include_abandoned_calls: bool, optional + :param abandoned_threshold_seconds: Abandoned calls that are shorter than the defined period of time in seconds will not be included into the calculation of Service Level , defaults to None + :type abandoned_threshold_seconds: int, optional + """ + + def __init__( + self, + sla_goal: int = None, + sla_threshold_seconds: int = None, + include_abandoned_calls: bool = None, + abandoned_threshold_seconds: int = None, + ): + if sla_goal is not None: + self.sla_goal = sla_goal + if sla_threshold_seconds is not None: + self.sla_threshold_seconds = sla_threshold_seconds + if include_abandoned_calls is not None: + self.include_abandoned_calls = include_abandoned_calls + if abandoned_threshold_seconds is not None: + self.abandoned_threshold_seconds = abandoned_threshold_seconds diff --git a/src/ring_central/models/call_queue_update_member_presence.py b/src/ring_central/models/call_queue_update_member_presence.py new file mode 100644 index 00000000..602fef12 --- /dev/null +++ b/src/ring_central/models/call_queue_update_member_presence.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_member_id import CallQueueMemberId + + +@JsonMap({"accept_current_queue_calls": "acceptCurrentQueueCalls"}) +class CallQueueUpdateMemberPresence(BaseModel): + """CallQueueUpdateMemberPresence + + :param member: Call queue member information, defaults to None + :type member: CallQueueMemberId, optional + :param accept_current_queue_calls: Call queue member availability for calls of this queue, defaults to None + :type accept_current_queue_calls: bool, optional + """ + + def __init__( + self, member: CallQueueMemberId = None, accept_current_queue_calls: bool = None + ): + if member is not None: + self.member = self._define_object(member, CallQueueMemberId) + if accept_current_queue_calls is not None: + self.accept_current_queue_calls = accept_current_queue_calls diff --git a/src/ring_central/models/call_queue_update_presence.py b/src/ring_central/models/call_queue_update_presence.py new file mode 100644 index 00000000..351f1155 --- /dev/null +++ b/src/ring_central/models/call_queue_update_presence.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_update_member_presence import CallQueueUpdateMemberPresence + + +@JsonMap({}) +class CallQueueUpdatePresence(BaseModel): + """CallQueueUpdatePresence + + :param records: records, defaults to None + :type records: List[CallQueueUpdateMemberPresence], optional + """ + + def __init__(self, records: List[CallQueueUpdateMemberPresence] = None): + if records is not None: + self.records = self._define_list(records, CallQueueUpdateMemberPresence) diff --git a/src/ring_central/models/call_queues.py b/src/ring_central/models/call_queues.py new file mode 100644 index 00000000..c4907662 --- /dev/null +++ b/src/ring_central/models/call_queues.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_info import CallQueueInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallQueues(BaseModel): + """CallQueues + + :param uri: Link to a call queues resource + :type uri: str + :param records: List of call queues + :type records: List[CallQueueInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + uri: str, + records: List[CallQueueInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + ): + self.uri = uri + self.records = self._define_list(records, CallQueueInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_recording.py b/src/ring_central/models/call_recording.py new file mode 100644 index 00000000..6b9d6176 --- /dev/null +++ b/src/ring_central/models/call_recording.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallRecording(BaseModel): + """CallRecording + + :param id_: Internal identifier of a call recording, defaults to None + :type id_: str, optional + :param active: Call recording status, defaults to None + :type active: bool, optional + """ + + def __init__(self, id_: str = None, active: bool = None): + if id_ is not None: + self.id_ = id_ + if active is not None: + self.active = active diff --git a/src/ring_central/models/call_recording_custom_greeting.py b/src/ring_central/models/call_recording_custom_greeting.py new file mode 100644 index 00000000..644b7338 --- /dev/null +++ b/src/ring_central/models/call_recording_custom_greeting.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_recording_custom_greeting_data import CallRecordingCustomGreetingData +from .call_recording_custom_greeting_language import CallRecordingCustomGreetingLanguage + + +class CallRecordingCustomGreetingType(Enum): + """An enumeration representing different categories. + + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + """ + + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, CallRecordingCustomGreetingType._member_map_.values() + ) + ) + + +@JsonMap({"type_": "type"}) +class CallRecordingCustomGreeting(BaseModel): + """CallRecordingCustomGreeting + + :param type_: type_, defaults to None + :type type_: CallRecordingCustomGreetingType, optional + :param custom: Custom greeting data, defaults to None + :type custom: CallRecordingCustomGreetingData, optional + :param language: Custom greeting language, defaults to None + :type language: CallRecordingCustomGreetingLanguage, optional + """ + + def __init__( + self, + type_: CallRecordingCustomGreetingType = None, + custom: CallRecordingCustomGreetingData = None, + language: CallRecordingCustomGreetingLanguage = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, CallRecordingCustomGreetingType.list(), "type_" + ) + if custom is not None: + self.custom = self._define_object(custom, CallRecordingCustomGreetingData) + if language is not None: + self.language = self._define_object( + language, CallRecordingCustomGreetingLanguage + ) diff --git a/src/ring_central/models/call_recording_custom_greeting_data.py b/src/ring_central/models/call_recording_custom_greeting_data.py new file mode 100644 index 00000000..ce89e201 --- /dev/null +++ b/src/ring_central/models/call_recording_custom_greeting_data.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallRecordingCustomGreetingData(BaseModel): + """Custom greeting data + + :param uri: Link to a custom company greeting, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a custom company greeting, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/call_recording_custom_greeting_language.py b/src/ring_central/models/call_recording_custom_greeting_language.py new file mode 100644 index 00000000..985850e1 --- /dev/null +++ b/src/ring_central/models/call_recording_custom_greeting_language.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class CallRecordingCustomGreetingLanguage(BaseModel): + """Custom greeting language + + :param uri: Link to a language, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a language, defaults to None + :type id_: str, optional + :param name: Language name, defaults to None + :type name: str, optional + :param locale_code: Language locale code, defaults to None + :type locale_code: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + locale_code: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/call_recording_custom_greetings.py b/src/ring_central/models/call_recording_custom_greetings.py new file mode 100644 index 00000000..c6eb4586 --- /dev/null +++ b/src/ring_central/models/call_recording_custom_greetings.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_recording_custom_greeting import CallRecordingCustomGreeting + + +@JsonMap({}) +class CallRecordingCustomGreetings(BaseModel): + """Returns data on call recording custom greetings. + + :param records: records, defaults to None + :type records: List[CallRecordingCustomGreeting], optional + """ + + def __init__(self, records: List[CallRecordingCustomGreeting] = None): + if records is not None: + self.records = self._define_list(records, CallRecordingCustomGreeting) diff --git a/src/ring_central/models/call_recording_extension_info.py b/src/ring_central/models/call_recording_extension_info.py new file mode 100644 index 00000000..cb9fc403 --- /dev/null +++ b/src/ring_central/models/call_recording_extension_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class CallRecordingExtensionInfo(BaseModel): + """CallRecordingExtensionInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Link to an extension resource, defaults to None + :type uri: str, optional + :param extension_number: Number of an extension, defaults to None + :type extension_number: str, optional + :param name: Name of an extension, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/call_recording_extension_resource.py b/src/ring_central/models/call_recording_extension_resource.py new file mode 100644 index 00000000..d21774d5 --- /dev/null +++ b/src/ring_central/models/call_recording_extension_resource.py @@ -0,0 +1,74 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallDirection(Enum): + """An enumeration representing different categories. + + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar ALL: "All" + :vartype ALL: str + """ + + OUTBOUND = "Outbound" + INBOUND = "Inbound" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallDirection._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "type_": "type", + "call_direction": "callDirection", + } +) +class CallRecordingExtensionResource(BaseModel): + """CallRecordingExtensionResource + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: uri, defaults to None + :type uri: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + :param type_: type_, defaults to None + :type type_: str, optional + :param call_direction: Direction of call, defaults to None + :type call_direction: CallDirection, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + type_: str = None, + call_direction: CallDirection = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if type_ is not None: + self.type_ = type_ + if call_direction is not None: + self.call_direction = self._enum_matching( + call_direction, CallDirection.list(), "call_direction" + ) diff --git a/src/ring_central/models/call_recording_extensions.py b/src/ring_central/models/call_recording_extensions.py new file mode 100644 index 00000000..5d36cc50 --- /dev/null +++ b/src/ring_central/models/call_recording_extensions.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_recording_extension_info import CallRecordingExtensionInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CallRecordingExtensions(BaseModel): + """CallRecordingExtensions + + :param uri: Link to call recording extension list resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[CallRecordingExtensionInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[CallRecordingExtensionInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, CallRecordingExtensionInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/call_recording_ids.py b/src/ring_central/models/call_recording_ids.py new file mode 100644 index 00000000..84923a41 --- /dev/null +++ b/src/ring_central/models/call_recording_ids.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CallRecordingIds(BaseModel): + """CallRecordingIds + + :param records: Call recordings ID(s) to delete + :type records: List[str] + """ + + def __init__(self, records: List[str]): + self.records = records diff --git a/src/ring_central/models/call_recording_settings_resource.py b/src/ring_central/models/call_recording_settings_resource.py new file mode 100644 index 00000000..83c7d5b0 --- /dev/null +++ b/src/ring_central/models/call_recording_settings_resource.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .on_demand_resource import OnDemandResource +from .automatic_recording_resource import AutomaticRecordingResource +from .greeting_resource import GreetingResource + + +@JsonMap({"on_demand": "onDemand"}) +class CallRecordingSettingsResource(BaseModel): + """CallRecordingSettingsResource + + :param on_demand: on_demand, defaults to None + :type on_demand: OnDemandResource, optional + :param automatic: automatic, defaults to None + :type automatic: AutomaticRecordingResource, optional + :param greetings: Collection of Greeting Info, defaults to None + :type greetings: List[GreetingResource], optional + """ + + def __init__( + self, + on_demand: OnDemandResource = None, + automatic: AutomaticRecordingResource = None, + greetings: List[GreetingResource] = None, + ): + if on_demand is not None: + self.on_demand = self._define_object(on_demand, OnDemandResource) + if automatic is not None: + self.automatic = self._define_object(automatic, AutomaticRecordingResource) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingResource) diff --git a/src/ring_central/models/call_recording_update.py b/src/ring_central/models/call_recording_update.py new file mode 100644 index 00000000..573be1a0 --- /dev/null +++ b/src/ring_central/models/call_recording_update.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CallRecordingUpdate(BaseModel): + """CallRecordingUpdate + + :param active: Recording status, defaults to None + :type active: bool, optional + """ + + def __init__(self, active: bool = None): + if active is not None: + self.active = active diff --git a/src/ring_central/models/call_response.py b/src/ring_central/models/call_response.py new file mode 100644 index 00000000..2b35ec1f --- /dev/null +++ b/src/ring_central/models/call_response.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallResponse(Enum): + """An enumeration representing different categories. + + :cvar ANSWERED: "Answered" + :vartype ANSWERED: str + :cvar NOTANSWERED: "NotAnswered" + :vartype NOTANSWERED: str + :cvar CONNECTED: "Connected" + :vartype CONNECTED: str + :cvar NOTCONNECTED: "NotConnected" + :vartype NOTCONNECTED: str + """ + + ANSWERED = "Answered" + NOTANSWERED = "NotAnswered" + CONNECTED = "Connected" + NOTCONNECTED = "NotConnected" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallResponse._member_map_.values())) diff --git a/src/ring_central/models/call_result.py b/src/ring_central/models/call_result.py new file mode 100644 index 00000000..cc007018 --- /dev/null +++ b/src/ring_central/models/call_result.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallResult(Enum): + """An enumeration representing different categories. + + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar ABANDONED: "Abandoned" + :vartype ABANDONED: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar MISSED: "Missed" + :vartype MISSED: str + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + """ + + COMPLETED = "Completed" + ABANDONED = "Abandoned" + VOICEMAIL = "Voicemail" + UNKNOWN = "Unknown" + MISSED = "Missed" + ACCEPTED = "Accepted" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallResult._member_map_.values())) diff --git a/src/ring_central/models/call_result_enum.py b/src/ring_central/models/call_result_enum.py new file mode 100644 index 00000000..8e4b3862 --- /dev/null +++ b/src/ring_central/models/call_result_enum.py @@ -0,0 +1,147 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallResultEnum(Enum): + """An enumeration representing different categories. + + :cvar _911: "911" + :vartype _911: str + :cvar _933: "933" + :vartype _933: str + :cvar ABANDONED: "Abandoned" + :vartype ABANDONED: str + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar ANSWERED_NOT_ACCEPTED: "Answered Not Accepted" + :vartype ANSWERED_NOT_ACCEPTED: str + :cvar BLOCKED: "Blocked" + :vartype BLOCKED: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar CALL_FAILED: "Call Failed" + :vartype CALL_FAILED: str + :cvar CALL_FAILURE: "Call Failure" + :vartype CALL_FAILURE: str + :cvar CALL_CONNECTED: "Call connected" + :vartype CALL_CONNECTED: str + :cvar CARRIER_IS_NOT_ACTIVE: "Carrier is not active" + :vartype CARRIER_IS_NOT_ACTIVE: str + :cvar DECLINED: "Declined" + :vartype DECLINED: str + :cvar EDGE_TRUNK_MISCONFIGURED: "EDGE trunk misconfigured" + :vartype EDGE_TRUNK_MISCONFIGURED: str + :cvar FAX_NOT_SENT: "Fax Not Sent" + :vartype FAX_NOT_SENT: str + :cvar FAX_PARTIALLY_SENT: "Fax Partially Sent" + :vartype FAX_PARTIALLY_SENT: str + :cvar FAX_POOR_LINE: "Fax Poor Line" + :vartype FAX_POOR_LINE: str + :cvar FAX_RECEIPT_ERROR: "Fax Receipt Error" + :vartype FAX_RECEIPT_ERROR: str + :cvar FAX_ON_DEMAND: "Fax on Demand" + :vartype FAX_ON_DEMAND: str + :cvar HANG_UP: "Hang Up" + :vartype HANG_UP: str + :cvar IP_PHONE_OFFLINE: "IP Phone Offline" + :vartype IP_PHONE_OFFLINE: str + :cvar IN_PROGRESS: "In Progress" + :vartype IN_PROGRESS: str + :cvar INTERNAL_ERROR: "Internal Error" + :vartype INTERNAL_ERROR: str + :cvar INTERNATIONAL_DISABLED: "International Disabled" + :vartype INTERNATIONAL_DISABLED: str + :cvar INTERNATIONAL_RESTRICTED: "International Restricted" + :vartype INTERNATIONAL_RESTRICTED: str + :cvar MISSED: "Missed" + :vartype MISSED: str + :cvar NO_ANSWER: "No Answer" + :vartype NO_ANSWER: str + :cvar NO_CALLING_CREDIT: "No Calling Credit" + :vartype NO_CALLING_CREDIT: str + :cvar NOT_ALLOWED: "Not Allowed" + :vartype NOT_ALLOWED: str + :cvar PARTIAL_RECEIVE: "Partial Receive" + :vartype PARTIAL_RECEIVE: str + :cvar PHONE_LOGIN: "Phone Login" + :vartype PHONE_LOGIN: str + :cvar RECEIVE_ERROR: "Receive Error" + :vartype RECEIVE_ERROR: str + :cvar RECEIVED: "Received" + :vartype RECEIVED: str + :cvar REJECTED: "Rejected" + :vartype REJECTED: str + :cvar REPLY: "Reply" + :vartype REPLY: str + :cvar RESTRICTED_NUMBER: "Restricted Number" + :vartype RESTRICTED_NUMBER: str + :cvar SEND_ERROR: "Send Error" + :vartype SEND_ERROR: str + :cvar SENT: "Sent" + :vartype SENT: str + :cvar SENT_TO_VOICEMAIL: "Sent to Voicemail" + :vartype SENT_TO_VOICEMAIL: str + :cvar STOPPED: "Stopped" + :vartype STOPPED: str + :cvar SUSPENDED_ACCOUNT: "Suspended account" + :vartype SUSPENDED_ACCOUNT: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar WRONG_NUMBER: "Wrong Number" + :vartype WRONG_NUMBER: str + """ + + _911 = "911" + _933 = "933" + ABANDONED = "Abandoned" + ACCEPTED = "Accepted" + ANSWERED_NOT_ACCEPTED = "Answered Not Accepted" + BLOCKED = "Blocked" + BUSY = "Busy" + CALL_FAILED = "Call Failed" + CALL_FAILURE = "Call Failure" + CALL_CONNECTED = "Call connected" + CARRIER_IS_NOT_ACTIVE = "Carrier is not active" + DECLINED = "Declined" + EDGE_TRUNK_MISCONFIGURED = "EDGE trunk misconfigured" + FAX_NOT_SENT = "Fax Not Sent" + FAX_PARTIALLY_SENT = "Fax Partially Sent" + FAX_POOR_LINE = "Fax Poor Line" + FAX_RECEIPT_ERROR = "Fax Receipt Error" + FAX_ON_DEMAND = "Fax on Demand" + HANG_UP = "Hang Up" + IP_PHONE_OFFLINE = "IP Phone Offline" + IN_PROGRESS = "In Progress" + INTERNAL_ERROR = "Internal Error" + INTERNATIONAL_DISABLED = "International Disabled" + INTERNATIONAL_RESTRICTED = "International Restricted" + MISSED = "Missed" + NO_ANSWER = "No Answer" + NO_CALLING_CREDIT = "No Calling Credit" + NOT_ALLOWED = "Not Allowed" + PARTIAL_RECEIVE = "Partial Receive" + PHONE_LOGIN = "Phone Login" + RECEIVE_ERROR = "Receive Error" + RECEIVED = "Received" + REJECTED = "Rejected" + REPLY = "Reply" + RESTRICTED_NUMBER = "Restricted Number" + SEND_ERROR = "Send Error" + SENT = "Sent" + SENT_TO_VOICEMAIL = "Sent to Voicemail" + STOPPED = "Stopped" + SUSPENDED_ACCOUNT = "Suspended account" + UNKNOWN = "Unknown" + VOICEMAIL = "Voicemail" + WRONG_NUMBER = "Wrong Number" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallResultEnum._member_map_.values())) diff --git a/src/ring_central/models/call_result_reason_enum.py b/src/ring_central/models/call_result_reason_enum.py new file mode 100644 index 00000000..8fce4381 --- /dev/null +++ b/src/ring_central/models/call_result_reason_enum.py @@ -0,0 +1,135 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallResultReasonEnum(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar BAD_NUMBER: "Bad Number" + :vartype BAD_NUMBER: str + :cvar CALL_LOOP: "Call Loop" + :vartype CALL_LOOP: str + :cvar CALLS_NOT_ACCEPTED: "Calls Not Accepted" + :vartype CALLS_NOT_ACCEPTED: str + :cvar CARRIER_IS_NOT_ACTIVE: "Carrier is not active" + :vartype CARRIER_IS_NOT_ACTIVE: str + :cvar CONNECTED: "Connected" + :vartype CONNECTED: str + :cvar CUSTOMER_611_RESTRICTED: "Customer 611 Restricted" + :vartype CUSTOMER_611_RESTRICTED: str + :cvar EDGE_TRUNK_MISCONFIGURED: "EDGE trunk misconfigured" + :vartype EDGE_TRUNK_MISCONFIGURED: str + :cvar EMERGENCY_ADDRESS_NOT_DEFINED: "Emergency Address not defined" + :vartype EMERGENCY_ADDRESS_NOT_DEFINED: str + :cvar FAILED_TRY_AGAIN: "Failed Try Again" + :vartype FAILED_TRY_AGAIN: str + :cvar FAX_NOT_RECEIVED: "Fax Not Received" + :vartype FAX_NOT_RECEIVED: str + :cvar FAX_NOT_SENT: "Fax Not Sent" + :vartype FAX_NOT_SENT: str + :cvar FAX_PARTIALLY_SENT: "Fax Partially Sent" + :vartype FAX_PARTIALLY_SENT: str + :cvar FAX_POOR_LINE: "Fax Poor Line" + :vartype FAX_POOR_LINE: str + :cvar FAX_PREPARE_ERROR: "Fax Prepare Error" + :vartype FAX_PREPARE_ERROR: str + :cvar FAX_SAVE_ERROR: "Fax Save Error" + :vartype FAX_SAVE_ERROR: str + :cvar FAX_SEND_ERROR: "Fax Send Error" + :vartype FAX_SEND_ERROR: str + :cvar HANG_UP: "Hang Up" + :vartype HANG_UP: str + :cvar INFO_411_RESTRICTED: "Info 411 Restricted" + :vartype INFO_411_RESTRICTED: str + :cvar INTERNAL_CALL_ERROR: "Internal Call Error" + :vartype INTERNAL_CALL_ERROR: str + :cvar INTERNAL_ERROR: "Internal Error" + :vartype INTERNAL_ERROR: str + :cvar INTERNATIONAL_DISABLED: "International Disabled" + :vartype INTERNATIONAL_DISABLED: str + :cvar INTERNATIONAL_RESTRICTED: "International Restricted" + :vartype INTERNATIONAL_RESTRICTED: str + :cvar LINE_BUSY: "Line Busy" + :vartype LINE_BUSY: str + :cvar MAX_CALL_LIMIT: "Max Call Limit" + :vartype MAX_CALL_LIMIT: str + :cvar NO_ANSWER: "No Answer" + :vartype NO_ANSWER: str + :cvar NO_CREDIT: "No Credit" + :vartype NO_CREDIT: str + :cvar NO_DIGITAL_LINE: "No Digital Line" + :vartype NO_DIGITAL_LINE: str + :cvar NOT_ANSWERED: "Not Answered" + :vartype NOT_ANSWERED: str + :cvar NUMBER_BLOCKED: "Number Blocked" + :vartype NUMBER_BLOCKED: str + :cvar NUMBER_DISABLED: "Number Disabled" + :vartype NUMBER_DISABLED: str + :cvar NUMBER_NOT_ALLOWED: "Number Not Allowed" + :vartype NUMBER_NOT_ALLOWED: str + :cvar RECEIVE_ERROR: "Receive Error" + :vartype RECEIVE_ERROR: str + :cvar RESOURCE_ERROR: "Resource Error" + :vartype RESOURCE_ERROR: str + :cvar RESTRICTED_NUMBER: "Restricted Number" + :vartype RESTRICTED_NUMBER: str + :cvar STOPPED: "Stopped" + :vartype STOPPED: str + :cvar TOO_MANY_CALLS: "Too Many Calls" + :vartype TOO_MANY_CALLS: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar WRONG_NUMBER: "Wrong Number" + :vartype WRONG_NUMBER: str + """ + + ACCEPTED = "Accepted" + BAD_NUMBER = "Bad Number" + CALL_LOOP = "Call Loop" + CALLS_NOT_ACCEPTED = "Calls Not Accepted" + CARRIER_IS_NOT_ACTIVE = "Carrier is not active" + CONNECTED = "Connected" + CUSTOMER_611_RESTRICTED = "Customer 611 Restricted" + EDGE_TRUNK_MISCONFIGURED = "EDGE trunk misconfigured" + EMERGENCY_ADDRESS_NOT_DEFINED = "Emergency Address not defined" + FAILED_TRY_AGAIN = "Failed Try Again" + FAX_NOT_RECEIVED = "Fax Not Received" + FAX_NOT_SENT = "Fax Not Sent" + FAX_PARTIALLY_SENT = "Fax Partially Sent" + FAX_POOR_LINE = "Fax Poor Line" + FAX_PREPARE_ERROR = "Fax Prepare Error" + FAX_SAVE_ERROR = "Fax Save Error" + FAX_SEND_ERROR = "Fax Send Error" + HANG_UP = "Hang Up" + INFO_411_RESTRICTED = "Info 411 Restricted" + INTERNAL_CALL_ERROR = "Internal Call Error" + INTERNAL_ERROR = "Internal Error" + INTERNATIONAL_DISABLED = "International Disabled" + INTERNATIONAL_RESTRICTED = "International Restricted" + LINE_BUSY = "Line Busy" + MAX_CALL_LIMIT = "Max Call Limit" + NO_ANSWER = "No Answer" + NO_CREDIT = "No Credit" + NO_DIGITAL_LINE = "No Digital Line" + NOT_ANSWERED = "Not Answered" + NUMBER_BLOCKED = "Number Blocked" + NUMBER_DISABLED = "Number Disabled" + NUMBER_NOT_ALLOWED = "Number Not Allowed" + RECEIVE_ERROR = "Receive Error" + RESOURCE_ERROR = "Resource Error" + RESTRICTED_NUMBER = "Restricted Number" + STOPPED = "Stopped" + TOO_MANY_CALLS = "Too Many Calls" + UNKNOWN = "Unknown" + WRONG_NUMBER = "Wrong Number" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallResultReasonEnum._member_map_.values())) diff --git a/src/ring_central/models/call_segment_filter.py b/src/ring_central/models/call_segment_filter.py new file mode 100644 index 00000000..bb483445 --- /dev/null +++ b/src/ring_central/models/call_segment_filter.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_segment_options import CallSegmentOptions +from .call_segment_length_filter import CallSegmentLengthFilter + + +@JsonMap({}) +class CallSegmentFilter(BaseModel): + """CallSegmentFilter + + :param segment: Call segment for filtering + :type segment: CallSegmentOptions + :param length: Duration bounds for the segment, defaults to None + :type length: CallSegmentLengthFilter, optional + """ + + def __init__( + self, segment: CallSegmentOptions, length: CallSegmentLengthFilter = None + ): + self.segment = self._enum_matching( + segment, CallSegmentOptions.list(), "segment" + ) + if length is not None: + self.length = self._define_object(length, CallSegmentLengthFilter) diff --git a/src/ring_central/models/call_segment_length_filter.py b/src/ring_central/models/call_segment_length_filter.py new file mode 100644 index 00000000..e6fc0c2a --- /dev/null +++ b/src/ring_central/models/call_segment_length_filter.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"min_seconds": "minSeconds", "max_seconds": "maxSeconds"}) +class CallSegmentLengthFilter(BaseModel): + """Duration bounds for the segment + + :param min_seconds: Minimum duration of segment in seconds, defaults to None + :type min_seconds: int, optional + :param max_seconds: Maximum duration of segment in seconds, defaults to None + :type max_seconds: int, optional + """ + + def __init__(self, min_seconds: int = None, max_seconds: int = None): + if min_seconds is not None: + self.min_seconds = min_seconds + if max_seconds is not None: + self.max_seconds = max_seconds diff --git a/src/ring_central/models/call_segment_options.py b/src/ring_central/models/call_segment_options.py new file mode 100644 index 00000000..f9520b75 --- /dev/null +++ b/src/ring_central/models/call_segment_options.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallSegmentOptions(Enum): + """An enumeration representing different categories. + + :cvar RINGING: "Ringing" + :vartype RINGING: str + :cvar LIVETALK: "LiveTalk" + :vartype LIVETALK: str + :cvar HOLD: "Hold" + :vartype HOLD: str + :cvar PARK: "Park" + :vartype PARK: str + :cvar TRANSFER: "Transfer" + :vartype TRANSFER: str + :cvar IVRPROMPT: "IvrPrompt" + :vartype IVRPROMPT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar VMGREETING: "VmGreeting" + :vartype VMGREETING: str + :cvar SETUP: "Setup" + :vartype SETUP: str + """ + + RINGING = "Ringing" + LIVETALK = "LiveTalk" + HOLD = "Hold" + PARK = "Park" + TRANSFER = "Transfer" + IVRPROMPT = "IvrPrompt" + VOICEMAIL = "Voicemail" + VMGREETING = "VmGreeting" + SETUP = "Setup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallSegmentOptions._member_map_.values())) diff --git a/src/ring_central/models/call_session.py b/src/ring_central/models/call_session.py new file mode 100644 index 00000000..f48fd5bc --- /dev/null +++ b/src/ring_central/models/call_session.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_session_object import CallSessionObject + + +@JsonMap({}) +class CallSession(BaseModel): + """CallSession + + :param session: Call session information, defaults to None + :type session: CallSessionObject, optional + """ + + def __init__(self, session: CallSessionObject = None): + if session is not None: + self.session = self._define_object(session, CallSessionObject) diff --git a/src/ring_central/models/call_session_object.py b/src/ring_central/models/call_session_object.py new file mode 100644 index 00000000..f426a61c --- /dev/null +++ b/src/ring_central/models/call_session_object.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .origin_info import OriginInfo +from .call_party import CallParty + + +@JsonMap( + {"id_": "id", "voice_call_token": "voiceCallToken", "creation_time": "creationTime"} +) +class CallSessionObject(BaseModel): + """Call session information + + :param id_: Internal identifier of a call session, defaults to None + :type id_: str, optional + :param origin: Session origin details, defaults to None + :type origin: OriginInfo, optional + :param voice_call_token: For calls of 'Conference' type only, defaults to None + :type voice_call_token: str, optional + :param parties: parties, defaults to None + :type parties: List[CallParty], optional + :param creation_time: Date and time of the latest session update represented in Unix time format, defaults to None + :type creation_time: str, optional + """ + + def __init__( + self, + id_: str = None, + origin: OriginInfo = None, + voice_call_token: str = None, + parties: List[CallParty] = None, + creation_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + if origin is not None: + self.origin = self._define_object(origin, OriginInfo) + if voice_call_token is not None: + self.voice_call_token = voice_call_token + if parties is not None: + self.parties = self._define_list(parties, CallParty) + if creation_time is not None: + self.creation_time = creation_time diff --git a/src/ring_central/models/call_status_info.py b/src/ring_central/models/call_status_info.py new file mode 100644 index 00000000..bd2fe537 --- /dev/null +++ b/src/ring_central/models/call_status_info.py @@ -0,0 +1,190 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .peer_info import PeerInfo + + +class CallStatusInfoCode(Enum): + """An enumeration representing different categories. + + :cvar SETUP: "Setup" + :vartype SETUP: str + :cvar PROCEEDING: "Proceeding" + :vartype PROCEEDING: str + :cvar ANSWERED: "Answered" + :vartype ANSWERED: str + :cvar DISCONNECTED: "Disconnected" + :vartype DISCONNECTED: str + :cvar GONE: "Gone" + :vartype GONE: str + :cvar PARKED: "Parked" + :vartype PARKED: str + :cvar HOLD: "Hold" + :vartype HOLD: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar FAXRECEIVE: "FaxReceive" + :vartype FAXRECEIVE: str + :cvar TDS: "Tds" + :vartype TDS: str + :cvar VOICEMAILSCREENING: "VoiceMailScreening" + :vartype VOICEMAILSCREENING: str + """ + + SETUP = "Setup" + PROCEEDING = "Proceeding" + ANSWERED = "Answered" + DISCONNECTED = "Disconnected" + GONE = "Gone" + PARKED = "Parked" + HOLD = "Hold" + VOICEMAIL = "VoiceMail" + FAXRECEIVE = "FaxReceive" + TDS = "Tds" + VOICEMAILSCREENING = "VoiceMailScreening" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallStatusInfoCode._member_map_.values())) + + +class CallStatusInfoReason(Enum): + """An enumeration representing different categories. + + :cvar PICKUP: "Pickup" + :vartype PICKUP: str + :cvar SUPERVISING: "Supervising" + :vartype SUPERVISING: str + :cvar TAKEOVER: "TakeOver" + :vartype TAKEOVER: str + :cvar TIMEOUT: "Timeout" + :vartype TIMEOUT: str + :cvar BLINDTRANSFER: "BlindTransfer" + :vartype BLINDTRANSFER: str + :cvar RCCTRANSFER: "RccTransfer" + :vartype RCCTRANSFER: str + :cvar ATTENDEDTRANSFER: "AttendedTransfer" + :vartype ATTENDEDTRANSFER: str + :cvar CALLERINPUTREDIRECT: "CallerInputRedirect" + :vartype CALLERINPUTREDIRECT: str + :cvar CALLFLIP: "CallFlip" + :vartype CALLFLIP: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar DTMFTRANSFER: "DtmfTransfer" + :vartype DTMFTRANSFER: str + :cvar AGENTANSWERED: "AgentAnswered" + :vartype AGENTANSWERED: str + :cvar AGENTDROPPED: "AgentDropped" + :vartype AGENTDROPPED: str + :cvar REJECTED: "Rejected" + :vartype REJECTED: str + :cvar CANCELLED: "Cancelled" + :vartype CANCELLED: str + :cvar INTERNALERROR: "InternalError" + :vartype INTERNALERROR: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + :cvar TARGETBUSY: "TargetBusy" + :vartype TARGETBUSY: str + :cvar INVALIDNUMBER: "InvalidNumber" + :vartype INVALIDNUMBER: str + :cvar INTERNATIONALDISABLED: "InternationalDisabled" + :vartype INTERNATIONALDISABLED: str + :cvar DESTINATIONBLOCKED: "DestinationBlocked" + :vartype DESTINATIONBLOCKED: str + :cvar NOTENOUGHFUNDS: "NotEnoughFunds" + :vartype NOTENOUGHFUNDS: str + :cvar NOSUCHUSER: "NoSuchUser" + :vartype NOSUCHUSER: str + :cvar CALLPARK: "CallPark" + :vartype CALLPARK: str + :cvar CALLREDIRECTED: "CallRedirected" + :vartype CALLREDIRECTED: str + :cvar CALLREPLIED: "CallReplied" + :vartype CALLREPLIED: str + :cvar CALLSWITCH: "CallSwitch" + :vartype CALLSWITCH: str + :cvar CALLFINISHED: "CallFinished" + :vartype CALLFINISHED: str + :cvar CALLDROPPED: "CallDropped" + :vartype CALLDROPPED: str + """ + + PICKUP = "Pickup" + SUPERVISING = "Supervising" + TAKEOVER = "TakeOver" + TIMEOUT = "Timeout" + BLINDTRANSFER = "BlindTransfer" + RCCTRANSFER = "RccTransfer" + ATTENDEDTRANSFER = "AttendedTransfer" + CALLERINPUTREDIRECT = "CallerInputRedirect" + CALLFLIP = "CallFlip" + PARKLOCATION = "ParkLocation" + DTMFTRANSFER = "DtmfTransfer" + AGENTANSWERED = "AgentAnswered" + AGENTDROPPED = "AgentDropped" + REJECTED = "Rejected" + CANCELLED = "Cancelled" + INTERNALERROR = "InternalError" + NOANSWER = "NoAnswer" + TARGETBUSY = "TargetBusy" + INVALIDNUMBER = "InvalidNumber" + INTERNATIONALDISABLED = "InternationalDisabled" + DESTINATIONBLOCKED = "DestinationBlocked" + NOTENOUGHFUNDS = "NotEnoughFunds" + NOSUCHUSER = "NoSuchUser" + CALLPARK = "CallPark" + CALLREDIRECTED = "CallRedirected" + CALLREPLIED = "CallReplied" + CALLSWITCH = "CallSwitch" + CALLFINISHED = "CallFinished" + CALLDROPPED = "CallDropped" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallStatusInfoReason._member_map_.values())) + + +@JsonMap({"peer_id": "peerId"}) +class CallStatusInfo(BaseModel): + """Status data of a call session + + :param code: Status code of a call, defaults to None + :type code: CallStatusInfoCode, optional + :param peer_id: Peer session/party details. Valid in 'Gone' state of a call, defaults to None + :type peer_id: PeerInfo, optional + :param reason: Reason for call termination. For 'Disconnected' code only, defaults to None + :type reason: CallStatusInfoReason, optional + :param description: Optional message, defaults to None + :type description: str, optional + """ + + def __init__( + self, + code: CallStatusInfoCode = None, + peer_id: PeerInfo = None, + reason: CallStatusInfoReason = None, + description: str = None, + ): + if code is not None: + self.code = self._enum_matching(code, CallStatusInfoCode.list(), "code") + if peer_id is not None: + self.peer_id = self._define_object(peer_id, PeerInfo) + if reason is not None: + self.reason = self._enum_matching( + reason, CallStatusInfoReason.list(), "reason" + ) + if description is not None: + self.description = description diff --git a/src/ring_central/models/call_transport_enum.py b/src/ring_central/models/call_transport_enum.py new file mode 100644 index 00000000..82a81706 --- /dev/null +++ b/src/ring_central/models/call_transport_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallTransportEnum(Enum): + """An enumeration representing different categories. + + :cvar PSTN: "PSTN" + :vartype PSTN: str + :cvar VOIP: "VoIP" + :vartype VOIP: str + """ + + PSTN = "PSTN" + VOIP = "VoIP" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallTransportEnum._member_map_.values())) diff --git a/src/ring_central/models/call_type.py b/src/ring_central/models/call_type.py new file mode 100644 index 00000000..b6319bec --- /dev/null +++ b/src/ring_central/models/call_type.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallType(Enum): + """An enumeration representing different categories. + + :cvar DIRECT: "Direct" + :vartype DIRECT: str + :cvar FROMQUEUE: "FromQueue" + :vartype FROMQUEUE: str + :cvar PARKRETRIEVAL: "ParkRetrieval" + :vartype PARKRETRIEVAL: str + :cvar TRANSFERRED: "Transferred" + :vartype TRANSFERRED: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + :cvar OVERFLOW: "Overflow" + :vartype OVERFLOW: str + """ + + DIRECT = "Direct" + FROMQUEUE = "FromQueue" + PARKRETRIEVAL = "ParkRetrieval" + TRANSFERRED = "Transferred" + OUTBOUND = "Outbound" + OVERFLOW = "Overflow" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallType._member_map_.values())) diff --git a/src/ring_central/models/call_type_enum.py b/src/ring_central/models/call_type_enum.py new file mode 100644 index 00000000..cd123c43 --- /dev/null +++ b/src/ring_central/models/call_type_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CallTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar VOICE: "Voice" + :vartype VOICE: str + :cvar FAX: "Fax" + :vartype FAX: str + """ + + VOICE = "Voice" + FAX = "Fax" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/called_number_info.py b/src/ring_central/models/called_number_info.py new file mode 100644 index 00000000..3ef9c13a --- /dev/null +++ b/src/ring_central/models/called_number_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class CalledNumberInfo(BaseModel): + """CalledNumberInfo + + :param phone_number: Called phone number, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, phone_number: str = None): + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/caller_blocking_settings.py b/src/ring_central/models/caller_blocking_settings.py new file mode 100644 index 00000000..edcfccce --- /dev/null +++ b/src/ring_central/models/caller_blocking_settings.py @@ -0,0 +1,122 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .blocked_caller_greeting_info import BlockedCallerGreetingInfo + + +class CallerBlockingSettingsMode(Enum): + """An enumeration representing different categories. + + :cvar SPECIFIC: "Specific" + :vartype SPECIFIC: str + :cvar ALL: "All" + :vartype ALL: str + """ + + SPECIFIC = "Specific" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallerBlockingSettingsMode._member_map_.values()) + ) + + +class CallerBlockingSettingsNoCallerId(Enum): + """An enumeration representing different categories. + + :cvar BLOCKCALLSANDFAXES: "BlockCallsAndFaxes" + :vartype BLOCKCALLSANDFAXES: str + :cvar BLOCKFAXES: "BlockFaxes" + :vartype BLOCKFAXES: str + :cvar ALLOW: "Allow" + :vartype ALLOW: str + """ + + BLOCKCALLSANDFAXES = "BlockCallsAndFaxes" + BLOCKFAXES = "BlockFaxes" + ALLOW = "Allow" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallerBlockingSettingsNoCallerId._member_map_.values(), + ) + ) + + +class CallerBlockingSettingsPayPhones(Enum): + """An enumeration representing different categories. + + :cvar BLOCK: "Block" + :vartype BLOCK: str + :cvar ALLOW: "Allow" + :vartype ALLOW: str + """ + + BLOCK = "Block" + ALLOW = "Allow" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, CallerBlockingSettingsPayPhones._member_map_.values() + ) + ) + + +@JsonMap({"no_caller_id": "noCallerId", "pay_phones": "payPhones"}) +class CallerBlockingSettings(BaseModel): + """Returns the lists of blocked and allowed phone numbers + + :param mode: Call blocking options: either specific or all calls and faxes, defaults to None + :type mode: CallerBlockingSettingsMode, optional + :param no_caller_id: Determines how to handle calls with no caller ID in `Specific` mode, defaults to None + :type no_caller_id: CallerBlockingSettingsNoCallerId, optional + :param pay_phones: Blocking settings for pay phones, defaults to None + :type pay_phones: CallerBlockingSettingsPayPhones, optional + :param greetings: List of greetings played for blocked callers, defaults to None + :type greetings: List[BlockedCallerGreetingInfo], optional + """ + + def __init__( + self, + mode: CallerBlockingSettingsMode = None, + no_caller_id: CallerBlockingSettingsNoCallerId = None, + pay_phones: CallerBlockingSettingsPayPhones = None, + greetings: List[BlockedCallerGreetingInfo] = None, + ): + if mode is not None: + self.mode = self._enum_matching( + mode, CallerBlockingSettingsMode.list(), "mode" + ) + if no_caller_id is not None: + self.no_caller_id = self._enum_matching( + no_caller_id, CallerBlockingSettingsNoCallerId.list(), "no_caller_id" + ) + if pay_phones is not None: + self.pay_phones = self._enum_matching( + pay_phones, CallerBlockingSettingsPayPhones.list(), "pay_phones" + ) + if greetings is not None: + self.greetings = self._define_list(greetings, BlockedCallerGreetingInfo) diff --git a/src/ring_central/models/caller_blocking_settings_update.py b/src/ring_central/models/caller_blocking_settings_update.py new file mode 100644 index 00000000..f0165d02 --- /dev/null +++ b/src/ring_central/models/caller_blocking_settings_update.py @@ -0,0 +1,128 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .blocked_caller_greeting_info import BlockedCallerGreetingInfo + + +class CallerBlockingSettingsUpdateMode(Enum): + """An enumeration representing different categories. + + :cvar SPECIFIC: "Specific" + :vartype SPECIFIC: str + :cvar ALL: "All" + :vartype ALL: str + """ + + SPECIFIC = "Specific" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallerBlockingSettingsUpdateMode._member_map_.values(), + ) + ) + + +class CallerBlockingSettingsUpdateNoCallerId(Enum): + """An enumeration representing different categories. + + :cvar BLOCKCALLSANDFAXES: "BlockCallsAndFaxes" + :vartype BLOCKCALLSANDFAXES: str + :cvar BLOCKFAXES: "BlockFaxes" + :vartype BLOCKFAXES: str + :cvar ALLOW: "Allow" + :vartype ALLOW: str + """ + + BLOCKCALLSANDFAXES = "BlockCallsAndFaxes" + BLOCKFAXES = "BlockFaxes" + ALLOW = "Allow" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallerBlockingSettingsUpdateNoCallerId._member_map_.values(), + ) + ) + + +class CallerBlockingSettingsUpdatePayPhones(Enum): + """An enumeration representing different categories. + + :cvar BLOCK: "Block" + :vartype BLOCK: str + :cvar ALLOW: "Allow" + :vartype ALLOW: str + """ + + BLOCK = "Block" + ALLOW = "Allow" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CallerBlockingSettingsUpdatePayPhones._member_map_.values(), + ) + ) + + +@JsonMap({"no_caller_id": "noCallerId", "pay_phones": "payPhones"}) +class CallerBlockingSettingsUpdate(BaseModel): + """Returns the lists of blocked and allowed phone numbers + + :param mode: Call blocking options: either specific or all calls and faxes, defaults to None + :type mode: CallerBlockingSettingsUpdateMode, optional + :param no_caller_id: Determines how to handle calls with no caller ID in 'Specific' mode, defaults to None + :type no_caller_id: CallerBlockingSettingsUpdateNoCallerId, optional + :param pay_phones: Blocking settings for pay phones, defaults to None + :type pay_phones: CallerBlockingSettingsUpdatePayPhones, optional + :param greetings: List of greetings played for blocked callers, defaults to None + :type greetings: List[BlockedCallerGreetingInfo], optional + """ + + def __init__( + self, + mode: CallerBlockingSettingsUpdateMode = None, + no_caller_id: CallerBlockingSettingsUpdateNoCallerId = None, + pay_phones: CallerBlockingSettingsUpdatePayPhones = None, + greetings: List[BlockedCallerGreetingInfo] = None, + ): + if mode is not None: + self.mode = self._enum_matching( + mode, CallerBlockingSettingsUpdateMode.list(), "mode" + ) + if no_caller_id is not None: + self.no_caller_id = self._enum_matching( + no_caller_id, + CallerBlockingSettingsUpdateNoCallerId.list(), + "no_caller_id", + ) + if pay_phones is not None: + self.pay_phones = self._enum_matching( + pay_phones, CallerBlockingSettingsUpdatePayPhones.list(), "pay_phones" + ) + if greetings is not None: + self.greetings = self._define_list(greetings, BlockedCallerGreetingInfo) diff --git a/src/ring_central/models/caller_id_by_device.py b/src/ring_central/models/caller_id_by_device.py new file mode 100644 index 00000000..cd9953db --- /dev/null +++ b/src/ring_central/models/caller_id_by_device.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_device_info import CallerIdDeviceInfo +from .caller_id_by_device_info import CallerIdByDeviceInfo + + +@JsonMap({"caller_id": "callerId"}) +class CallerIdByDevice(BaseModel): + """Caller ID settings by device + + :param device: device, defaults to None + :type device: CallerIdDeviceInfo, optional + :param caller_id: caller_id, defaults to None + :type caller_id: CallerIdByDeviceInfo, optional + """ + + def __init__( + self, device: CallerIdDeviceInfo = None, caller_id: CallerIdByDeviceInfo = None + ): + if device is not None: + self.device = self._define_object(device, CallerIdDeviceInfo) + if caller_id is not None: + self.caller_id = self._define_object(caller_id, CallerIdByDeviceInfo) diff --git a/src/ring_central/models/caller_id_by_device_info.py b/src/ring_central/models/caller_id_by_device_info.py new file mode 100644 index 00000000..2fe17976 --- /dev/null +++ b/src/ring_central/models/caller_id_by_device_info.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_phone_info import CallerIdPhoneInfo + + +@JsonMap({"type_": "type", "phone_info": "phoneInfo"}) +class CallerIdByDeviceInfo(BaseModel): + """CallerIdByDeviceInfo + + :param type_: If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] , defaults to None + :type type_: str, optional + :param phone_info: phone_info, defaults to None + :type phone_info: CallerIdPhoneInfo, optional + """ + + def __init__(self, type_: str = None, phone_info: CallerIdPhoneInfo = None): + if type_ is not None: + self.type_ = type_ + if phone_info is not None: + self.phone_info = self._define_object(phone_info, CallerIdPhoneInfo) diff --git a/src/ring_central/models/caller_id_by_device_info_request.py b/src/ring_central/models/caller_id_by_device_info_request.py new file mode 100644 index 00000000..57ac663a --- /dev/null +++ b/src/ring_central/models/caller_id_by_device_info_request.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_phone_info_request import CallerIdPhoneInfoRequest + + +@JsonMap({"type_": "type", "phone_info": "phoneInfo"}) +class CallerIdByDeviceInfoRequest(BaseModel): + """CallerIdByDeviceInfoRequest + + :param type_: If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] , defaults to None + :type type_: str, optional + :param phone_info: phone_info, defaults to None + :type phone_info: CallerIdPhoneInfoRequest, optional + """ + + def __init__(self, type_: str = None, phone_info: CallerIdPhoneInfoRequest = None): + if type_ is not None: + self.type_ = type_ + if phone_info is not None: + self.phone_info = self._define_object(phone_info, CallerIdPhoneInfoRequest) diff --git a/src/ring_central/models/caller_id_by_device_request.py b/src/ring_central/models/caller_id_by_device_request.py new file mode 100644 index 00000000..ef7e9e9d --- /dev/null +++ b/src/ring_central/models/caller_id_by_device_request.py @@ -0,0 +1,28 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_device_info_request import CallerIdDeviceInfoRequest +from .caller_id_by_device_info_request import CallerIdByDeviceInfoRequest + + +@JsonMap({"caller_id": "callerId"}) +class CallerIdByDeviceRequest(BaseModel): + """Caller ID settings by device + + :param device: device, defaults to None + :type device: CallerIdDeviceInfoRequest, optional + :param caller_id: caller_id, defaults to None + :type caller_id: CallerIdByDeviceInfoRequest, optional + """ + + def __init__( + self, + device: CallerIdDeviceInfoRequest = None, + caller_id: CallerIdByDeviceInfoRequest = None, + ): + if device is not None: + self.device = self._define_object(device, CallerIdDeviceInfoRequest) + if caller_id is not None: + self.caller_id = self._define_object(caller_id, CallerIdByDeviceInfoRequest) diff --git a/src/ring_central/models/caller_id_by_feature.py b/src/ring_central/models/caller_id_by_feature.py new file mode 100644 index 00000000..e836c565 --- /dev/null +++ b/src/ring_central/models/caller_id_by_feature.py @@ -0,0 +1,74 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_by_feature_info import CallerIdByFeatureInfo + + +class CallerIdByFeatureFeature(Enum): + """An enumeration representing different categories. + + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar CALLFLIP: "CallFlip" + :vartype CALLFLIP: str + :cvar FAXNUMBER: "FaxNumber" + :vartype FAXNUMBER: str + :cvar ADDITIONALSOFTPHONE: "AdditionalSoftphone" + :vartype ADDITIONALSOFTPHONE: str + :cvar ALTERNATE: "Alternate" + :vartype ALTERNATE: str + :cvar COMMONPHONE: "CommonPhone" + :vartype COMMONPHONE: str + :cvar MOBILEAPP: "MobileApp" + :vartype MOBILEAPP: str + :cvar DELEGATED: "Delegated" + :vartype DELEGATED: str + """ + + RINGOUT = "RingOut" + RINGME = "RingMe" + CALLFLIP = "CallFlip" + FAXNUMBER = "FaxNumber" + ADDITIONALSOFTPHONE = "AdditionalSoftphone" + ALTERNATE = "Alternate" + COMMONPHONE = "CommonPhone" + MOBILEAPP = "MobileApp" + DELEGATED = "Delegated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CallerIdByFeatureFeature._member_map_.values()) + ) + + +@JsonMap({"caller_id": "callerId"}) +class CallerIdByFeature(BaseModel): + """Caller ID settings by feature + + :param feature: feature, defaults to None + :type feature: CallerIdByFeatureFeature, optional + :param caller_id: caller_id, defaults to None + :type caller_id: CallerIdByFeatureInfo, optional + """ + + def __init__( + self, + feature: CallerIdByFeatureFeature = None, + caller_id: CallerIdByFeatureInfo = None, + ): + if feature is not None: + self.feature = self._enum_matching( + feature, CallerIdByFeatureFeature.list(), "feature" + ) + if caller_id is not None: + self.caller_id = self._define_object(caller_id, CallerIdByFeatureInfo) diff --git a/src/ring_central/models/caller_id_by_feature_info.py b/src/ring_central/models/caller_id_by_feature_info.py new file mode 100644 index 00000000..35865b51 --- /dev/null +++ b/src/ring_central/models/caller_id_by_feature_info.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_phone_info import CallerIdPhoneInfo + + +@JsonMap({"type_": "type", "phone_info": "phoneInfo"}) +class CallerIdByFeatureInfo(BaseModel): + """CallerIdByFeatureInfo + + :param type_: If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] , defaults to None + :type type_: str, optional + :param phone_info: phone_info, defaults to None + :type phone_info: CallerIdPhoneInfo, optional + """ + + def __init__(self, type_: str = None, phone_info: CallerIdPhoneInfo = None): + if type_ is not None: + self.type_ = type_ + if phone_info is not None: + self.phone_info = self._define_object(phone_info, CallerIdPhoneInfo) diff --git a/src/ring_central/models/caller_id_by_feature_info_request.py b/src/ring_central/models/caller_id_by_feature_info_request.py new file mode 100644 index 00000000..91b8c63e --- /dev/null +++ b/src/ring_central/models/caller_id_by_feature_info_request.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_phone_info_request import CallerIdPhoneInfoRequest + + +@JsonMap({"type_": "type", "phone_info": "phoneInfo"}) +class CallerIdByFeatureInfoRequest(BaseModel): + """CallerIdByFeatureInfoRequest + + :param type_: If 'PhoneNumber' value is specified, then a certain phone number is shown as a caller ID when using this telephony feature. If 'Blocked' value is specified, then a caller ID is hidden. The value 'CurrentLocation' can be specified for 'RingOut' feature only. The default is 'PhoneNumber' = ['PhoneNumber', 'Blocked', 'CurrentLocation'] , defaults to None + :type type_: str, optional + :param phone_info: phone_info, defaults to None + :type phone_info: CallerIdPhoneInfoRequest, optional + """ + + def __init__(self, type_: str = None, phone_info: CallerIdPhoneInfoRequest = None): + if type_ is not None: + self.type_ = type_ + if phone_info is not None: + self.phone_info = self._define_object(phone_info, CallerIdPhoneInfoRequest) diff --git a/src/ring_central/models/caller_id_by_feature_request.py b/src/ring_central/models/caller_id_by_feature_request.py new file mode 100644 index 00000000..00d03d02 --- /dev/null +++ b/src/ring_central/models/caller_id_by_feature_request.py @@ -0,0 +1,78 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_by_feature_info_request import CallerIdByFeatureInfoRequest + + +class CallerIdByFeatureRequestFeature(Enum): + """An enumeration representing different categories. + + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar CALLFLIP: "CallFlip" + :vartype CALLFLIP: str + :cvar FAXNUMBER: "FaxNumber" + :vartype FAXNUMBER: str + :cvar ADDITIONALSOFTPHONE: "AdditionalSoftphone" + :vartype ADDITIONALSOFTPHONE: str + :cvar ALTERNATE: "Alternate" + :vartype ALTERNATE: str + :cvar COMMONPHONE: "CommonPhone" + :vartype COMMONPHONE: str + :cvar MOBILEAPP: "MobileApp" + :vartype MOBILEAPP: str + :cvar DELEGATED: "Delegated" + :vartype DELEGATED: str + """ + + RINGOUT = "RingOut" + RINGME = "RingMe" + CALLFLIP = "CallFlip" + FAXNUMBER = "FaxNumber" + ADDITIONALSOFTPHONE = "AdditionalSoftphone" + ALTERNATE = "Alternate" + COMMONPHONE = "CommonPhone" + MOBILEAPP = "MobileApp" + DELEGATED = "Delegated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, CallerIdByFeatureRequestFeature._member_map_.values() + ) + ) + + +@JsonMap({"caller_id": "callerId"}) +class CallerIdByFeatureRequest(BaseModel): + """Caller ID settings by feature + + :param feature: feature, defaults to None + :type feature: CallerIdByFeatureRequestFeature, optional + :param caller_id: caller_id, defaults to None + :type caller_id: CallerIdByFeatureInfoRequest, optional + """ + + def __init__( + self, + feature: CallerIdByFeatureRequestFeature = None, + caller_id: CallerIdByFeatureInfoRequest = None, + ): + if feature is not None: + self.feature = self._enum_matching( + feature, CallerIdByFeatureRequestFeature.list(), "feature" + ) + if caller_id is not None: + self.caller_id = self._define_object( + caller_id, CallerIdByFeatureInfoRequest + ) diff --git a/src/ring_central/models/caller_id_device_info.py b/src/ring_central/models/caller_id_device_info.py new file mode 100644 index 00000000..16b22eb6 --- /dev/null +++ b/src/ring_central/models/caller_id_device_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallerIdDeviceInfo(BaseModel): + """CallerIdDeviceInfo + + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + :param uri: Link to a device resource, defaults to None + :type uri: str, optional + :param name: Name of a device, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/caller_id_device_info_request.py b/src/ring_central/models/caller_id_device_info_request.py new file mode 100644 index 00000000..8c6e2878 --- /dev/null +++ b/src/ring_central/models/caller_id_device_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallerIdDeviceInfoRequest(BaseModel): + """CallerIdDeviceInfoRequest + + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/caller_id_phone_info.py b/src/ring_central/models/caller_id_phone_info.py new file mode 100644 index 00000000..a2609ca2 --- /dev/null +++ b/src/ring_central/models/caller_id_phone_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class CallerIdPhoneInfo(BaseModel): + """CallerIdPhoneInfo + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: str, optional + :param uri: Link to a phone number resource, defaults to None + :type uri: str, optional + :param phone_number: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, phone_number: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/caller_id_phone_info_request.py b/src/ring_central/models/caller_id_phone_info_request.py new file mode 100644 index 00000000..978f7950 --- /dev/null +++ b/src/ring_central/models/caller_id_phone_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CallerIdPhoneInfoRequest(BaseModel): + """CallerIdPhoneInfoRequest + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/callers_info.py b/src/ring_central/models/callers_info.py new file mode 100644 index 00000000..01403285 --- /dev/null +++ b/src/ring_central/models/callers_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"caller_id": "callerId"}) +class CallersInfo(BaseModel): + """CallersInfo + + :param caller_id: Phone number of a caller, defaults to None + :type caller_id: str, optional + :param name: Contact name of a caller, defaults to None + :type name: str, optional + """ + + def __init__(self, caller_id: str = None, name: str = None): + if caller_id is not None: + self.caller_id = caller_id + if name is not None: + self.name = name diff --git a/src/ring_central/models/callers_info_request.py b/src/ring_central/models/callers_info_request.py new file mode 100644 index 00000000..9ff8debb --- /dev/null +++ b/src/ring_central/models/callers_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"caller_id": "callerId"}) +class CallersInfoRequest(BaseModel): + """CallersInfoRequest + + :param caller_id: Phone number of a caller, defaults to None + :type caller_id: str, optional + :param name: Contact name of a caller, defaults to None + :type name: str, optional + """ + + def __init__(self, caller_id: str = None, name: str = None): + if caller_id is not None: + self.caller_id = caller_id + if name is not None: + self.name = name diff --git a/src/ring_central/models/calls_by_actions.py b/src/ring_central/models/calls_by_actions.py new file mode 100644 index 00000000..e8a2267e --- /dev/null +++ b/src/ring_central/models/calls_by_actions.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_actions_breakdown import CallsByActionsBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByActions(BaseModel): + """Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by actions + :type values: CallsByActionsBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByActionsBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByActionsBreakdown) diff --git a/src/ring_central/models/calls_by_actions_breakdown.py b/src/ring_central/models/calls_by_actions_breakdown.py new file mode 100644 index 00000000..d331b3a3 --- /dev/null +++ b/src/ring_central/models/calls_by_actions_breakdown.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "park_on": "parkOn", + "park_off": "parkOff", + "hold_on": "holdOn", + "hold_off": "holdOff", + "blind_transfer": "blindTransfer", + "warm_transfer": "warmTransfer", + "dtmf_transfer": "dtmfTransfer", + } +) +class CallsByActionsBreakdown(BaseModel): + """Result breakdown by actions + + :param park_on: Value for ParkOn action + :type park_on: float + :param park_off: Value for ParkOff action + :type park_off: float + :param hold_on: Value for HoldOn action + :type hold_on: float + :param hold_off: Value for HoldOff action + :type hold_off: float + :param blind_transfer: Value for BlindTransfer action + :type blind_transfer: float + :param warm_transfer: Value for WarmTransfer action + :type warm_transfer: float + :param dtmf_transfer: Value for DTMFTransfer action + :type dtmf_transfer: float + """ + + def __init__( + self, + park_on: float, + park_off: float, + hold_on: float, + hold_off: float, + blind_transfer: float, + warm_transfer: float, + dtmf_transfer: float, + ): + self.park_on = park_on + self.park_off = park_off + self.hold_on = hold_on + self.hold_off = hold_off + self.blind_transfer = blind_transfer + self.warm_transfer = warm_transfer + self.dtmf_transfer = dtmf_transfer diff --git a/src/ring_central/models/calls_by_company_hours.py b/src/ring_central/models/calls_by_company_hours.py new file mode 100644 index 00000000..9ed58372 --- /dev/null +++ b/src/ring_central/models/calls_by_company_hours.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_company_hours_breakdown import CallsByCompanyHoursBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByCompanyHours(BaseModel): + """Data for calls with breakdown by company hours (BusinessHours, AfterHours) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by company hours + :type values: CallsByCompanyHoursBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByCompanyHoursBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByCompanyHoursBreakdown) diff --git a/src/ring_central/models/calls_by_company_hours_breakdown.py b/src/ring_central/models/calls_by_company_hours_breakdown.py new file mode 100644 index 00000000..4adb0195 --- /dev/null +++ b/src/ring_central/models/calls_by_company_hours_breakdown.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"business_hours": "businessHours", "after_hours": "afterHours"}) +class CallsByCompanyHoursBreakdown(BaseModel): + """Result breakdown by company hours + + :param business_hours: Value for BusinessHours company hours + :type business_hours: float + :param after_hours: Value for AfterHours company hours + :type after_hours: float + """ + + def __init__(self, business_hours: float, after_hours: float): + self.business_hours = business_hours + self.after_hours = after_hours diff --git a/src/ring_central/models/calls_by_direction.py b/src/ring_central/models/calls_by_direction.py new file mode 100644 index 00000000..6a7a6325 --- /dev/null +++ b/src/ring_central/models/calls_by_direction.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_direction_breakdown import CallsByDirectionBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByDirection(BaseModel): + """Data for calls with breakdown by direction (Inbound, Outbound) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by direction + :type values: CallsByDirectionBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByDirectionBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByDirectionBreakdown) diff --git a/src/ring_central/models/calls_by_direction_breakdown.py b/src/ring_central/models/calls_by_direction_breakdown.py new file mode 100644 index 00000000..4b0233bf --- /dev/null +++ b/src/ring_central/models/calls_by_direction_breakdown.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CallsByDirectionBreakdown(BaseModel): + """Result breakdown by direction + + :param inbound: Value for Inbound direction + :type inbound: float + :param outbound: Value for Outbound direction + :type outbound: float + """ + + def __init__(self, inbound: float, outbound: float): + self.inbound = inbound + self.outbound = outbound diff --git a/src/ring_central/models/calls_by_origin.py b/src/ring_central/models/calls_by_origin.py new file mode 100644 index 00000000..f9aa81ce --- /dev/null +++ b/src/ring_central/models/calls_by_origin.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_origin_breakdown import CallsByOriginBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByOrigin(BaseModel): + """Data for calls with breakdown by origin (Internal, External) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by origin + :type values: CallsByOriginBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByOriginBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByOriginBreakdown) diff --git a/src/ring_central/models/calls_by_origin_breakdown.py b/src/ring_central/models/calls_by_origin_breakdown.py new file mode 100644 index 00000000..846cf4e0 --- /dev/null +++ b/src/ring_central/models/calls_by_origin_breakdown.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CallsByOriginBreakdown(BaseModel): + """Result breakdown by origin + + :param internal: Value for Internal origin + :type internal: float + :param external: Value for External origin + :type external: float + """ + + def __init__(self, internal: float, external: float): + self.internal = internal + self.external = external diff --git a/src/ring_central/models/calls_by_queue_sla.py b/src/ring_central/models/calls_by_queue_sla.py new file mode 100644 index 00000000..9f4a4e35 --- /dev/null +++ b/src/ring_central/models/calls_by_queue_sla.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_queue_sla_breakdown import CallsByQueueSlaBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByQueueSla(BaseModel): + """Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by queue SLA + :type values: CallsByQueueSlaBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByQueueSlaBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByQueueSlaBreakdown) diff --git a/src/ring_central/models/calls_by_queue_sla_breakdown.py b/src/ring_central/models/calls_by_queue_sla_breakdown.py new file mode 100644 index 00000000..8f69330b --- /dev/null +++ b/src/ring_central/models/calls_by_queue_sla_breakdown.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"in_sla": "inSla", "out_of_sla": "outOfSla"}) +class CallsByQueueSlaBreakdown(BaseModel): + """Result breakdown by queue SLA + + :param in_sla: Value for InSla queue SLA + :type in_sla: float + :param out_of_sla: Value for OutSla queue SLA + :type out_of_sla: float + """ + + def __init__(self, in_sla: float, out_of_sla: float): + self.in_sla = in_sla + self.out_of_sla = out_of_sla diff --git a/src/ring_central/models/calls_by_response.py b/src/ring_central/models/calls_by_response.py new file mode 100644 index 00000000..3a6682af --- /dev/null +++ b/src/ring_central/models/calls_by_response.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_response_breakdown import CallsByResponseBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByResponse(BaseModel): + """Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by response + :type values: CallsByResponseBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByResponseBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByResponseBreakdown) diff --git a/src/ring_central/models/calls_by_response_breakdown.py b/src/ring_central/models/calls_by_response_breakdown.py new file mode 100644 index 00000000..e4aa1872 --- /dev/null +++ b/src/ring_central/models/calls_by_response_breakdown.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"not_answered": "notAnswered", "not_connected": "notConnected"}) +class CallsByResponseBreakdown(BaseModel): + """Result breakdown by response + + :param answered: Value for Answered response + :type answered: float + :param not_answered: Value for NotAnswered response + :type not_answered: float + :param connected: Value for Connected response + :type connected: float + :param not_connected: Value for NotConnected response + :type not_connected: float + """ + + def __init__( + self, + answered: float, + not_answered: float, + connected: float, + not_connected: float, + ): + self.answered = answered + self.not_answered = not_answered + self.connected = connected + self.not_connected = not_connected diff --git a/src/ring_central/models/calls_by_result.py b/src/ring_central/models/calls_by_result.py new file mode 100644 index 00000000..b92c1cbf --- /dev/null +++ b/src/ring_central/models/calls_by_result.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_result_breakdown import CallsByResultBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByResult(BaseModel): + """Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by call result + :type values: CallsByResultBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByResultBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByResultBreakdown) diff --git a/src/ring_central/models/calls_by_result_breakdown.py b/src/ring_central/models/calls_by_result_breakdown.py new file mode 100644 index 00000000..feeba9b5 --- /dev/null +++ b/src/ring_central/models/calls_by_result_breakdown.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CallsByResultBreakdown(BaseModel): + """Result breakdown by call result + + :param completed: Value for Completed result + :type completed: float + :param abandoned: Value for Abandoned result + :type abandoned: float + :param voicemail: Value for Voicemail result + :type voicemail: float + :param missed: Value for Missed result + :type missed: float + :param accepted: Value for Accepted result + :type accepted: float + :param unknown: Value for Unknown result + :type unknown: float + """ + + def __init__( + self, + completed: float, + abandoned: float, + voicemail: float, + missed: float, + accepted: float, + unknown: float, + ): + self.completed = completed + self.abandoned = abandoned + self.voicemail = voicemail + self.missed = missed + self.accepted = accepted + self.unknown = unknown diff --git a/src/ring_central/models/calls_by_segments.py b/src/ring_central/models/calls_by_segments.py new file mode 100644 index 00000000..4bc2ef17 --- /dev/null +++ b/src/ring_central/models/calls_by_segments.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_segments_breakdown import CallsBySegmentsBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsBySegments(BaseModel): + """Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by segments + :type values: CallsBySegmentsBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsBySegmentsBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsBySegmentsBreakdown) diff --git a/src/ring_central/models/calls_by_segments_breakdown.py b/src/ring_central/models/calls_by_segments_breakdown.py new file mode 100644 index 00000000..50511abf --- /dev/null +++ b/src/ring_central/models/calls_by_segments_breakdown.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"live_talk": "liveTalk", "ivr_prompt": "ivrPrompt", "vm_greeting": "vmGreeting"} +) +class CallsBySegmentsBreakdown(BaseModel): + """Result breakdown by segments + + :param ringing: Value for Ringing segment + :type ringing: float + :param live_talk: Value for LiveTalk segment + :type live_talk: float + :param hold: Value for Hold segment + :type hold: float + :param park: Value for Park segment + :type park: float + :param transfer: Value for Transfer segment + :type transfer: float + :param ivr_prompt: Value for IVRPrompt segment + :type ivr_prompt: float + :param voicemail: Value for Voicemail segment + :type voicemail: float + :param vm_greeting: Value for VMGreeting segment + :type vm_greeting: float + :param setup: Value for Setup segment + :type setup: float + """ + + def __init__( + self, + ringing: float, + live_talk: float, + hold: float, + park: float, + transfer: float, + ivr_prompt: float, + voicemail: float, + vm_greeting: float, + setup: float, + ): + self.ringing = ringing + self.live_talk = live_talk + self.hold = hold + self.park = park + self.transfer = transfer + self.ivr_prompt = ivr_prompt + self.voicemail = voicemail + self.vm_greeting = vm_greeting + self.setup = setup diff --git a/src/ring_central/models/calls_by_type.py b/src/ring_central/models/calls_by_type.py new file mode 100644 index 00000000..a482d614 --- /dev/null +++ b/src/ring_central/models/calls_by_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType +from .calls_by_type_breakdown import CallsByTypeBreakdown + + +@JsonMap({"value_type": "valueType"}) +class CallsByType(BaseModel): + """Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow) + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Result breakdown by type + :type values: CallsByTypeBreakdown + """ + + def __init__(self, value_type: ValueType, values: CallsByTypeBreakdown): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = self._define_object(values, CallsByTypeBreakdown) diff --git a/src/ring_central/models/calls_by_type_breakdown.py b/src/ring_central/models/calls_by_type_breakdown.py new file mode 100644 index 00000000..95ce3578 --- /dev/null +++ b/src/ring_central/models/calls_by_type_breakdown.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_queue": "fromQueue", "park_retrieval": "parkRetrieval"}) +class CallsByTypeBreakdown(BaseModel): + """Result breakdown by type + + :param direct: Value for Direct type + :type direct: float + :param from_queue: Value for FromQueue type + :type from_queue: float + :param park_retrieval: Value for ParkRetrieval type + :type park_retrieval: float + :param transferred: Value for Transferred type + :type transferred: float + :param outbound: Value for Outbound type + :type outbound: float + :param overflow: Value for Overflow type + :type overflow: float + """ + + def __init__( + self, + direct: float, + from_queue: float, + park_retrieval: float, + transferred: float, + outbound: float, + overflow: float, + ): + self.direct = direct + self.from_queue = from_queue + self.park_retrieval = park_retrieval + self.transferred = transferred + self.outbound = outbound + self.overflow = overflow diff --git a/src/ring_central/models/calls_counters.py b/src/ring_central/models/calls_counters.py new file mode 100644 index 00000000..74a83af5 --- /dev/null +++ b/src/ring_central/models/calls_counters.py @@ -0,0 +1,106 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .all_calls import AllCalls +from .calls_by_direction import CallsByDirection +from .calls_by_origin import CallsByOrigin +from .calls_by_response import CallsByResponse +from .calls_by_segments import CallsBySegments +from .calls_by_result import CallsByResult +from .calls_by_actions import CallsByActions +from .calls_by_company_hours import CallsByCompanyHours +from .calls_by_queue_sla import CallsByQueueSla +from .calls_by_type import CallsByType +from .queue_opportunities import QueueOpportunities + + +@JsonMap( + { + "all_calls": "allCalls", + "calls_by_direction": "callsByDirection", + "calls_by_origin": "callsByOrigin", + "calls_by_response": "callsByResponse", + "calls_segments": "callsSegments", + "calls_by_result": "callsByResult", + "calls_actions": "callsActions", + "calls_by_company_hours": "callsByCompanyHours", + "calls_by_queue_sla": "callsByQueueSla", + "calls_by_type": "callsByType", + "queue_opportunities": "queueOpportunities", + } +) +class CallsCounters(BaseModel): + """Call volume data for the specified grouping + + :param all_calls: Data for all calls, defaults to None + :type all_calls: AllCalls, optional + :param calls_by_direction: Data for calls with breakdown by direction (Inbound, Outbound), defaults to None + :type calls_by_direction: CallsByDirection, optional + :param calls_by_origin: Data for calls with breakdown by origin (Internal, External), defaults to None + :type calls_by_origin: CallsByOrigin, optional + :param calls_by_response: Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_by_response: CallsByResponse, optional + :param calls_segments: Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments: CallsBySegments, optional + :param calls_by_result: Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_by_result: CallsByResult, optional + :param calls_actions: Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer), defaults to None + :type calls_actions: CallsByActions, optional + :param calls_by_company_hours: Data for calls with breakdown by company hours (BusinessHours, AfterHours), defaults to None + :type calls_by_company_hours: CallsByCompanyHours, optional + :param calls_by_queue_sla: Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping, defaults to None + :type calls_by_queue_sla: CallsByQueueSla, optional + :param calls_by_type: Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow), defaults to None + :type calls_by_type: CallsByType, optional + :param queue_opportunities: Queue opportunities data for the specified grouping, defaults to None + :type queue_opportunities: QueueOpportunities, optional + """ + + def __init__( + self, + all_calls: AllCalls = None, + calls_by_direction: CallsByDirection = None, + calls_by_origin: CallsByOrigin = None, + calls_by_response: CallsByResponse = None, + calls_segments: CallsBySegments = None, + calls_by_result: CallsByResult = None, + calls_actions: CallsByActions = None, + calls_by_company_hours: CallsByCompanyHours = None, + calls_by_queue_sla: CallsByQueueSla = None, + calls_by_type: CallsByType = None, + queue_opportunities: QueueOpportunities = None, + ): + if all_calls is not None: + self.all_calls = self._define_object(all_calls, AllCalls) + if calls_by_direction is not None: + self.calls_by_direction = self._define_object( + calls_by_direction, CallsByDirection + ) + if calls_by_origin is not None: + self.calls_by_origin = self._define_object(calls_by_origin, CallsByOrigin) + if calls_by_response is not None: + self.calls_by_response = self._define_object( + calls_by_response, CallsByResponse + ) + if calls_segments is not None: + self.calls_segments = self._define_object(calls_segments, CallsBySegments) + if calls_by_result is not None: + self.calls_by_result = self._define_object(calls_by_result, CallsByResult) + if calls_actions is not None: + self.calls_actions = self._define_object(calls_actions, CallsByActions) + if calls_by_company_hours is not None: + self.calls_by_company_hours = self._define_object( + calls_by_company_hours, CallsByCompanyHours + ) + if calls_by_queue_sla is not None: + self.calls_by_queue_sla = self._define_object( + calls_by_queue_sla, CallsByQueueSla + ) + if calls_by_type is not None: + self.calls_by_type = self._define_object(calls_by_type, CallsByType) + if queue_opportunities is not None: + self.queue_opportunities = self._define_object( + queue_opportunities, QueueOpportunities + ) diff --git a/src/ring_central/models/calls_timers.py b/src/ring_central/models/calls_timers.py new file mode 100644 index 00000000..231326d0 --- /dev/null +++ b/src/ring_central/models/calls_timers.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .all_calls import AllCalls +from .calls_by_direction import CallsByDirection +from .calls_by_origin import CallsByOrigin +from .calls_by_response import CallsByResponse +from .calls_by_segments import CallsBySegments +from .calls_by_result import CallsByResult +from .calls_by_company_hours import CallsByCompanyHours +from .calls_by_queue_sla import CallsByQueueSla +from .calls_by_type import CallsByType + + +@JsonMap( + { + "all_calls": "allCalls", + "calls_by_direction": "callsByDirection", + "calls_by_origin": "callsByOrigin", + "calls_by_response": "callsByResponse", + "calls_segments": "callsSegments", + "calls_by_result": "callsByResult", + "calls_by_company_hours": "callsByCompanyHours", + "calls_by_queue_sla": "callsByQueueSla", + "calls_by_type": "callsByType", + } +) +class CallsTimers(BaseModel): + """Call length data for the specified grouping + + :param all_calls: Data for all calls, defaults to None + :type all_calls: AllCalls, optional + :param calls_by_direction: Data for calls with breakdown by direction (Inbound, Outbound), defaults to None + :type calls_by_direction: CallsByDirection, optional + :param calls_by_origin: Data for calls with breakdown by origin (Internal, External), defaults to None + :type calls_by_origin: CallsByOrigin, optional + :param calls_by_response: Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_by_response: CallsByResponse, optional + :param calls_segments: Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments: CallsBySegments, optional + :param calls_by_result: Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_by_result: CallsByResult, optional + :param calls_by_company_hours: Data for calls with breakdown by company hours (BusinessHours, AfterHours), defaults to None + :type calls_by_company_hours: CallsByCompanyHours, optional + :param calls_by_queue_sla: Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping, defaults to None + :type calls_by_queue_sla: CallsByQueueSla, optional + :param calls_by_type: Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow), defaults to None + :type calls_by_type: CallsByType, optional + """ + + def __init__( + self, + all_calls: AllCalls = None, + calls_by_direction: CallsByDirection = None, + calls_by_origin: CallsByOrigin = None, + calls_by_response: CallsByResponse = None, + calls_segments: CallsBySegments = None, + calls_by_result: CallsByResult = None, + calls_by_company_hours: CallsByCompanyHours = None, + calls_by_queue_sla: CallsByQueueSla = None, + calls_by_type: CallsByType = None, + ): + if all_calls is not None: + self.all_calls = self._define_object(all_calls, AllCalls) + if calls_by_direction is not None: + self.calls_by_direction = self._define_object( + calls_by_direction, CallsByDirection + ) + if calls_by_origin is not None: + self.calls_by_origin = self._define_object(calls_by_origin, CallsByOrigin) + if calls_by_response is not None: + self.calls_by_response = self._define_object( + calls_by_response, CallsByResponse + ) + if calls_segments is not None: + self.calls_segments = self._define_object(calls_segments, CallsBySegments) + if calls_by_result is not None: + self.calls_by_result = self._define_object(calls_by_result, CallsByResult) + if calls_by_company_hours is not None: + self.calls_by_company_hours = self._define_object( + calls_by_company_hours, CallsByCompanyHours + ) + if calls_by_queue_sla is not None: + self.calls_by_queue_sla = self._define_object( + calls_by_queue_sla, CallsByQueueSla + ) + if calls_by_type is not None: + self.calls_by_type = self._define_object(calls_by_type, CallsByType) diff --git a/src/ring_central/models/cloud_recording.py b/src/ring_central/models/cloud_recording.py new file mode 100644 index 00000000..a17fbc9d --- /dev/null +++ b/src/ring_central/models/cloud_recording.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .host import Host + + +@JsonMap( + { + "id_": "id", + "short_id": "shortId", + "start_time": "startTime", + "display_name": "displayName", + "host_info": "hostInfo", + "media_link": "mediaLink", + "expires_in": "expiresIn", + } +) +class CloudRecording(BaseModel): + """Recording information + + :param id_: Call id + :type id_: str + :param short_id: Short bridge id + :type short_id: str + :param start_time: Start time ISO 8601 + :type start_time: str + :param duration: Meeting duration in seconds, defaults to None + :type duration: int, optional + :param display_name: Meeting name + :type display_name: str + :param host_info: Meeting host + :type host_info: Host + :param media_link: Link to the recording file. Not used anymore by Web team + :type media_link: str + :param url: Encrypted link to the recording file + :type url: str + :param expires_in: Date after which recording will be deleted, defaults to None + :type expires_in: str, optional + """ + + def __init__( + self, + id_: str, + short_id: str, + start_time: str, + display_name: str, + host_info: Host, + media_link: str, + url: str, + duration: int = None, + expires_in: str = None, + ): + self.id_ = id_ + self.short_id = short_id + self.start_time = start_time + if duration is not None: + self.duration = duration + self.display_name = display_name + self.host_info = self._define_object(host_info, Host) + self.media_link = media_link + self.url = url + if expires_in is not None: + self.expires_in = expires_in diff --git a/src/ring_central/models/cloud_recordings.py b/src/ring_central/models/cloud_recordings.py new file mode 100644 index 00000000..c317f207 --- /dev/null +++ b/src/ring_central/models/cloud_recordings.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .cloud_recording import CloudRecording +from .paging import Paging + + +@JsonMap({}) +class CloudRecordings(BaseModel): + """Recordings page + + :param recordings: Recordings array + :type recordings: List[CloudRecording] + :param paging: Paging information + :type paging: Paging + """ + + def __init__(self, recordings: List[CloudRecording], paging: Paging): + self.recordings = self._define_list(recordings, CloudRecording) + self.paging = self._define_object(paging, Paging) diff --git a/src/ring_central/models/code_challenge_method_enum.py b/src/ring_central/models/code_challenge_method_enum.py new file mode 100644 index 00000000..fa8ca84b --- /dev/null +++ b/src/ring_central/models/code_challenge_method_enum.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CodeChallengeMethodEnum(Enum): + """An enumeration representing different categories. + + :cvar PLAIN: "plain" + :vartype PLAIN: str + :cvar S256: "S256" + :vartype S256: str + """ + + PLAIN = "plain" + S256 = "S256" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CodeChallengeMethodEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/common_emergency_location_address_info.py b/src/ring_central/models/common_emergency_location_address_info.py new file mode 100644 index 00000000..14f19f3b --- /dev/null +++ b/src/ring_central/models/common_emergency_location_address_info.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) + + +class CommonEmergencyLocationAddressInfoGuard(OneOfBaseModel): + class_list = { + "CommonEmergencyLocationAddressInfoDefault": CommonEmergencyLocationAddressInfoDefault, + "CommonEmergencyLocationAddressInfoAu": CommonEmergencyLocationAddressInfoAu, + "CommonEmergencyLocationAddressInfoFr": CommonEmergencyLocationAddressInfoFr, + } + + +CommonEmergencyLocationAddressInfo = Union[ + CommonEmergencyLocationAddressInfoDefault, + CommonEmergencyLocationAddressInfoAu, + CommonEmergencyLocationAddressInfoFr, +] diff --git a/src/ring_central/models/common_emergency_location_address_info_au.py b/src/ring_central/models/common_emergency_location_address_info_au.py new file mode 100644 index 00000000..1a061913 --- /dev/null +++ b/src/ring_central/models/common_emergency_location_address_info_au.py @@ -0,0 +1,114 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "company_name": "companyName", + "building_name": "buildingName", + "street_type": "streetType", + "building_number": "buildingNumber", + "customer_name": "customerName", + } +) +class CommonEmergencyLocationAddressInfoAu(BaseModel): + """CommonEmergencyLocationAddressInfoAu + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: The name of the street (the field is utilized as 'streetName' field for AU addresses), defaults to None + :type street: str, optional + :param company_name: Company name, defaults to None + :type company_name: str, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param street_type: Street type, defaults to None + :type street_type: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + company_name: str = None, + building_name: str = None, + street_type: str = None, + building_number: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if company_name is not None: + self.company_name = company_name + if building_name is not None: + self.building_name = building_name + if street_type is not None: + self.street_type = street_type + if building_number is not None: + self.building_number = building_number + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name diff --git a/src/ring_central/models/common_emergency_location_address_info_default.py b/src/ring_central/models/common_emergency_location_address_info_default.py new file mode 100644 index 00000000..2d462fc7 --- /dev/null +++ b/src/ring_central/models/common_emergency_location_address_info_default.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "customer_name": "customerName", + } +) +class CommonEmergencyLocationAddressInfoDefault(BaseModel): + """CommonEmergencyLocationAddressInfoDefault + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: First line address, defaults to None + :type street: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name diff --git a/src/ring_central/models/common_emergency_location_address_info_fr.py b/src/ring_central/models/common_emergency_location_address_info_fr.py new file mode 100644 index 00000000..26f73296 --- /dev/null +++ b/src/ring_central/models/common_emergency_location_address_info_fr.py @@ -0,0 +1,108 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "company_name": "companyName", + "building_name": "buildingName", + "building_number": "buildingNumber", + "customer_name": "customerName", + } +) +class CommonEmergencyLocationAddressInfoFr(BaseModel): + """CommonEmergencyLocationAddressInfoFr + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: The name of the street (The field is utilized as 'streetName' field for FR addresses), defaults to None + :type street: str, optional + :param company_name: Company name, defaults to None + :type company_name: str, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + company_name: str = None, + building_name: str = None, + building_number: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if company_name is not None: + self.company_name = company_name + if building_name is not None: + self.building_name = building_name + if building_number is not None: + self.building_number = building_number + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name diff --git a/src/ring_central/models/common_emergency_location_resource.py b/src/ring_central/models/common_emergency_location_resource.py new file mode 100644 index 00000000..21defdea --- /dev/null +++ b/src/ring_central/models/common_emergency_location_resource.py @@ -0,0 +1,113 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info import ( + CommonEmergencyLocationAddressInfo, + CommonEmergencyLocationAddressInfoGuard, +) +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) +from .short_site_info import ShortSiteInfo +from .address_status import AddressStatus +from .usage_status import UsageStatus +from .sync_status import SyncStatus +from .emergency_address_type import EmergencyAddressType +from .visibility import Visibility +from .location_owner_info import LocationOwnerInfo + + +@JsonMap( + { + "id_": "id", + "address_status": "addressStatus", + "usage_status": "usageStatus", + "sync_status": "syncStatus", + "address_type": "addressType", + "address_format_id": "addressFormatId", + } +) +class CommonEmergencyLocationResource(BaseModel): + """Company emergency response location details + + :param id_: Internal identifier of an emergency response location , defaults to None + :type id_: str, optional + :param address: address, defaults to None + :type address: CommonEmergencyLocationAddressInfo, optional + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: ShortSiteInfo, optional + :param address_status: Emergency address status, defaults to None + :type address_status: AddressStatus, optional + :param usage_status: Status of emergency response location usage., defaults to None + :type usage_status: UsageStatus, optional + :param sync_status: Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: SyncStatus, optional + :param address_type: address_type, defaults to None + :type address_type: EmergencyAddressType, optional + :param visibility: Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array , defaults to None + :type visibility: Visibility, optional + :param owners: List of private location owners, defaults to None + :type owners: List[LocationOwnerInfo], optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + """ + + def __init__( + self, + id_: str = None, + address: CommonEmergencyLocationAddressInfo = None, + name: str = None, + site: ShortSiteInfo = None, + address_status: AddressStatus = None, + usage_status: UsageStatus = None, + sync_status: SyncStatus = None, + address_type: EmergencyAddressType = None, + visibility: Visibility = None, + owners: List[LocationOwnerInfo] = None, + address_format_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if address is not None: + self.address = CommonEmergencyLocationAddressInfoGuard.return_one_of( + address + ) + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, ShortSiteInfo) + if address_status is not None: + self.address_status = self._enum_matching( + address_status, AddressStatus.list(), "address_status" + ) + if usage_status is not None: + self.usage_status = self._enum_matching( + usage_status, UsageStatus.list(), "usage_status" + ) + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, SyncStatus.list(), "sync_status" + ) + if address_type is not None: + self.address_type = self._enum_matching( + address_type, EmergencyAddressType.list(), "address_type" + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, Visibility.list(), "visibility" + ) + if owners is not None: + self.owners = self._define_list(owners, LocationOwnerInfo) + if address_format_id is not None: + self.address_format_id = address_format_id diff --git a/src/ring_central/models/company_answering_rule_called_number_info.py b/src/ring_central/models/company_answering_rule_called_number_info.py new file mode 100644 index 00000000..a835e21c --- /dev/null +++ b/src/ring_central/models/company_answering_rule_called_number_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class CompanyAnsweringRuleCalledNumberInfo(BaseModel): + """CompanyAnsweringRuleCalledNumberInfo + + :param id_: Internal identifier of an account phone number, defaults to None + :type id_: str, optional + :param phone_number: Phone number of a callee, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: str = None, phone_number: str = None): + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/company_answering_rule_called_number_info_request.py b/src/ring_central/models/company_answering_rule_called_number_info_request.py new file mode 100644 index 00000000..f2edd1e2 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_called_number_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class CompanyAnsweringRuleCalledNumberInfoRequest(BaseModel): + """CompanyAnsweringRuleCalledNumberInfoRequest + + :param id_: Internal identifier of an account phone number, defaults to None + :type id_: str, optional + :param phone_number: Phone number of a callee, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: str = None, phone_number: str = None): + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/company_answering_rule_callers_info_request.py b/src/ring_central/models/company_answering_rule_callers_info_request.py new file mode 100644 index 00000000..149360b4 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_callers_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"caller_id": "callerId"}) +class CompanyAnsweringRuleCallersInfoRequest(BaseModel): + """CompanyAnsweringRuleCallersInfoRequest + + :param caller_id: Phone number of a caller, defaults to None + :type caller_id: str, optional + :param name: Displayed name for a caller ID, defaults to None + :type name: str, optional + """ + + def __init__(self, caller_id: str = None, name: str = None): + if caller_id is not None: + self.caller_id = caller_id + if name is not None: + self.name = name diff --git a/src/ring_central/models/company_answering_rule_extension_info.py b/src/ring_central/models/company_answering_rule_extension_info.py new file mode 100644 index 00000000..e38a85f7 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_extension_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CompanyAnsweringRuleExtensionInfo(BaseModel): + """CompanyAnsweringRuleExtensionInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/company_answering_rule_extension_info_request.py b/src/ring_central/models/company_answering_rule_extension_info_request.py new file mode 100644 index 00000000..f347423f --- /dev/null +++ b/src/ring_central/models/company_answering_rule_extension_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CompanyAnsweringRuleExtensionInfoRequest(BaseModel): + """Extension to which the call is forwarded in 'Bypass' mode + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/company_answering_rule_info.py b/src/ring_central/models/company_answering_rule_info.py new file mode 100644 index 00000000..adc3a5a7 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_info.py @@ -0,0 +1,160 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_callers_info_request import ( + CompanyAnsweringRuleCallersInfoRequest, +) +from .company_answering_rule_called_number_info_request import ( + CompanyAnsweringRuleCalledNumberInfoRequest, +) +from .company_answering_rule_schedule_info import CompanyAnsweringRuleScheduleInfo +from .company_answering_rule_extension_info_request import ( + CompanyAnsweringRuleExtensionInfoRequest, +) +from .greeting_info import GreetingInfo + + +class CompanyAnsweringRuleInfoType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CompanyAnsweringRuleInfoType._member_map_.values()) + ) + + +class CompanyAnsweringRuleInfoCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar OPERATOR: "Operator" + :vartype OPERATOR: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar BYPASS: "Bypass" + :vartype BYPASS: str + """ + + OPERATOR = "Operator" + DISCONNECT = "Disconnect" + BYPASS = "Bypass" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CompanyAnsweringRuleInfoCallHandlingAction._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + } +) +class CompanyAnsweringRuleInfo(BaseModel): + """CompanyAnsweringRuleInfo + + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an answering rule, defaults to None + :type uri: str, optional + :param enabled: Specifies if the rule is active or inactive, defaults to None + :type enabled: bool, optional + :param type_: Type of an answering rule, defaults to None + :type type_: CompanyAnsweringRuleInfoType, optional + :param name: Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number, defaults to None + :type name: str, optional + :param callers: Answering rule will be applied when calls are received from the specified caller(s), defaults to None + :type callers: List[CompanyAnsweringRuleCallersInfoRequest], optional + :param called_numbers: Answering rule will be applied when calling the specified number(s), defaults to None + :type called_numbers: List[CompanyAnsweringRuleCalledNumberInfoRequest], optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: CompanyAnsweringRuleScheduleInfo, optional + :param call_handling_action: Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'], defaults to None + :type call_handling_action: CompanyAnsweringRuleInfoCallHandlingAction, optional + :param extension: Extension to which the call is forwarded in 'Bypass' mode, defaults to None + :type extension: CompanyAnsweringRuleExtensionInfoRequest, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List, defaults to None + :type greetings: List[GreetingInfo], optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + enabled: bool = None, + type_: CompanyAnsweringRuleInfoType = None, + name: str = None, + callers: List[CompanyAnsweringRuleCallersInfoRequest] = None, + called_numbers: List[CompanyAnsweringRuleCalledNumberInfoRequest] = None, + schedule: CompanyAnsweringRuleScheduleInfo = None, + call_handling_action: CompanyAnsweringRuleInfoCallHandlingAction = None, + extension: CompanyAnsweringRuleExtensionInfoRequest = None, + greetings: List[GreetingInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if enabled is not None: + self.enabled = enabled + if type_ is not None: + self.type_ = self._enum_matching( + type_, CompanyAnsweringRuleInfoType.list(), "type_" + ) + if name is not None: + self.name = name + if callers is not None: + self.callers = self._define_list( + callers, CompanyAnsweringRuleCallersInfoRequest + ) + if called_numbers is not None: + self.called_numbers = self._define_list( + called_numbers, CompanyAnsweringRuleCalledNumberInfoRequest + ) + if schedule is not None: + self.schedule = self._define_object( + schedule, CompanyAnsweringRuleScheduleInfo + ) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + CompanyAnsweringRuleInfoCallHandlingAction.list(), + "call_handling_action", + ) + if extension is not None: + self.extension = self._define_object( + extension, CompanyAnsweringRuleExtensionInfoRequest + ) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) diff --git a/src/ring_central/models/company_answering_rule_list.py b/src/ring_central/models/company_answering_rule_list.py new file mode 100644 index 00000000..0c9c988c --- /dev/null +++ b/src/ring_central/models/company_answering_rule_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .list_company_answering_rule_info import ListCompanyAnsweringRuleInfo +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class CompanyAnsweringRuleList(BaseModel): + """CompanyAnsweringRuleList + + :param uri: Link to an answering rule resource, defaults to None + :type uri: str, optional + :param records: List of company answering rules, defaults to None + :type records: List[ListCompanyAnsweringRuleInfo], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[ListCompanyAnsweringRuleInfo] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, ListCompanyAnsweringRuleInfo) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/company_answering_rule_request.py b/src/ring_central/models/company_answering_rule_request.py new file mode 100644 index 00000000..338a9c61 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_request.py @@ -0,0 +1,153 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_callers_info_request import ( + CompanyAnsweringRuleCallersInfoRequest, +) +from .company_answering_rule_called_number_info import ( + CompanyAnsweringRuleCalledNumberInfo, +) +from .company_answering_rule_schedule_info_request import ( + CompanyAnsweringRuleScheduleInfoRequest, +) +from .company_answering_rule_extension_info_request import ( + CompanyAnsweringRuleExtensionInfoRequest, +) +from .greeting_info import GreetingInfo + + +class CompanyAnsweringRuleRequestType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, CompanyAnsweringRuleRequestType._member_map_.values() + ) + ) + + +class CompanyAnsweringRuleRequestCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar OPERATOR: "Operator" + :vartype OPERATOR: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar BYPASS: "Bypass" + :vartype BYPASS: str + """ + + OPERATOR = "Operator" + DISCONNECT = "Disconnect" + BYPASS = "Bypass" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CompanyAnsweringRuleRequestCallHandlingAction._member_map_.values(), + ) + ) + + +@JsonMap( + { + "type_": "type", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + } +) +class CompanyAnsweringRuleRequest(BaseModel): + """CompanyAnsweringRuleRequest + + :param name: Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number, defaults to None + :type name: str, optional + :param enabled: Specifies if the rule is active or inactive. The default value is `true`, defaults to None + :type enabled: bool, optional + :param type_: Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'], defaults to None + :type type_: CompanyAnsweringRuleRequestType, optional + :param callers: Answering rule will be applied when calls are received from the specified caller(s), defaults to None + :type callers: List[CompanyAnsweringRuleCallersInfoRequest], optional + :param called_numbers: Answering rule will be applied when calling the specified number(s), defaults to None + :type called_numbers: List[CompanyAnsweringRuleCalledNumberInfo], optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: CompanyAnsweringRuleScheduleInfoRequest, optional + :param call_handling_action: Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'], defaults to None + :type call_handling_action: CompanyAnsweringRuleRequestCallHandlingAction, optional + :param extension: Extension to which the call is forwarded in 'Bypass' mode, defaults to None + :type extension: CompanyAnsweringRuleExtensionInfoRequest, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List, defaults to None + :type greetings: List[GreetingInfo], optional + """ + + def __init__( + self, + name: str = None, + enabled: bool = None, + type_: CompanyAnsweringRuleRequestType = None, + callers: List[CompanyAnsweringRuleCallersInfoRequest] = None, + called_numbers: List[CompanyAnsweringRuleCalledNumberInfo] = None, + schedule: CompanyAnsweringRuleScheduleInfoRequest = None, + call_handling_action: CompanyAnsweringRuleRequestCallHandlingAction = None, + extension: CompanyAnsweringRuleExtensionInfoRequest = None, + greetings: List[GreetingInfo] = None, + ): + if name is not None: + self.name = name + if enabled is not None: + self.enabled = enabled + if type_ is not None: + self.type_ = self._enum_matching( + type_, CompanyAnsweringRuleRequestType.list(), "type_" + ) + if callers is not None: + self.callers = self._define_list( + callers, CompanyAnsweringRuleCallersInfoRequest + ) + if called_numbers is not None: + self.called_numbers = self._define_list( + called_numbers, CompanyAnsweringRuleCalledNumberInfo + ) + if schedule is not None: + self.schedule = self._define_object( + schedule, CompanyAnsweringRuleScheduleInfoRequest + ) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + CompanyAnsweringRuleRequestCallHandlingAction.list(), + "call_handling_action", + ) + if extension is not None: + self.extension = self._define_object( + extension, CompanyAnsweringRuleExtensionInfoRequest + ) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) diff --git a/src/ring_central/models/company_answering_rule_schedule_info.py b/src/ring_central/models/company_answering_rule_schedule_info.py new file mode 100644 index 00000000..3dd4e801 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_schedule_info.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_weekly_schedule_info_request import ( + CompanyAnsweringRuleWeeklyScheduleInfoRequest, +) +from .ranges_info import RangesInfo + + +class CompanyAnsweringRuleScheduleInfoRef(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CompanyAnsweringRuleScheduleInfoRef._member_map_.values(), + ) + ) + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class CompanyAnsweringRuleScheduleInfo(BaseModel): + """Schedule when an answering rule should be applied + + :param weekly_ranges: Weekly schedule. If specified, ranges cannot be specified, defaults to None + :type weekly_ranges: CompanyAnsweringRuleWeeklyScheduleInfoRequest, optional + :param ranges: Specific data ranges. If specified, weeklyRanges cannot be specified, defaults to None + :type ranges: List[RangesInfo], optional + :param ref: Reference to Business Hours or After Hours schedule = ['BusinessHours', 'AfterHours'], defaults to None + :type ref: CompanyAnsweringRuleScheduleInfoRef, optional + """ + + def __init__( + self, + weekly_ranges: CompanyAnsweringRuleWeeklyScheduleInfoRequest = None, + ranges: List[RangesInfo] = None, + ref: CompanyAnsweringRuleScheduleInfoRef = None, + ): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object( + weekly_ranges, CompanyAnsweringRuleWeeklyScheduleInfoRequest + ) + if ranges is not None: + self.ranges = self._define_list(ranges, RangesInfo) + if ref is not None: + self.ref = self._enum_matching( + ref, CompanyAnsweringRuleScheduleInfoRef.list(), "ref" + ) diff --git a/src/ring_central/models/company_answering_rule_schedule_info_request.py b/src/ring_central/models/company_answering_rule_schedule_info_request.py new file mode 100644 index 00000000..1d64edaa --- /dev/null +++ b/src/ring_central/models/company_answering_rule_schedule_info_request.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_weekly_schedule_info_request import ( + CompanyAnsweringRuleWeeklyScheduleInfoRequest, +) +from .ranges_info import RangesInfo + + +class CompanyAnsweringRuleScheduleInfoRequestRef(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CompanyAnsweringRuleScheduleInfoRequestRef._member_map_.values(), + ) + ) + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class CompanyAnsweringRuleScheduleInfoRequest(BaseModel): + """Schedule when an answering rule should be applied + + :param weekly_ranges: Weekly schedule. If specified, ranges cannot be specified, defaults to None + :type weekly_ranges: CompanyAnsweringRuleWeeklyScheduleInfoRequest, optional + :param ranges: Specific data ranges. If specified, weeklyRanges cannot be specified, defaults to None + :type ranges: List[RangesInfo], optional + :param ref: Reference to Business Hours or After Hours schedule, defaults to None + :type ref: CompanyAnsweringRuleScheduleInfoRequestRef, optional + """ + + def __init__( + self, + weekly_ranges: CompanyAnsweringRuleWeeklyScheduleInfoRequest = None, + ranges: List[RangesInfo] = None, + ref: CompanyAnsweringRuleScheduleInfoRequestRef = None, + ): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object( + weekly_ranges, CompanyAnsweringRuleWeeklyScheduleInfoRequest + ) + if ranges is not None: + self.ranges = self._define_list(ranges, RangesInfo) + if ref is not None: + self.ref = self._enum_matching( + ref, CompanyAnsweringRuleScheduleInfoRequestRef.list(), "ref" + ) diff --git a/src/ring_central/models/company_answering_rule_time_interval_request.py b/src/ring_central/models/company_answering_rule_time_interval_request.py new file mode 100644 index 00000000..cf7bad7f --- /dev/null +++ b/src/ring_central/models/company_answering_rule_time_interval_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_": "from"}) +class CompanyAnsweringRuleTimeIntervalRequest(BaseModel): + """CompanyAnsweringRuleTimeIntervalRequest + + :param from_: Time in format hh:mm, defaults to None + :type from_: str, optional + :param to: Time in format hh:mm, defaults to None + :type to: str, optional + """ + + def __init__(self, from_: str = None, to: str = None): + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to diff --git a/src/ring_central/models/company_answering_rule_update.py b/src/ring_central/models/company_answering_rule_update.py new file mode 100644 index 00000000..f52b1d3e --- /dev/null +++ b/src/ring_central/models/company_answering_rule_update.py @@ -0,0 +1,148 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_callers_info_request import ( + CompanyAnsweringRuleCallersInfoRequest, +) +from .company_answering_rule_called_number_info import ( + CompanyAnsweringRuleCalledNumberInfo, +) +from .company_answering_rule_schedule_info_request import ( + CompanyAnsweringRuleScheduleInfoRequest, +) +from .greeting_info import GreetingInfo + + +class CompanyAnsweringRuleUpdateCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar OPERATOR: "Operator" + :vartype OPERATOR: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar BYPASS: "Bypass" + :vartype BYPASS: str + """ + + OPERATOR = "Operator" + DISCONNECT = "Disconnect" + BYPASS = "Bypass" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CompanyAnsweringRuleUpdateCallHandlingAction._member_map_.values(), + ) + ) + + +class CompanyAnsweringRuleUpdateType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CompanyAnsweringRuleUpdateType._member_map_.values()) + ) + + +@JsonMap( + { + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + "type_": "type", + } +) +class CompanyAnsweringRuleUpdate(BaseModel): + """CompanyAnsweringRuleUpdate + + :param enabled: Specifies if a rule is active or inactive. The default value is `true`, defaults to None + :type enabled: bool, optional + :param name: Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number , defaults to None + :type name: str, optional + :param callers: Answering rule will be applied when calls are received from the specified caller(s) , defaults to None + :type callers: List[CompanyAnsweringRuleCallersInfoRequest], optional + :param called_numbers: Answering rule will be applied when calling the specified number(s), defaults to None + :type called_numbers: List[CompanyAnsweringRuleCalledNumberInfo], optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: CompanyAnsweringRuleScheduleInfoRequest, optional + :param call_handling_action: Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect','Bypass'], defaults to None + :type call_handling_action: CompanyAnsweringRuleUpdateCallHandlingAction, optional + :param type_: Type of an answering rule, defaults to None + :type type_: CompanyAnsweringRuleUpdateType, optional + :param extension: extension, defaults to None + :type extension: CompanyAnsweringRuleCallersInfoRequest, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List , defaults to None + :type greetings: List[GreetingInfo], optional + """ + + def __init__( + self, + enabled: bool = None, + name: str = None, + callers: List[CompanyAnsweringRuleCallersInfoRequest] = None, + called_numbers: List[CompanyAnsweringRuleCalledNumberInfo] = None, + schedule: CompanyAnsweringRuleScheduleInfoRequest = None, + call_handling_action: CompanyAnsweringRuleUpdateCallHandlingAction = None, + type_: CompanyAnsweringRuleUpdateType = None, + extension: CompanyAnsweringRuleCallersInfoRequest = None, + greetings: List[GreetingInfo] = None, + ): + if enabled is not None: + self.enabled = enabled + if name is not None: + self.name = name + if callers is not None: + self.callers = self._define_list( + callers, CompanyAnsweringRuleCallersInfoRequest + ) + if called_numbers is not None: + self.called_numbers = self._define_list( + called_numbers, CompanyAnsweringRuleCalledNumberInfo + ) + if schedule is not None: + self.schedule = self._define_object( + schedule, CompanyAnsweringRuleScheduleInfoRequest + ) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + CompanyAnsweringRuleUpdateCallHandlingAction.list(), + "call_handling_action", + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, CompanyAnsweringRuleUpdateType.list(), "type_" + ) + if extension is not None: + self.extension = self._define_object( + extension, CompanyAnsweringRuleCallersInfoRequest + ) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) diff --git a/src/ring_central/models/company_answering_rule_weekly_schedule_info_request.py b/src/ring_central/models/company_answering_rule_weekly_schedule_info_request.py new file mode 100644 index 00000000..0d8b4a64 --- /dev/null +++ b/src/ring_central/models/company_answering_rule_weekly_schedule_info_request.py @@ -0,0 +1,69 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_answering_rule_time_interval_request import ( + CompanyAnsweringRuleTimeIntervalRequest, +) + + +@JsonMap({}) +class CompanyAnsweringRuleWeeklyScheduleInfoRequest(BaseModel): + """Weekly schedule. If specified, ranges cannot be specified + + :param monday: Time interval for a particular day, defaults to None + :type monday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param tuesday: Time interval for a particular day, defaults to None + :type tuesday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param wednesday: Time interval for a particular day, defaults to None + :type wednesday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param thursday: Time interval for a particular day, defaults to None + :type thursday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param friday: Time interval for a particular day, defaults to None + :type friday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param saturday: Time interval for a particular day, defaults to None + :type saturday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + :param sunday: Time interval for a particular day, defaults to None + :type sunday: List[CompanyAnsweringRuleTimeIntervalRequest], optional + """ + + def __init__( + self, + monday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + tuesday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + wednesday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + thursday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + friday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + saturday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + sunday: List[CompanyAnsweringRuleTimeIntervalRequest] = None, + ): + if monday is not None: + self.monday = self._define_list( + monday, CompanyAnsweringRuleTimeIntervalRequest + ) + if tuesday is not None: + self.tuesday = self._define_list( + tuesday, CompanyAnsweringRuleTimeIntervalRequest + ) + if wednesday is not None: + self.wednesday = self._define_list( + wednesday, CompanyAnsweringRuleTimeIntervalRequest + ) + if thursday is not None: + self.thursday = self._define_list( + thursday, CompanyAnsweringRuleTimeIntervalRequest + ) + if friday is not None: + self.friday = self._define_list( + friday, CompanyAnsweringRuleTimeIntervalRequest + ) + if saturday is not None: + self.saturday = self._define_list( + saturday, CompanyAnsweringRuleTimeIntervalRequest + ) + if sunday is not None: + self.sunday = self._define_list( + sunday, CompanyAnsweringRuleTimeIntervalRequest + ) diff --git a/src/ring_central/models/company_business_hours.py b/src/ring_central/models/company_business_hours.py new file mode 100644 index 00000000..ed575338 --- /dev/null +++ b/src/ring_central/models/company_business_hours.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_business_hours_schedule_info import CompanyBusinessHoursScheduleInfo + + +@JsonMap({}) +class CompanyBusinessHours(BaseModel): + """CompanyBusinessHours + + :param uri: Canonical URI of a business-hours resource , defaults to None + :type uri: str, optional + :param schedule: Schedule when an answering rule is applied, defaults to None + :type schedule: CompanyBusinessHoursScheduleInfo, optional + """ + + def __init__( + self, uri: str = None, schedule: CompanyBusinessHoursScheduleInfo = None + ): + if uri is not None: + self.uri = uri + if schedule is not None: + self.schedule = self._define_object( + schedule, CompanyBusinessHoursScheduleInfo + ) diff --git a/src/ring_central/models/company_business_hours_schedule_info.py b/src/ring_central/models/company_business_hours_schedule_info.py new file mode 100644 index 00000000..5b2688e3 --- /dev/null +++ b/src/ring_central/models/company_business_hours_schedule_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .weekly_schedule_info import WeeklyScheduleInfo + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class CompanyBusinessHoursScheduleInfo(BaseModel): + """Schedule when an answering rule is applied + + :param weekly_ranges: Weekly schedule, defaults to None + :type weekly_ranges: WeeklyScheduleInfo, optional + """ + + def __init__(self, weekly_ranges: WeeklyScheduleInfo = None): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object(weekly_ranges, WeeklyScheduleInfo) diff --git a/src/ring_central/models/company_business_hours_update_request.py b/src/ring_central/models/company_business_hours_update_request.py new file mode 100644 index 00000000..1b0d9c8f --- /dev/null +++ b/src/ring_central/models/company_business_hours_update_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .company_business_hours_schedule_info import CompanyBusinessHoursScheduleInfo + + +@JsonMap({}) +class CompanyBusinessHoursUpdateRequest(BaseModel): + """CompanyBusinessHoursUpdateRequest + + :param schedule: Schedule when an answering rule is applied, defaults to None + :type schedule: CompanyBusinessHoursScheduleInfo, optional + """ + + def __init__(self, schedule: CompanyBusinessHoursScheduleInfo = None): + if schedule is not None: + self.schedule = self._define_object( + schedule, CompanyBusinessHoursScheduleInfo + ) diff --git a/src/ring_central/models/company_hours_options.py b/src/ring_central/models/company_hours_options.py new file mode 100644 index 00000000..cd6f30c0 --- /dev/null +++ b/src/ring_central/models/company_hours_options.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class CompanyHoursOptions(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CompanyHoursOptions._member_map_.values())) diff --git a/src/ring_central/models/company_phone_number_info.py b/src/ring_central/models/company_phone_number_info.py new file mode 100644 index 00000000..be983172 --- /dev/null +++ b/src/ring_central/models/company_phone_number_info.py @@ -0,0 +1,236 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_basic_model import CountryInfoBasicModel +from .extension_info import ExtensionInfo +from .platform_payment_type import PlatformPaymentType +from .temporary_number_info import TemporaryNumberInfo +from .contact_center_provider import ContactCenterProvider + + +class CompanyPhoneNumberInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar PORTEDIN: "PortedIn" + :vartype PORTEDIN: str + :cvar TEMPORARY: "Temporary" + :vartype TEMPORARY: str + """ + + NORMAL = "Normal" + PENDING = "Pending" + PORTEDIN = "PortedIn" + TEMPORARY = "Temporary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CompanyPhoneNumberInfoStatus._member_map_.values()) + ) + + +class CompanyPhoneNumberInfoType(Enum): + """An enumeration representing different categories. + + :cvar VOICEFAX: "VoiceFax" + :vartype VOICEFAX: str + :cvar FAXONLY: "FaxOnly" + :vartype FAXONLY: str + :cvar VOICEONLY: "VoiceOnly" + :vartype VOICEONLY: str + """ + + VOICEFAX = "VoiceFax" + FAXONLY = "FaxOnly" + VOICEONLY = "VoiceOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CompanyPhoneNumberInfoType._member_map_.values()) + ) + + +class CompanyPhoneNumberInfoUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar MEETINGSNUMBER: "MeetingsNumber" + :vartype MEETINGSNUMBER: str + :cvar NUMBERPOOL: "NumberPool" + :vartype NUMBERPOOL: str + :cvar BUSINESSMOBILENUMBER: "BusinessMobileNumber" + :vartype BUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + :cvar INTEGRATIONNUMBER: "IntegrationNumber" + :vartype INTEGRATIONNUMBER: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + CONFERENCINGNUMBER = "ConferencingNumber" + MEETINGSNUMBER = "MeetingsNumber" + NUMBERPOOL = "NumberPool" + BUSINESSMOBILENUMBER = "BusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + INTEGRATIONNUMBER = "IntegrationNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, CompanyPhoneNumberInfoUsageType._member_map_.values() + ) + ) + + +@JsonMap( + { + "id_": "id", + "payment_type": "paymentType", + "phone_number": "phoneNumber", + "type_": "type", + "usage_type": "usageType", + "temporary_number": "temporaryNumber", + "contact_center_provider": "contactCenterProvider", + "vanity_pattern": "vanityPattern", + } +) +class CompanyPhoneNumberInfo(BaseModel): + """CompanyPhoneNumberInfo + + :param uri: Link to a company phone number resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a phone number, defaults to None + :type id_: int, optional + :param country: country, defaults to None + :type country: CountryInfoBasicModel, optional + :param extension: Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list , defaults to None + :type extension: ExtensionInfo, optional + :param label: Custom user-defined name of a phone number, if any, defaults to None + :type label: str, optional + :param location: Location (City, State). Filled for local US numbers, defaults to None + :type location: str, optional + :param payment_type: Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system , defaults to None + :type payment_type: PlatformPaymentType, optional + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param status: Status of a phone number. If the value is 'Normal', the phone number is ready to be used. If the value is 'Pending' it is an external number not yet ported to RingCentral. , defaults to None + :type status: CompanyPhoneNumberInfoStatus, optional + :param type_: Phone number type, defaults to None + :type type_: CompanyPhoneNumberInfoType, optional + :param usage_type: Usage type of phone number. Usage type of phone number. Numbers of 'NumberPool' type are not returned in phone number list requests , defaults to None + :type usage_type: CompanyPhoneNumberInfoUsageType, optional + :param temporary_number: Temporary phone number, if any. Returned for phone numbers in `Pending` porting status only , defaults to None + :type temporary_number: TemporaryNumberInfo, optional + :param contact_center_provider: CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' , defaults to None + :type contact_center_provider: ContactCenterProvider, optional + :param vanity_pattern: Vanity pattern for this number. Returned only when vanity search option is requested. Vanity pattern corresponds to request parameters `nxx` plus `line` or `numberPattern`, defaults to None + :type vanity_pattern: str, optional + :param primary: Specifies if a phone number is primary, i.e. displayed as 'main number' and called by default, defaults to None + :type primary: bool, optional + """ + + def __init__( + self, + uri: str = None, + id_: int = None, + country: CountryInfoBasicModel = None, + extension: ExtensionInfo = None, + label: str = None, + location: str = None, + payment_type: PlatformPaymentType = None, + phone_number: str = None, + status: CompanyPhoneNumberInfoStatus = None, + type_: CompanyPhoneNumberInfoType = None, + usage_type: CompanyPhoneNumberInfoUsageType = None, + temporary_number: TemporaryNumberInfo = None, + contact_center_provider: ContactCenterProvider = None, + vanity_pattern: str = None, + primary: bool = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if country is not None: + self.country = self._define_object(country, CountryInfoBasicModel) + if extension is not None: + self.extension = self._define_object(extension, ExtensionInfo) + if label is not None: + self.label = label + if location is not None: + self.location = location + if payment_type is not None: + self.payment_type = self._enum_matching( + payment_type, PlatformPaymentType.list(), "payment_type" + ) + if phone_number is not None: + self.phone_number = phone_number + if status is not None: + self.status = self._enum_matching( + status, CompanyPhoneNumberInfoStatus.list(), "status" + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, CompanyPhoneNumberInfoType.list(), "type_" + ) + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, CompanyPhoneNumberInfoUsageType.list(), "usage_type" + ) + if temporary_number is not None: + self.temporary_number = self._define_object( + temporary_number, TemporaryNumberInfo + ) + if contact_center_provider is not None: + self.contact_center_provider = self._define_object( + contact_center_provider, ContactCenterProvider + ) + if vanity_pattern is not None: + self.vanity_pattern = vanity_pattern + if primary is not None: + self.primary = primary diff --git a/src/ring_central/models/conference_phone_number_info.py b/src/ring_central/models/conference_phone_number_info.py new file mode 100644 index 00000000..be10096b --- /dev/null +++ b/src/ring_central/models/conference_phone_number_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class ConferencePhoneNumberInfo(BaseModel): + """ConferencePhoneNumberInfo + + :param phone_number: Dial-in phone number to connect to a conference, defaults to None + :type phone_number: str, optional + :param default: The value should be `true` if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed , defaults to None + :type default: bool, optional + """ + + def __init__(self, phone_number: str = None, default: bool = None): + if phone_number is not None: + self.phone_number = phone_number + if default is not None: + self.default = default diff --git a/src/ring_central/models/conference_type.py b/src/ring_central/models/conference_type.py new file mode 100644 index 00000000..5355fbc8 --- /dev/null +++ b/src/ring_central/models/conference_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ConferenceType(Enum): + """An enumeration representing different categories. + + :cvar AUDIOCONFERENCING: "AudioConferencing" + :vartype AUDIOCONFERENCING: str + :cvar MEETINGS: "Meetings" + :vartype MEETINGS: str + """ + + AUDIOCONFERENCING = "AudioConferencing" + MEETINGS = "Meetings" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ConferenceType._member_map_.values())) diff --git a/src/ring_central/models/contact_address_info.py b/src/ring_central/models/contact_address_info.py new file mode 100644 index 00000000..9ad68d14 --- /dev/null +++ b/src/ring_central/models/contact_address_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ContactAddressInfo(BaseModel): + """ContactAddressInfo + + :param street: Street address, defaults to None + :type street: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param zip: Zip/Postal code, defaults to None + :type zip: str, optional + """ + + def __init__( + self, + street: str = None, + city: str = None, + country: str = None, + state: str = None, + zip: str = None, + ): + if street is not None: + self.street = street + if city is not None: + self.city = city + if country is not None: + self.country = country + if state is not None: + self.state = state + if zip is not None: + self.zip = zip diff --git a/src/ring_central/models/contact_address_info_resource.py b/src/ring_central/models/contact_address_info_resource.py new file mode 100644 index 00000000..1456aa80 --- /dev/null +++ b/src/ring_central/models/contact_address_info_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ContactAddressInfoResource(BaseModel): + """ContactAddressInfoResource + + :param street: street, defaults to None + :type street: str, optional + :param city: city, defaults to None + :type city: str, optional + :param state: state, defaults to None + :type state: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param country: country, defaults to None + :type country: str, optional + """ + + def __init__( + self, + street: str = None, + city: str = None, + state: str = None, + zip: str = None, + country: str = None, + ): + if street is not None: + self.street = street + if city is not None: + self.city = city + if state is not None: + self.state = state + if zip is not None: + self.zip = zip + if country is not None: + self.country = country diff --git a/src/ring_central/models/contact_business_address_info.py b/src/ring_central/models/contact_business_address_info.py new file mode 100644 index 00000000..8a2652d9 --- /dev/null +++ b/src/ring_central/models/contact_business_address_info.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ContactBusinessAddressInfo(BaseModel): + """User's business address. The default is + Company (Auto-Receptionist) settings + + + :param country: Country name of a user's company, defaults to None + :type country: str, optional + :param state: State/province name of a user's company. Mandatory for the USA, UK and Canada , defaults to None + :type state: str, optional + :param city: City name of a user's company, defaults to None + :type city: str, optional + :param street: Street address of a user's company, defaults to None + :type street: str, optional + :param zip: Zip code of a user's company, defaults to None + :type zip: str, optional + """ + + def __init__( + self, + country: str = None, + state: str = None, + city: str = None, + street: str = None, + zip: str = None, + ): + if country is not None: + self.country = country + if state is not None: + self.state = state + if city is not None: + self.city = city + if street is not None: + self.street = street + if zip is not None: + self.zip = zip diff --git a/src/ring_central/models/contact_center_provider.py b/src/ring_central/models/contact_center_provider.py new file mode 100644 index 00000000..25767224 --- /dev/null +++ b/src/ring_central/models/contact_center_provider.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ContactCenterProvider(BaseModel): + """CCRN (Contact Center Routing Number) provider. If not specified + then the default value 'InContact/North America' is used, its ID is '1' + + + :param id_: Internal identifier of the provider, defaults to None + :type id_: str, optional + :param name: Provider's name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/contact_info.py b/src/ring_central/models/contact_info.py new file mode 100644 index 00000000..1712b618 --- /dev/null +++ b/src/ring_central/models/contact_info.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .pronounced_name_info import PronouncedNameInfo + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": "businessAddress", + "email_as_login_name": "emailAsLoginName", + "pronounced_name": "pronouncedName", + } +) +class ContactInfo(BaseModel): + """Detailed contact information + + :param first_name: User's first name (for extensions of `User` type only) , defaults to None + :type first_name: str, optional + :param last_name: For User extension type only. User's last name (for extensions of `User` type only) , defaults to None + :type last_name: str, optional + :param name: Extension name (for extensions of `User` type - concatenation of first and last name) , defaults to None + :type name: str, optional + :param company: User's company name, defaults to None + :type company: str, optional + :param job_title: User's job title, defaults to None + :type job_title: str, optional + :param email: User's contact email, defaults to None + :type email: str, optional + :param business_phone: User's contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type business_phone: str, optional + :param mobile_phone: User's mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type mobile_phone: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param email_as_login_name: Indicates that the contact email is enabled as a login name for this user. Please note that the email must be unique in this case. , defaults to None + :type email_as_login_name: bool, optional + :param pronounced_name: pronounced_name, defaults to None + :type pronounced_name: PronouncedNameInfo, optional + :param department: User's department name , defaults to None + :type department: str, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + name: str = None, + company: str = None, + job_title: str = None, + email: str = None, + business_phone: str = None, + mobile_phone: str = None, + business_address: ContactBusinessAddressInfo = None, + email_as_login_name: bool = None, + pronounced_name: PronouncedNameInfo = None, + department: str = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if name is not None: + self.name = name + if company is not None: + self.company = company + if job_title is not None: + self.job_title = job_title + if email is not None: + self.email = email + if business_phone is not None: + self.business_phone = business_phone + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if email_as_login_name is not None: + self.email_as_login_name = email_as_login_name + if pronounced_name is not None: + self.pronounced_name = self._define_object( + pronounced_name, PronouncedNameInfo + ) + if department is not None: + self.department = department diff --git a/src/ring_central/models/contact_info_creation_request.py b/src/ring_central/models/contact_info_creation_request.py new file mode 100644 index 00000000..9d9589af --- /dev/null +++ b/src/ring_central/models/contact_info_creation_request.py @@ -0,0 +1,88 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .pronounced_name_info import PronouncedNameInfo + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": "businessAddress", + "email_as_login_name": "emailAsLoginName", + "pronounced_name": "pronouncedName", + } +) +class ContactInfoCreationRequest(BaseModel): + """Contact Information + + :param first_name: For User extension type only. Extension user first name , defaults to None + :type first_name: str, optional + :param last_name: For User extension type only. Extension user last name , defaults to None + :type last_name: str, optional + :param company: Extension user company name, defaults to None + :type company: str, optional + :param job_title: job_title, defaults to None + :type job_title: str, optional + :param email: Email of extension user, defaults to None + :type email: str, optional + :param business_phone: Extension user contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format , defaults to None + :type business_phone: str, optional + :param mobile_phone: Extension user mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type mobile_phone: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param email_as_login_name: If `true` then contact email is enabled as login name for this user. Please note that email should be unique in this case. The default value is `false` , defaults to None + :type email_as_login_name: bool, optional + :param pronounced_name: pronounced_name, defaults to None + :type pronounced_name: PronouncedNameInfo, optional + :param department: Extension user department, if any, defaults to None + :type department: str, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + company: str = None, + job_title: str = None, + email: str = None, + business_phone: str = None, + mobile_phone: str = None, + business_address: ContactBusinessAddressInfo = None, + email_as_login_name: bool = None, + pronounced_name: PronouncedNameInfo = None, + department: str = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if company is not None: + self.company = company + if job_title is not None: + self.job_title = job_title + if email is not None: + self.email = email + if business_phone is not None: + self.business_phone = business_phone + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if email_as_login_name is not None: + self.email_as_login_name = email_as_login_name + if pronounced_name is not None: + self.pronounced_name = self._define_object( + pronounced_name, PronouncedNameInfo + ) + if department is not None: + self.department = department diff --git a/src/ring_central/models/contact_info_update_request.py b/src/ring_central/models/contact_info_update_request.py new file mode 100644 index 00000000..f263255c --- /dev/null +++ b/src/ring_central/models/contact_info_update_request.py @@ -0,0 +1,88 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .pronounced_name_info import PronouncedNameInfo + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "business_phone": "businessPhone", + "mobile_phone": "mobilePhone", + "business_address": "businessAddress", + "email_as_login_name": "emailAsLoginName", + "pronounced_name": "pronouncedName", + } +) +class ContactInfoUpdateRequest(BaseModel): + """ContactInfoUpdateRequest + + :param first_name: For User extension type only. Extension user first name , defaults to None + :type first_name: str, optional + :param last_name: For User extension type only. Extension user last name , defaults to None + :type last_name: str, optional + :param company: Extension user company name, defaults to None + :type company: str, optional + :param job_title: job_title, defaults to None + :type job_title: str, optional + :param email: Email of extension user, defaults to None + :type email: str, optional + :param business_phone: Extension user contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format , defaults to None + :type business_phone: str, optional + :param mobile_phone: Extension user mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type mobile_phone: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param email_as_login_name: If `true` then contact email is enabled as login name for this user. Please note that email should be unique in this case. The default value is `false` , defaults to None + :type email_as_login_name: bool, optional + :param pronounced_name: pronounced_name, defaults to None + :type pronounced_name: PronouncedNameInfo, optional + :param department: Extension user department, if any, defaults to None + :type department: str, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + company: str = None, + job_title: str = None, + email: str = None, + business_phone: str = None, + mobile_phone: str = None, + business_address: ContactBusinessAddressInfo = None, + email_as_login_name: bool = None, + pronounced_name: PronouncedNameInfo = None, + department: str = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if company is not None: + self.company = company + if job_title is not None: + self.job_title = job_title + if email is not None: + self.email = email + if business_phone is not None: + self.business_phone = business_phone + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if email_as_login_name is not None: + self.email_as_login_name = email_as_login_name + if pronounced_name is not None: + self.pronounced_name = self._define_object( + pronounced_name, PronouncedNameInfo + ) + if department is not None: + self.department = department diff --git a/src/ring_central/models/contact_list.py b/src/ring_central/models/contact_list.py new file mode 100644 index 00000000..8c8361b6 --- /dev/null +++ b/src/ring_central/models/contact_list.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .personal_contact_resource import PersonalContactResource +from .user_contacts_navigation_info import UserContactsNavigationInfo +from .user_contacts_paging_info import UserContactsPagingInfo +from .user_contacts_groups_info import UserContactsGroupsInfo + + +@JsonMap({}) +class ContactList(BaseModel): + """ContactList + + :param uri: Link to the list of user personal contacts, defaults to None + :type uri: str, optional + :param records: List of personal contacts from the extension address book , defaults to None + :type records: List[PersonalContactResource], optional + :param navigation: Information on navigation, defaults to None + :type navigation: UserContactsNavigationInfo, optional + :param paging: Information on paging, defaults to None + :type paging: UserContactsPagingInfo, optional + :param groups: Information on address book groups, defaults to None + :type groups: UserContactsGroupsInfo, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PersonalContactResource] = None, + navigation: UserContactsNavigationInfo = None, + paging: UserContactsPagingInfo = None, + groups: UserContactsGroupsInfo = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PersonalContactResource) + if navigation is not None: + self.navigation = self._define_object( + navigation, UserContactsNavigationInfo + ) + if paging is not None: + self.paging = self._define_object(paging, UserContactsPagingInfo) + if groups is not None: + self.groups = self._define_object(groups, UserContactsGroupsInfo) diff --git a/src/ring_central/models/contact_resource.py b/src/ring_central/models/contact_resource.py new file mode 100644 index 00000000..f66af4f8 --- /dev/null +++ b/src/ring_central/models/contact_resource.py @@ -0,0 +1,268 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_resource import AccountResource +from .phone_number_resource import PhoneNumberResource +from .account_directory_profile_image_resource import ( + AccountDirectoryProfileImageResource, +) +from .business_site_resource import BusinessSiteResource +from .directory_role_resource import DirectoryRoleResource +from .call_queue_resource import CallQueueResource +from .custom_field_resource import CustomFieldResource +from .group_resource import GroupResource +from .cost_center_resource import CostCenterResource +from .external_integration_resource import ExternalIntegrationResource +from .contact_sub_type_enum import ContactSubTypeEnum + + +class ContactResourceType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar SITE: "Site" + :vartype SITE: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar PROXYADMIN: "ProxyAdmin" + :vartype PROXYADMIN: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + :cvar ROOMCONNECTOR: "RoomConnector" + :vartype ROOMCONNECTOR: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + USER = "User" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + PARKLOCATION = "ParkLocation" + IVRMENU = "IvrMenu" + LIMITED = "Limited" + APPLICATIONEXTENSION = "ApplicationExtension" + SITE = "Site" + BOT = "Bot" + ROOM = "Room" + PROXYADMIN = "ProxyAdmin" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + GROUPCALLPICKUP = "GroupCallPickup" + EXTERNAL = "External" + ROOMCONNECTOR = "RoomConnector" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContactResourceType._member_map_.values())) + + +class ContactResourceStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + FROZEN = "Frozen" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContactResourceStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "extension_number": "extensionNumber", + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "phone_numbers": "phoneNumbers", + "profile_image": "profileImage", + "call_queues": "callQueues", + "custom_fields": "customFields", + "cost_center": "costCenter", + "sub_type": "subType", + } +) +class ContactResource(BaseModel): + """ContactResource + + :param id_: Contact extension identifier + :type id_: str + :param type_: Contact type, defaults to None + :type type_: ContactResourceType, optional + :param status: Contact status, defaults to None + :type status: ContactResourceStatus, optional + :param account: account, defaults to None + :type account: AccountResource, optional + :param department: department, defaults to None + :type department: str, optional + :param email: email, defaults to None + :type email: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + :param first_name: First name of a contact, for user extensions only, defaults to None + :type first_name: str, optional + :param last_name: Last name of a contact, for user extensions only, defaults to None + :type last_name: str, optional + :param name: Name of a contact, for non-user extensions, defaults to None + :type name: str, optional + :param job_title: job_title, defaults to None + :type job_title: str, optional + :param phone_numbers: phone_numbers, defaults to None + :type phone_numbers: List[PhoneNumberResource], optional + :param profile_image: profile_image, defaults to None + :type profile_image: AccountDirectoryProfileImageResource, optional + :param site: site, defaults to None + :type site: BusinessSiteResource, optional + :param hidden: hidden, defaults to None + :type hidden: bool, optional + :param role: role, defaults to None + :type role: DirectoryRoleResource, optional + :param call_queues: call_queues, defaults to None + :type call_queues: List[CallQueueResource], optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldResource], optional + :param groups: groups, defaults to None + :type groups: List[GroupResource], optional + :param cost_center: cost_center, defaults to None + :type cost_center: CostCenterResource, optional + :param integration: integration, defaults to None + :type integration: ExternalIntegrationResource, optional + :param sub_type: Extension subtype, defaults to None + :type sub_type: ContactSubTypeEnum, optional + """ + + def __init__( + self, + id_: str, + type_: ContactResourceType = None, + status: ContactResourceStatus = None, + account: AccountResource = None, + department: str = None, + email: str = None, + extension_number: str = None, + first_name: str = None, + last_name: str = None, + name: str = None, + job_title: str = None, + phone_numbers: List[PhoneNumberResource] = None, + profile_image: AccountDirectoryProfileImageResource = None, + site: BusinessSiteResource = None, + hidden: bool = None, + role: DirectoryRoleResource = None, + call_queues: List[CallQueueResource] = None, + custom_fields: List[CustomFieldResource] = None, + groups: List[GroupResource] = None, + cost_center: CostCenterResource = None, + integration: ExternalIntegrationResource = None, + sub_type: ContactSubTypeEnum = None, + ): + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching(type_, ContactResourceType.list(), "type_") + if status is not None: + self.status = self._enum_matching( + status, ContactResourceStatus.list(), "status" + ) + if account is not None: + self.account = self._define_object(account, AccountResource) + if department is not None: + self.department = department + if email is not None: + self.email = email + if extension_number is not None: + self.extension_number = extension_number + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if name is not None: + self.name = name + if job_title is not None: + self.job_title = job_title + if phone_numbers is not None: + self.phone_numbers = self._define_list(phone_numbers, PhoneNumberResource) + if profile_image is not None: + self.profile_image = self._define_object( + profile_image, AccountDirectoryProfileImageResource + ) + if site is not None: + self.site = self._define_object(site, BusinessSiteResource) + if hidden is not None: + self.hidden = hidden + if role is not None: + self.role = self._define_object(role, DirectoryRoleResource) + if call_queues is not None: + self.call_queues = self._define_list(call_queues, CallQueueResource) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldResource) + if groups is not None: + self.groups = self._define_list(groups, GroupResource) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterResource) + if integration is not None: + self.integration = self._define_object( + integration, ExternalIntegrationResource + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, ContactSubTypeEnum.list(), "sub_type" + ) diff --git a/src/ring_central/models/contact_sub_type_enum.py b/src/ring_central/models/contact_sub_type_enum.py new file mode 100644 index 00000000..6bc732c6 --- /dev/null +++ b/src/ring_central/models/contact_sub_type_enum.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContactSubTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar VIDEOPRO: "VideoPro" + :vartype VIDEOPRO: str + :cvar VIDEOPROPLUS: "VideoProPlus" + :vartype VIDEOPROPLUS: str + :cvar DIGITALSIGNAGE: "DigitalSignage" + :vartype DIGITALSIGNAGE: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + UNKNOWN = "Unknown" + VIDEOPRO = "VideoPro" + VIDEOPROPLUS = "VideoProPlus" + DIGITALSIGNAGE = "DigitalSignage" + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContactSubTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/content_attachment.py b/src/ring_central/models/content_attachment.py new file mode 100644 index 00000000..13c86041 --- /dev/null +++ b/src/ring_central/models/content_attachment.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "content_type": "contentType", + "creation_time": "creationTime", + "id_": "id", + "last_modified_time": "lastModifiedTime", + } +) +class ContentAttachment(BaseModel): + """ContentAttachment + + :param content_type: Type of the attachment, which is generally a MIME attachment type like "image/jpeg", etc. Security level in ED determines what type of attachment is allowed. Based on the security level the following attachment types are supported. "Strict" level allows safe extensions below: Content name and supported types * audio (supports aac mp3 ogg m4a) * image (supports bmp gif jpg jpeg png svg webp) * pdf (supports pdf) * text (supports csv txt log) * video (supports avi flv m4v mkv mov mp4 mpg qt wmv) * other (supports amr dms vcard tif tiff mpeg) "Relaxed" level allows documents: Content name and supported types * excel (supports xls xlsm xlsx xlc xlt xltm xltx) * presentation (supports key odp otp) * powerpoint (supports pps ppt pptx pot) * spreadsheet (supports numbers ods ots) * word (supports doc docm docx dotm dotx) * word_processing (supports pages odt ott rtf) "Permissive" level allows all documents. However, there are no security level restrictions for content posted through the channel. , defaults to None + :type content_type: str, optional + :param creation_time: Creation time of the attachment., defaults to None + :type creation_time: str, optional + :param embedded: Embedded in a content., defaults to None + :type embedded: bool, optional + :param filename: Filename of the attachment., defaults to None + :type filename: str, optional + :param id_: Identifier of the attachment., defaults to None + :type id_: str, optional + :param public: Privacy setting of the attachment., defaults to None + :type public: bool, optional + :param size: Size of the attachment., defaults to None + :type size: int, optional + :param last_modified_time: The time when the last modification was completed., defaults to None + :type last_modified_time: str, optional + :param uri: Uri of the attachment., defaults to None + :type uri: str, optional + """ + + def __init__( + self, + content_type: str = None, + creation_time: str = None, + embedded: bool = None, + filename: str = None, + id_: str = None, + public: bool = None, + size: int = None, + last_modified_time: str = None, + uri: str = None, + ): + if content_type is not None: + self.content_type = content_type + if creation_time is not None: + self.creation_time = creation_time + if embedded is not None: + self.embedded = embedded + if filename is not None: + self.filename = filename + if id_ is not None: + self.id_ = id_ + if public is not None: + self.public = public + if size is not None: + self.size = size + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/content_body_formatted.py b/src/ring_central/models/content_body_formatted.py new file mode 100644 index 00000000..e293dd53 --- /dev/null +++ b/src/ring_central/models/content_body_formatted.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ContentBodyFormatted(BaseModel): + """Text and HTML formatted versions of the content body. + + :param html: html, defaults to None + :type html: str, optional + :param text: text, defaults to None + :type text: str, optional + """ + + def __init__(self, html: str = None, text: str = None): + if html is not None: + self.html = html + if text is not None: + self.text = text diff --git a/src/ring_central/models/content_body_input_format.py b/src/ring_central/models/content_body_input_format.py new file mode 100644 index 00000000..90007c49 --- /dev/null +++ b/src/ring_central/models/content_body_input_format.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentBodyInputFormat(Enum): + """An enumeration representing different categories. + + :cvar TEXT: "Text" + :vartype TEXT: str + :cvar HTML: "Html" + :vartype HTML: str + """ + + TEXT = "Text" + HTML = "Html" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ContentBodyInputFormat._member_map_.values()) + ) diff --git a/src/ring_central/models/content_components.py b/src/ring_central/models/content_components.py new file mode 100644 index 00000000..123523ad --- /dev/null +++ b/src/ring_central/models/content_components.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"type_": "type"}) +class Parameters(BaseModel): + """Parameters + + :param type_: type_, defaults to None + :type type_: str, optional + :param text: text, defaults to None + :type text: str, optional + """ + + def __init__(self, type_: str = None, text: str = None): + if type_ is not None: + self.type_ = type_ + if text is not None: + self.text = text + + +@JsonMap({"type_": "type"}) +class ContentComponents(BaseModel): + """ContentComponents + + :param type_: type_, defaults to None + :type type_: str, optional + :param parameters: parameters, defaults to None + :type parameters: List[Parameters], optional + """ + + def __init__(self, type_: str = None, parameters: List[Parameters] = None): + if type_ is not None: + self.type_ = type_ + if parameters is not None: + self.parameters = self._define_list(parameters, Parameters) diff --git a/src/ring_central/models/content_created_from.py b/src/ring_central/models/content_created_from.py new file mode 100644 index 00000000..45d0964e --- /dev/null +++ b/src/ring_central/models/content_created_from.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentCreatedFrom(Enum): + """An enumeration representing different categories. + + :cvar SYNCHRONIZER: "Synchronizer" + :vartype SYNCHRONIZER: str + :cvar INTERFACE: "Interface" + :vartype INTERFACE: str + :cvar API: "Api" + :vartype API: str + :cvar AUTOSURVEY: "AutoSurvey" + :vartype AUTOSURVEY: str + :cvar AUTORESPONSETRIGGER: "AutoResponseTrigger" + :vartype AUTORESPONSETRIGGER: str + :cvar AUTOREQUESTEMAIL: "AutoRequestEmail" + :vartype AUTOREQUESTEMAIL: str + """ + + SYNCHRONIZER = "Synchronizer" + INTERFACE = "Interface" + API = "Api" + AUTOSURVEY = "AutoSurvey" + AUTORESPONSETRIGGER = "AutoResponseTrigger" + AUTOREQUESTEMAIL = "AutoRequestEmail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContentCreatedFrom._member_map_.values())) diff --git a/src/ring_central/models/content_disposition.py b/src/ring_central/models/content_disposition.py new file mode 100644 index 00000000..1db95ab7 --- /dev/null +++ b/src/ring_central/models/content_disposition.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentDisposition(Enum): + """An enumeration representing different categories. + + :cvar INLINE: "Inline" + :vartype INLINE: str + :cvar ATTACHMENT: "Attachment" + :vartype ATTACHMENT: str + """ + + INLINE = "Inline" + ATTACHMENT = "Attachment" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContentDisposition._member_map_.values())) diff --git a/src/ring_central/models/content_list.py b/src/ring_central/models/content_list.py new file mode 100644 index 00000000..44b9b776 --- /dev/null +++ b/src/ring_central/models/content_list.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .content_model import ContentModel +from .non_enumerated_paging_model import NonEnumeratedPagingModel + + +@JsonMap({}) +class ContentList(BaseModel): + """ContentList + + :param records: records + :type records: List[ContentModel] + :param paging: paging + :type paging: NonEnumeratedPagingModel + """ + + def __init__(self, records: List[ContentModel], paging: NonEnumeratedPagingModel): + self.records = self._define_list(records, ContentModel) + self.paging = self._define_object(paging, NonEnumeratedPagingModel) diff --git a/src/ring_central/models/content_model.py b/src/ring_central/models/content_model.py new file mode 100644 index 00000000..8a7f217c --- /dev/null +++ b/src/ring_central/models/content_model.py @@ -0,0 +1,187 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .content_attachment import ContentAttachment +from .content_body_formatted import ContentBodyFormatted +from .content_body_input_format import ContentBodyInputFormat +from .content_created_from import ContentCreatedFrom +from .content_source_type import ContentSourceType +from .content_status import ContentStatus +from .content_type import ContentType + + +@JsonMap( + { + "author_identity_id": "authorIdentityId", + "auto_submitted": "autoSubmitted", + "body_formatted": "bodyFormatted", + "body_input_format": "bodyInputFormat", + "category_ids": "categoryIds", + "context_data": "contextData", + "creation_time": "creationTime", + "created_from": "createdFrom", + "creator_id": "creatorId", + "foreign_categories": "foreignCategories", + "id_": "id", + "in_reply_to_author_identity_id": "inReplyToAuthorIdentityId", + "in_reply_to_content_id": "inReplyToContentId", + "intervention_id": "interventionId", + "remotely_deleted": "remotelyDeleted", + "source_id": "sourceId", + "source_type": "sourceType", + "source_uri": "sourceUri", + "synchronization_status": "synchronizationStatus", + "synchronization_error": "synchronizationError", + "thread_id": "threadId", + "type_": "type", + "last_modified_time": "lastModifiedTime", + "capabilities_supported": "capabilitiesSupported", + } +) +class ContentModel(BaseModel): + """ContentModel + + :param attachments: An array containing the attachments that are attached to the content. + :type attachments: List[ContentAttachment] + :param author_identity_id: Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel. + :type author_identity_id: str + :param auto_submitted: Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics + :type auto_submitted: bool + :param body: The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length * Apple Messages For Business (max length 10000) * Email (max length 262144) * RingCX Digital Messaging (max length 1024) * Facebook (max length 8000) * GoogleBusinessMessages (max length 3000) * Google My Business (max length 4000) * Instagram (max length 950) * Instagram Messaging (max length 1000) * LinkedIn (max length 3000) * Messenger (max length 2000) * Twitter (max length 280) * Viber (max length 7000) * WhatsApp (max length 3800) * Youtube (max length 8000) + :type body: str + :param body_formatted: Text and HTML formatted versions of the content body. + :type body_formatted: ContentBodyFormatted + :param body_input_format: Values can be Text or Html. + :type body_input_format: ContentBodyInputFormat + :param category_ids: List of the category identifiers of the content. + :type category_ids: List[str] + :param context_data: Additional data of the content. The contextData hash keys are the custom fields keys. , defaults to None + :type context_data: dict, optional + :param creation_time: Creation time of the resource. + :type creation_time: str + :param created_from: Created from of the content. + :type created_from: ContentCreatedFrom + :param creator_id: RC user id of the creator + :type creator_id: str + :param foreign_categories: External categories of the content. Present only if the content has foreignCategories. , defaults to None + :type foreign_categories: List[str], optional + :param id_: Identifier of the content. + :type id_: str + :param in_reply_to_author_identity_id: The identity identifier of the content to which this content is a reply to. + :type in_reply_to_author_identity_id: str + :param in_reply_to_content_id: The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory. + :type in_reply_to_content_id: str + :param intervention_id: The intervention identifier of the content. + :type intervention_id: str + :param language: Language of the content. + :type language: str + :param public: True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel. + :type public: bool + :param published: True if the content is published on the remote channel. + :type published: bool + :param rating: Rating of the content. Present only if the content supports rating and rating is filled. + :type rating: int + :param remotely_deleted: True if the content has been deleted on the remote channel. + :type remotely_deleted: bool + :param source_id: Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory. + :type source_id: str + :param source_type: Type of the channel. + :type source_type: ContentSourceType + :param source_uri: External Uri of the content channel. + :type source_uri: str + :param status: Content status. + :type status: ContentStatus + :param synchronization_status: Synchronization status. + :type synchronization_status: str + :param synchronization_error: Synchronization error details. + :type synchronization_error: str + :param thread_id: Content thread identifier of the content. + :type thread_id: str + :param title: Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion. + :type title: str + :param type_: Type of the content. + :type type_: ContentType + :param last_modified_time: The time when the last modification was completed. + :type last_modified_time: str + :param capabilities_supported: Types of structured messages that can be used to reply to this type of message. + :type capabilities_supported: List[str] + """ + + def __init__( + self, + attachments: List[ContentAttachment], + author_identity_id: str, + auto_submitted: bool, + body: str, + body_formatted: ContentBodyFormatted, + body_input_format: ContentBodyInputFormat, + category_ids: List[str], + creation_time: str, + created_from: ContentCreatedFrom, + creator_id: str, + id_: str, + in_reply_to_author_identity_id: str, + in_reply_to_content_id: str, + intervention_id: str, + language: str, + public: bool, + published: bool, + rating: int, + remotely_deleted: bool, + source_id: str, + source_type: ContentSourceType, + source_uri: str, + status: ContentStatus, + synchronization_status: str, + synchronization_error: str, + thread_id: str, + title: str, + type_: ContentType, + last_modified_time: str, + capabilities_supported: List[str], + context_data: dict = None, + foreign_categories: List[str] = None, + ): + self.attachments = self._define_list(attachments, ContentAttachment) + self.author_identity_id = author_identity_id + self.auto_submitted = auto_submitted + self.body = body + self.body_formatted = self._define_object(body_formatted, ContentBodyFormatted) + self.body_input_format = self._enum_matching( + body_input_format, ContentBodyInputFormat.list(), "body_input_format" + ) + self.category_ids = category_ids + if context_data is not None: + self.context_data = context_data + self.creation_time = creation_time + self.created_from = self._enum_matching( + created_from, ContentCreatedFrom.list(), "created_from" + ) + self.creator_id = creator_id + if foreign_categories is not None: + self.foreign_categories = foreign_categories + self.id_ = id_ + self.in_reply_to_author_identity_id = in_reply_to_author_identity_id + self.in_reply_to_content_id = in_reply_to_content_id + self.intervention_id = intervention_id + self.language = language + self.public = public + self.published = published + self.rating = rating + self.remotely_deleted = remotely_deleted + self.source_id = source_id + self.source_type = self._enum_matching( + source_type, ContentSourceType.list(), "source_type" + ) + self.source_uri = source_uri + self.status = self._enum_matching(status, ContentStatus.list(), "status") + self.synchronization_status = synchronization_status + self.synchronization_error = synchronization_error + self.thread_id = thread_id + self.title = title + self.type_ = self._enum_matching(type_, ContentType.list(), "type_") + self.last_modified_time = last_modified_time + self.capabilities_supported = capabilities_supported diff --git a/src/ring_central/models/content_source_type.py b/src/ring_central/models/content_source_type.py new file mode 100644 index 00000000..1b977145 --- /dev/null +++ b/src/ring_central/models/content_source_type.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentSourceType(Enum): + """An enumeration representing different categories. + + :cvar APPLEMESSAGESFORBUSINESS: "AppleMessagesForBusiness" + :vartype APPLEMESSAGESFORBUSINESS: str + :cvar EMAIL: "Email" + :vartype EMAIL: str + :cvar ENGAGEMESSAGING: "EngageMessaging" + :vartype ENGAGEMESSAGING: str + :cvar FACEBOOK: "Facebook" + :vartype FACEBOOK: str + :cvar GOOGLEBUSINESSMESSAGES: "GoogleBusinessMessages" + :vartype GOOGLEBUSINESSMESSAGES: str + :cvar GOOGLEMYBUSINESS: "GoogleMyBusiness" + :vartype GOOGLEMYBUSINESS: str + :cvar INSTAGRAM: "Instagram" + :vartype INSTAGRAM: str + :cvar INSTAGRAMMESSAGING: "InstagramMessaging" + :vartype INSTAGRAMMESSAGING: str + :cvar LINKEDIN: "Linkedin" + :vartype LINKEDIN: str + :cvar MESSENGER: "Messenger" + :vartype MESSENGER: str + :cvar TWITTER: "Twitter" + :vartype TWITTER: str + :cvar VIBER: "Viber" + :vartype VIBER: str + :cvar WHATSAPP: "WhatsApp" + :vartype WHATSAPP: str + :cvar YOUTUBE: "Youtube" + :vartype YOUTUBE: str + """ + + APPLEMESSAGESFORBUSINESS = "AppleMessagesForBusiness" + EMAIL = "Email" + ENGAGEMESSAGING = "EngageMessaging" + FACEBOOK = "Facebook" + GOOGLEBUSINESSMESSAGES = "GoogleBusinessMessages" + GOOGLEMYBUSINESS = "GoogleMyBusiness" + INSTAGRAM = "Instagram" + INSTAGRAMMESSAGING = "InstagramMessaging" + LINKEDIN = "Linkedin" + MESSENGER = "Messenger" + TWITTER = "Twitter" + VIBER = "Viber" + WHATSAPP = "WhatsApp" + YOUTUBE = "Youtube" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContentSourceType._member_map_.values())) diff --git a/src/ring_central/models/content_status.py b/src/ring_central/models/content_status.py new file mode 100644 index 00000000..e7e913eb --- /dev/null +++ b/src/ring_central/models/content_status.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentStatus(Enum): + """An enumeration representing different categories. + + :cvar NEW: "New" + :vartype NEW: str + :cvar ASSIGNED: "Assigned" + :vartype ASSIGNED: str + :cvar REPLIED: "Replied" + :vartype REPLIED: str + :cvar USERREPLY: "UserReply" + :vartype USERREPLY: str + :cvar USERINITIATED: "UserInitiated" + :vartype USERINITIATED: str + :cvar IGNORED: "Ignored" + :vartype IGNORED: str + """ + + NEW = "New" + ASSIGNED = "Assigned" + REPLIED = "Replied" + USERREPLY = "UserReply" + USERINITIATED = "UserInitiated" + IGNORED = "Ignored" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContentStatus._member_map_.values())) diff --git a/src/ring_central/models/content_type.py b/src/ring_central/models/content_type.py new file mode 100644 index 00000000..a5cc8045 --- /dev/null +++ b/src/ring_central/models/content_type.py @@ -0,0 +1,117 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ContentType(Enum): + """An enumeration representing different categories. + + :cvar ALBUM: "Album" + :vartype ALBUM: str + :cvar AUTHENTICATEMESSAGE: "AuthenticateMessage" + :vartype AUTHENTICATEMESSAGE: str + :cvar AUTHENTICATERESPONSE: "AuthenticateResponse" + :vartype AUTHENTICATERESPONSE: str + :cvar CAROUSEL: "Carousel" + :vartype CAROUSEL: str + :cvar CAROUSELMESSAGE: "CarouselMessage" + :vartype CAROUSELMESSAGE: str + :cvar COMMENT: "Comment" + :vartype COMMENT: str + :cvar CONTACTMESSAGE: "ContactMessage" + :vartype CONTACTMESSAGE: str + :cvar CONTENT: "Content" + :vartype CONTENT: str + :cvar EMAIL: "Email" + :vartype EMAIL: str + :cvar FORMMESSAGE: "FormMessage" + :vartype FORMMESSAGE: str + :cvar FORMRESPONSE: "FormResponse" + :vartype FORMRESPONSE: str + :cvar HSMMESSAGE: "HsmMessage" + :vartype HSMMESSAGE: str + :cvar LINK: "Link" + :vartype LINK: str + :cvar LISTMESSAGE: "ListMessage" + :vartype LISTMESSAGE: str + :cvar MEDIA: "Media" + :vartype MEDIA: str + :cvar MESSAGE: "Message" + :vartype MESSAGE: str + :cvar OUTBOUNDMESSAGE: "OutboundMessage" + :vartype OUTBOUNDMESSAGE: str + :cvar PAYMENTMESSAGE: "PaymentMessage" + :vartype PAYMENTMESSAGE: str + :cvar PHOTO: "Photo" + :vartype PHOTO: str + :cvar POSTBACKMESSAGE: "PostbackMessage" + :vartype POSTBACKMESSAGE: str + :cvar PRIVATETWEET: "PrivateTweet" + :vartype PRIVATETWEET: str + :cvar PROMPTMESSAGE: "PromptMessage" + :vartype PROMPTMESSAGE: str + :cvar QUESTION: "Question" + :vartype QUESTION: str + :cvar REVIEW: "Review" + :vartype REVIEW: str + :cvar REVIEWRESPONSE: "ReviewResponse" + :vartype REVIEWRESPONSE: str + :cvar RICHLINKMESSAGE: "RichLinkMessage" + :vartype RICHLINKMESSAGE: str + :cvar SELECTMESSAGE: "SelectMessage" + :vartype SELECTMESSAGE: str + :cvar STATUS: "Status" + :vartype STATUS: str + :cvar TEMPLATEMESSAGE: "TemplateMessage" + :vartype TEMPLATEMESSAGE: str + :cvar TIMEPICKERMESSAGE: "TimePickerMessage" + :vartype TIMEPICKERMESSAGE: str + :cvar TWEET: "Tweet" + :vartype TWEET: str + :cvar VIDEO: "Video" + :vartype VIDEO: str + :cvar VIDEOCALLREQUESTMESSAGE: "VideoCallRequestMessage" + :vartype VIDEOCALLREQUESTMESSAGE: str + """ + + ALBUM = "Album" + AUTHENTICATEMESSAGE = "AuthenticateMessage" + AUTHENTICATERESPONSE = "AuthenticateResponse" + CAROUSEL = "Carousel" + CAROUSELMESSAGE = "CarouselMessage" + COMMENT = "Comment" + CONTACTMESSAGE = "ContactMessage" + CONTENT = "Content" + EMAIL = "Email" + FORMMESSAGE = "FormMessage" + FORMRESPONSE = "FormResponse" + HSMMESSAGE = "HsmMessage" + LINK = "Link" + LISTMESSAGE = "ListMessage" + MEDIA = "Media" + MESSAGE = "Message" + OUTBOUNDMESSAGE = "OutboundMessage" + PAYMENTMESSAGE = "PaymentMessage" + PHOTO = "Photo" + POSTBACKMESSAGE = "PostbackMessage" + PRIVATETWEET = "PrivateTweet" + PROMPTMESSAGE = "PromptMessage" + QUESTION = "Question" + REVIEW = "Review" + REVIEWRESPONSE = "ReviewResponse" + RICHLINKMESSAGE = "RichLinkMessage" + SELECTMESSAGE = "SelectMessage" + STATUS = "Status" + TEMPLATEMESSAGE = "TemplateMessage" + TIMEPICKERMESSAGE = "TimePickerMessage" + TWEET = "Tweet" + VIDEO = "Video" + VIDEOCALLREQUESTMESSAGE = "VideoCallRequestMessage" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ContentType._member_map_.values())) diff --git a/src/ring_central/models/contracted_country_list_response.py b/src/ring_central/models/contracted_country_list_response.py new file mode 100644 index 00000000..31baed58 --- /dev/null +++ b/src/ring_central/models/contracted_country_list_response.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ContractedCountryListResponseRecords(BaseModel): + """ContractedCountryListResponseRecords + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param name: Official name of a country, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + + +@JsonMap({}) +class ContractedCountryListResponse(BaseModel): + """ContractedCountryListResponse + + :param records: List of countries with the country data + :type records: List[ContractedCountryListResponseRecords] + """ + + def __init__(self, records: List[ContractedCountryListResponseRecords]): + self.records = self._define_list(records, ContractedCountryListResponseRecords) diff --git a/src/ring_central/models/conversation_info.py b/src/ring_central/models/conversation_info.py new file mode 100644 index 00000000..ebe0c998 --- /dev/null +++ b/src/ring_central/models/conversation_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ConversationInfo(BaseModel): + """SMS and Pager only. Information about a conversation the message belongs to + + :param id_: Internal identifier of a conversation, defaults to None + :type id_: str, optional + :param uri: Deprecated. Link to a conversation resource, defaults to None + :type uri: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/conversational_insights_unit.py b/src/ring_central/models/conversational_insights_unit.py new file mode 100644 index 00000000..d270cbff --- /dev/null +++ b/src/ring_central/models/conversational_insights_unit.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .conversational_insights_unit_values import ConversationalInsightsUnitValues + + +class ConversationalInsightsUnitName(Enum): + """An enumeration representing different categories. + + :cvar EXTRACTIVESUMMARY: "ExtractiveSummary" + :vartype EXTRACTIVESUMMARY: str + :cvar ABSTRACTIVESUMMARYLONG: "AbstractiveSummaryLong" + :vartype ABSTRACTIVESUMMARYLONG: str + :cvar ABSTRACTIVESUMMARYSHORT: "AbstractiveSummaryShort" + :vartype ABSTRACTIVESUMMARYSHORT: str + :cvar KEYPHRASES: "KeyPhrases" + :vartype KEYPHRASES: str + :cvar QUESTIONSASKED: "QuestionsAsked" + :vartype QUESTIONSASKED: str + :cvar OVERALLSENTIMENT: "OverallSentiment" + :vartype OVERALLSENTIMENT: str + :cvar TOPICS: "Topics" + :vartype TOPICS: str + """ + + EXTRACTIVESUMMARY = "ExtractiveSummary" + ABSTRACTIVESUMMARYLONG = "AbstractiveSummaryLong" + ABSTRACTIVESUMMARYSHORT = "AbstractiveSummaryShort" + KEYPHRASES = "KeyPhrases" + QUESTIONSASKED = "QuestionsAsked" + OVERALLSENTIMENT = "OverallSentiment" + TOPICS = "Topics" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ConversationalInsightsUnitName._member_map_.values()) + ) + + +@JsonMap({}) +class ConversationalInsightsUnit(BaseModel): + """ConversationalInsightsUnit + + :param name: name + :type name: ConversationalInsightsUnitName + :param values: values + :type values: List[ConversationalInsightsUnitValues] + """ + + def __init__( + self, + name: ConversationalInsightsUnitName, + values: List[ConversationalInsightsUnitValues], + ): + self.name = self._enum_matching( + name, ConversationalInsightsUnitName.list(), "name" + ) + self.values = self._define_list(values, ConversationalInsightsUnitValues) diff --git a/src/ring_central/models/conversational_insights_unit_values.py b/src/ring_central/models/conversational_insights_unit_values.py new file mode 100644 index 00000000..a0ae72a2 --- /dev/null +++ b/src/ring_central/models/conversational_insights_unit_values.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"group_id": "groupId", "speaker_id": "speakerId"}) +class ConversationalInsightsUnitValues(BaseModel): + """ConversationalInsightsUnitValues + + :param confidence: confidence, defaults to None + :type confidence: float, optional + :param value: value + :type value: str + :param start: start + :type start: float + :param end: end + :type end: float + :param group_id: Paragraph index of the long summary., defaults to None + :type group_id: str, optional + :param speaker_id: speaker_id, defaults to None + :type speaker_id: str, optional + :param assignee: assignee, defaults to None + :type assignee: str, optional + :param category: category, defaults to None + :type category: str, optional + :param text: text, defaults to None + :type text: str, optional + :param question: question, defaults to None + :type question: str, optional + :param answer: answer, defaults to None + :type answer: str, optional + """ + + def __init__( + self, + value: str, + start: float, + end: float, + confidence: float = None, + group_id: str = None, + speaker_id: str = None, + assignee: str = None, + category: str = None, + text: str = None, + question: str = None, + answer: str = None, + ): + if confidence is not None: + self.confidence = confidence + self.value = value + self.start = start + self.end = end + if group_id is not None: + self.group_id = group_id + if speaker_id is not None: + self.speaker_id = speaker_id + if assignee is not None: + self.assignee = assignee + if category is not None: + self.category = category + if text is not None: + self.text = text + if question is not None: + self.question = question + if answer is not None: + self.answer = answer diff --git a/src/ring_central/models/cost_center_info.py b/src/ring_central/models/cost_center_info.py new file mode 100644 index 00000000..2a184564 --- /dev/null +++ b/src/ring_central/models/cost_center_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CostCenterInfo(BaseModel): + """Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value + + :param id_: Internal identifier of a cost center, defaults to None + :type id_: str, optional + :param name: Name of a cost center, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/cost_center_resource.py b/src/ring_central/models/cost_center_resource.py new file mode 100644 index 00000000..3bb9cbb6 --- /dev/null +++ b/src/ring_central/models/cost_center_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CostCenterResource(BaseModel): + """CostCenterResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param code: code, defaults to None + :type code: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, code: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if code is not None: + self.code = code + if name is not None: + self.name = name diff --git a/src/ring_central/models/country_info_basic_model.py b/src/ring_central/models/country_info_basic_model.py new file mode 100644 index 00000000..823afab3 --- /dev/null +++ b/src/ring_central/models/country_info_basic_model.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CountryInfoBasicModel(BaseModel): + """CountryInfoBasicModel + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + :param name: The official name of a country, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/country_info_dictionary_model.py b/src/ring_central/models/country_info_dictionary_model.py new file mode 100644 index 00000000..e2fa2b9a --- /dev/null +++ b/src/ring_central/models/country_info_dictionary_model.py @@ -0,0 +1,82 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "iso_code": "isoCode", + "calling_code": "callingCode", + "emergency_calling": "emergencyCalling", + "number_selling": "numberSelling", + "login_allowed": "loginAllowed", + "signup_allowed": "signupAllowed", + "free_softphone_line": "freeSoftphoneLine", + "local_dialing": "localDialing", + } +) +class CountryInfoDictionaryModel(BaseModel): + """CountryInfoDictionaryModel + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + :param name: The official name of a country, defaults to None + :type name: str, optional + :param iso_code: Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) , defaults to None + :type iso_code: str, optional + :param calling_code: Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) , defaults to None + :type calling_code: str, optional + :param emergency_calling: Emergency calling feature availability/emergency address requirement indicator , defaults to None + :type emergency_calling: bool, optional + :param number_selling: Indicates that phone numbers are available for this country, defaults to None + :type number_selling: bool, optional + :param login_allowed: Indicates that login with the phone number of this country is allowed, defaults to None + :type login_allowed: bool, optional + :param signup_allowed: Indicates that signup/billing is allowed for this country, defaults to None + :type signup_allowed: bool, optional + :param free_softphone_line: Indicates that free phone line for softphone is available for this country, defaults to None + :type free_softphone_line: bool, optional + :param local_dialing: Indicates that the local dialing is supported in this country and default area code can be set, defaults to None + :type local_dialing: bool, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + iso_code: str = None, + calling_code: str = None, + emergency_calling: bool = None, + number_selling: bool = None, + login_allowed: bool = None, + signup_allowed: bool = None, + free_softphone_line: bool = None, + local_dialing: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if iso_code is not None: + self.iso_code = iso_code + if calling_code is not None: + self.calling_code = calling_code + if emergency_calling is not None: + self.emergency_calling = emergency_calling + if number_selling is not None: + self.number_selling = number_selling + if login_allowed is not None: + self.login_allowed = login_allowed + if signup_allowed is not None: + self.signup_allowed = signup_allowed + if free_softphone_line is not None: + self.free_softphone_line = free_softphone_line + if local_dialing is not None: + self.local_dialing = local_dialing diff --git a/src/ring_central/models/country_info_minimal_model.py b/src/ring_central/models/country_info_minimal_model.py new file mode 100644 index 00000000..6a64e531 --- /dev/null +++ b/src/ring_central/models/country_info_minimal_model.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CountryInfoMinimalModel(BaseModel): + """CountryInfoMinimalModel + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/country_info_short_model.py b/src/ring_central/models/country_info_short_model.py new file mode 100644 index 00000000..668e812b --- /dev/null +++ b/src/ring_central/models/country_info_short_model.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "iso_code": "isoCode", "calling_code": "callingCode"}) +class CountryInfoShortModel(BaseModel): + """CountryInfoShortModel + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + :param name: The official name of a country, defaults to None + :type name: str, optional + :param iso_code: A ISO country code value complying with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. , defaults to None + :type iso_code: str, optional + :param calling_code: Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) , defaults to None + :type calling_code: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + iso_code: str = None, + calling_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if iso_code is not None: + self.iso_code = iso_code + if calling_code is not None: + self.calling_code = calling_code diff --git a/src/ring_central/models/country_list_dictionary_model.py b/src/ring_central/models/country_list_dictionary_model.py new file mode 100644 index 00000000..ed7d11a2 --- /dev/null +++ b/src/ring_central/models/country_list_dictionary_model.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_dictionary_model import CountryInfoDictionaryModel +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class CountryListDictionaryModel(BaseModel): + """CountryListDictionaryModel + + :param uri: Link to the list of countries supported, defaults to None + :type uri: str, optional + :param records: List of countries with the country data + :type records: List[CountryInfoDictionaryModel] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[CountryInfoDictionaryModel], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, CountryInfoDictionaryModel) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/create_answering_rule_forwarding_number_info.py b/src/ring_central/models/create_answering_rule_forwarding_number_info.py new file mode 100644 index 00000000..bd129446 --- /dev/null +++ b/src/ring_central/models/create_answering_rule_forwarding_number_info.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CreateAnsweringRuleForwardingNumberInfoType(Enum): + """An enumeration representing different categories. + + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar OUTAGE: "Outage" + :vartype OUTAGE: str + :cvar OTHER: "Other" + :vartype OTHER: str + :cvar BUSINESSMOBILEPHONE: "BusinessMobilePhone" + :vartype BUSINESSMOBILEPHONE: str + :cvar EXTERNALCARRIER: "ExternalCarrier" + :vartype EXTERNALCARRIER: str + :cvar EXTENSIONAPPS: "ExtensionApps" + :vartype EXTENSIONAPPS: str + """ + + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + PHONELINE = "PhoneLine" + OUTAGE = "Outage" + OTHER = "Other" + BUSINESSMOBILEPHONE = "BusinessMobilePhone" + EXTERNALCARRIER = "ExternalCarrier" + EXTENSIONAPPS = "ExtensionApps" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateAnsweringRuleForwardingNumberInfoType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber", "type_": "type"}) +class CreateAnsweringRuleForwardingNumberInfo(BaseModel): + """CreateAnsweringRuleForwardingNumberInfo + + :param id_: Internal identifier of a forwarding number, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a forwarding/call flip phone number, defaults to None + :type uri: str, optional + :param phone_number: Forwarding/Call flip phone number, defaults to None + :type phone_number: str, optional + :param label: Forwarding/Call flip number title, defaults to None + :type label: str, optional + :param type_: Type of forwarding number, defaults to None + :type type_: CreateAnsweringRuleForwardingNumberInfoType, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + phone_number: str = None, + label: str = None, + type_: CreateAnsweringRuleForwardingNumberInfoType = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if type_ is not None: + self.type_ = self._enum_matching( + type_, CreateAnsweringRuleForwardingNumberInfoType.list(), "type_" + ) diff --git a/src/ring_central/models/create_answering_rule_request.py b/src/ring_central/models/create_answering_rule_request.py new file mode 100644 index 00000000..ba985532 --- /dev/null +++ b/src/ring_central/models/create_answering_rule_request.py @@ -0,0 +1,190 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .callers_info_request import CallersInfoRequest +from .called_number_info import CalledNumberInfo +from .schedule_info import ScheduleInfo +from .forwarding_info import ForwardingInfo +from .unconditional_forwarding_info import UnconditionalForwardingInfo +from .queue_info import QueueInfo +from .transferred_extension_info import TransferredExtensionInfo +from .voicemail_info import VoicemailInfo +from .missed_call_info import MissedCallInfo +from .greeting_info import GreetingInfo + + +class CreateAnsweringRuleRequestCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar FORWARDCALLS: "ForwardCalls" + :vartype FORWARDCALLS: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + :cvar AGENTQUEUE: "AgentQueue" + :vartype AGENTQUEUE: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar TAKEMESSAGESONLY: "TakeMessagesOnly" + :vartype TAKEMESSAGESONLY: str + :cvar PLAYANNOUNCEMENTONLY: "PlayAnnouncementOnly" + :vartype PLAYANNOUNCEMENTONLY: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + """ + + FORWARDCALLS = "ForwardCalls" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + AGENTQUEUE = "AgentQueue" + TRANSFERTOEXTENSION = "TransferToExtension" + TAKEMESSAGESONLY = "TakeMessagesOnly" + PLAYANNOUNCEMENTONLY = "PlayAnnouncementOnly" + SHAREDLINES = "SharedLines" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateAnsweringRuleRequestCallHandlingAction._member_map_.values(), + ) + ) + + +class CreateAnsweringRuleRequestScreening(Enum): + """An enumeration representing different categories. + + :cvar OFF: "Off" + :vartype OFF: str + :cvar NOCALLERID: "NoCallerId" + :vartype NOCALLERID: str + :cvar UNKNOWNCALLERID: "UnknownCallerId" + :vartype UNKNOWNCALLERID: str + :cvar ALWAYS: "Always" + :vartype ALWAYS: str + """ + + OFF = "Off" + NOCALLERID = "NoCallerId" + UNKNOWNCALLERID = "UnknownCallerId" + ALWAYS = "Always" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateAnsweringRuleRequestScreening._member_map_.values(), + ) + ) + + +@JsonMap( + { + "type_": "type", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + "unconditional_forwarding": "unconditionalForwarding", + "missed_call": "missedCall", + } +) +class CreateAnsweringRuleRequest(BaseModel): + """CreateAnsweringRuleRequest + + :param enabled: Specifies if the rule is active or inactive. The default value is `true` , defaults to None + :type enabled: bool, optional + :param type_: Type of an answering rule. The 'Custom' value should be specified + :type type_: str + :param name: Name of an answering rule specified by user + :type name: str + :param callers: Answering rule will be applied when calls are received from the specified caller(s), defaults to None + :type callers: List[CallersInfoRequest], optional + :param called_numbers: Answering rules are applied when calling to selected number(s), defaults to None + :type called_numbers: List[CalledNumberInfo], optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: ScheduleInfo, optional + :param call_handling_action: Specifies how incoming calls are forwarded, defaults to None + :type call_handling_action: CreateAnsweringRuleRequestCallHandlingAction, optional + :param forwarding: Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded, defaults to None + :type forwarding: ForwardingInfo, optional + :param unconditional_forwarding: Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter , defaults to None + :type unconditional_forwarding: UnconditionalForwardingInfo, optional + :param queue: Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action , defaults to None + :type queue: QueueInfo, optional + :param transfer: transfer, defaults to None + :type transfer: TransferredExtensionInfo, optional + :param voicemail: Specifies whether to take a voicemail and who should do it, defaults to None + :type voicemail: VoicemailInfo, optional + :param missed_call: Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false', defaults to None + :type missed_call: MissedCallInfo, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List , defaults to None + :type greetings: List[GreetingInfo], optional + :param screening: Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' , defaults to None + :type screening: CreateAnsweringRuleRequestScreening, optional + """ + + def __init__( + self, + type_: str, + name: str, + enabled: bool = None, + callers: List[CallersInfoRequest] = None, + called_numbers: List[CalledNumberInfo] = None, + schedule: ScheduleInfo = None, + call_handling_action: CreateAnsweringRuleRequestCallHandlingAction = None, + forwarding: ForwardingInfo = None, + unconditional_forwarding: UnconditionalForwardingInfo = None, + queue: QueueInfo = None, + transfer: TransferredExtensionInfo = None, + voicemail: VoicemailInfo = None, + missed_call: MissedCallInfo = None, + greetings: List[GreetingInfo] = None, + screening: CreateAnsweringRuleRequestScreening = None, + ): + if enabled is not None: + self.enabled = enabled + self.type_ = type_ + self.name = name + if callers is not None: + self.callers = self._define_list(callers, CallersInfoRequest) + if called_numbers is not None: + self.called_numbers = self._define_list(called_numbers, CalledNumberInfo) + if schedule is not None: + self.schedule = self._define_object(schedule, ScheduleInfo) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + CreateAnsweringRuleRequestCallHandlingAction.list(), + "call_handling_action", + ) + if forwarding is not None: + self.forwarding = self._define_object(forwarding, ForwardingInfo) + if unconditional_forwarding is not None: + self.unconditional_forwarding = self._define_object( + unconditional_forwarding, UnconditionalForwardingInfo + ) + if queue is not None: + self.queue = self._define_object(queue, QueueInfo) + if transfer is not None: + self.transfer = self._define_object(transfer, TransferredExtensionInfo) + if voicemail is not None: + self.voicemail = self._define_object(voicemail, VoicemailInfo) + if missed_call is not None: + self.missed_call = self._define_object(missed_call, MissedCallInfo) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) + if screening is not None: + self.screening = self._enum_matching( + screening, CreateAnsweringRuleRequestScreening.list(), "screening" + ) diff --git a/src/ring_central/models/create_bridge_request.py b/src/ring_central/models/create_bridge_request.py new file mode 100644 index 00000000..39c76575 --- /dev/null +++ b/src/ring_central/models/create_bridge_request.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_pins import BridgePins +from .bridge_request_security import BridgeRequestSecurity +from .bridge_preferences import BridgePreferences + + +class CreateBridgeRequestType(Enum): + """An enumeration representing different categories. + + :cvar INSTANT: "Instant" + :vartype INSTANT: str + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar PMI: "PMI" + :vartype PMI: str + """ + + INSTANT = "Instant" + SCHEDULED = "Scheduled" + PMI = "PMI" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CreateBridgeRequestType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class CreateBridgeRequest(BaseModel): + """CreateBridgeRequest + + :param name: Custom name of a bridge, defaults to None + :type name: str, optional + :param type_: Type of bridge. It specifies bridge life cycle. 1) Instant - The bridge will be used for a meeting only once immediately after creation. Then it will be deleted. 2) Scheduled - The bridge will be used for scheduled one or more meetings. If the bridge is not used for a long time after the last meeting, then it will be deleted. 3) PMI - The bridge will contain Personal Meeting Identifier owned by a user. It is the default user bridge. Each user may have only one default (PMI) bridge. Such bridge will be deleted only in case the user is deleted from the system. , defaults to None + :type type_: CreateBridgeRequestType, optional + :param pins: pins, defaults to None + :type pins: BridgePins, optional + :param security: security, defaults to None + :type security: BridgeRequestSecurity, optional + :param preferences: preferences, defaults to None + :type preferences: BridgePreferences, optional + """ + + def __init__( + self, + name: str = None, + type_: CreateBridgeRequestType = None, + pins: BridgePins = None, + security: BridgeRequestSecurity = None, + preferences: BridgePreferences = None, + ): + if name is not None: + self.name = name + if type_ is not None: + self.type_ = self._enum_matching( + type_, CreateBridgeRequestType.list(), "type_" + ) + if pins is not None: + self.pins = self._define_object(pins, BridgePins) + if security is not None: + self.security = self._define_object(security, BridgeRequestSecurity) + if preferences is not None: + self.preferences = self._define_object(preferences, BridgePreferences) diff --git a/src/ring_central/models/create_call_monitoring_group_request.py b/src/ring_central/models/create_call_monitoring_group_request.py new file mode 100644 index 00000000..c633b385 --- /dev/null +++ b/src/ring_central/models/create_call_monitoring_group_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CreateCallMonitoringGroupRequest(BaseModel): + """CreateCallMonitoringGroupRequest + + :param name: Name of a group + :type name: str + """ + + def __init__(self, name: str): + self.name = name diff --git a/src/ring_central/models/create_content_request.py b/src/ring_central/models/create_content_request.py new file mode 100644 index 00000000..7deb8910 --- /dev/null +++ b/src/ring_central/models/create_content_request.py @@ -0,0 +1,113 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .content_components import ContentComponents + + +class ToGuard(OneOfBaseModel): + class_list = {"List[str]": List[str], "List[str]": List[str]} + + +To = Union[List[str], List[str]] + + +@JsonMap( + { + "author_identity_id": "authorIdentityId", + "in_reply_to_content_id": "inReplyToContentId", + "source_id": "sourceId", + "attachment_ids": "attachmentIds", + "template_name": "templateName", + "template_language": "templateLanguage", + "context_data": "contextData", + "auto_submitted": "autoSubmitted", + } +) +class CreateContentRequest(BaseModel): + """CreateContentRequest + + :param author_identity_id: Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel. , defaults to None + :type author_identity_id: str, optional + :param body: The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length * Apple Messages For Business (max length 10000) * Email (max length 262144) * RingCX Digital Messaging (max length 1024) * Facebook (max length 8000) * GoogleBusinessMessages (max length 3000) * Google My Business (max length 4000) * Instagram (max length 950) * Instagram Messaging (max length 1000) * LinkedIn (max length 3000) * Messenger (max length 2000) * Twitter (max length 280) * Viber (max length 7000) * WhatsApp (max length 3800) * Youtube (max length 8000) , defaults to None + :type body: str, optional + :param in_reply_to_content_id: The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory. , defaults to None + :type in_reply_to_content_id: str, optional + :param public: True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel. , defaults to None + :type public: bool, optional + :param source_id: Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory. , defaults to None + :type source_id: str, optional + :param attachment_ids: An array containing the attachment identifiers that need to be attached to the content. , defaults to None + :type attachment_ids: List[str], optional + :param title: Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion. , defaults to None + :type title: str, optional + :param to: to, defaults to None + :type to: To, optional + :param cc: Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion. , defaults to None + :type cc: List[str], optional + :param bcc: Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion. , defaults to None + :type bcc: List[str], optional + :param template_name: Applicable to WhatsApp channels only. Name of the Whatsapp template to use for the content. All available template names are visible on the Whatsapp Business Manager interface. , defaults to None + :type template_name: str, optional + :param template_language: Applicable to WhatsApp channels only. Language of the Whatsapp template to use for the content. All available template languages are visible on the Whatsapp Business Manager interface. Language specified must conform to the ISO 639-1 alpha-2 codes for representing the names of languages. , defaults to None + :type template_language: str, optional + :param components: Applicable to WhatsApp channels only. Component configuration of the Whatsapp template to use for the content. All available components are visible on the Whatsapp Business Manager interface. , defaults to None + :type components: List[ContentComponents], optional + :param context_data: Additional data of the content. The contextData hash keys are the custom fields keys. , defaults to None + :type context_data: dict, optional + :param auto_submitted: Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics , defaults to None + :type auto_submitted: bool, optional + """ + + def __init__( + self, + author_identity_id: str = None, + body: str = None, + in_reply_to_content_id: str = None, + public: bool = None, + source_id: str = None, + attachment_ids: List[str] = None, + title: str = None, + to: To = None, + cc: List[str] = None, + bcc: List[str] = None, + template_name: str = None, + template_language: str = None, + components: List[ContentComponents] = None, + context_data: dict = None, + auto_submitted: bool = None, + ): + if author_identity_id is not None: + self.author_identity_id = author_identity_id + if body is not None: + self.body = body + if in_reply_to_content_id is not None: + self.in_reply_to_content_id = in_reply_to_content_id + if public is not None: + self.public = public + if source_id is not None: + self.source_id = source_id + if attachment_ids is not None: + self.attachment_ids = attachment_ids + if title is not None: + self.title = title + if to is not None: + self.to = ToGuard.return_one_of(to) + if cc is not None: + self.cc = cc + if bcc is not None: + self.bcc = bcc + if template_name is not None: + self.template_name = template_name + if template_language is not None: + self.template_language = template_language + if components is not None: + self.components = self._define_list(components, ContentComponents) + if context_data is not None: + self.context_data = context_data + if auto_submitted is not None: + self.auto_submitted = auto_submitted diff --git a/src/ring_central/models/create_conversation_request.py b/src/ring_central/models/create_conversation_request.py new file mode 100644 index 00000000..74a05a14 --- /dev/null +++ b/src/ring_central/models/create_conversation_request.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CreateConversationRequestMembers(BaseModel): + """CreateConversationRequestMembers + + :param id_: Internal identifier of a person, defaults to None + :type id_: str, optional + :param email: Email of a person, defaults to None + :type email: str, optional + """ + + def __init__(self, id_: str = None, email: str = None): + if id_ is not None: + self.id_ = id_ + if email is not None: + self.email = email + + +@JsonMap({}) +class CreateConversationRequest(BaseModel): + """CreateConversationRequest + + :param members: Identifier(s) of chat member(s). The maximum supported number of IDs is 15. User's own ID is optional. If `members` section is omitted then "Personal" chat will be returned + :type members: List[CreateConversationRequestMembers] + """ + + def __init__(self, members: List[CreateConversationRequestMembers]): + self.members = self._define_list(members, CreateConversationRequestMembers) diff --git a/src/ring_central/models/create_data_export_task_request.py b/src/ring_central/models/create_data_export_task_request.py new file mode 100644 index 00000000..77dddb86 --- /dev/null +++ b/src/ring_central/models/create_data_export_task_request.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .data_export_task_contact_info import DataExportTaskContactInfo + + +@JsonMap({"time_from": "timeFrom", "time_to": "timeTo", "chat_ids": "chatIds"}) +class CreateDataExportTaskRequest(BaseModel): + """CreateDataExportTaskRequest + + :param time_from: Starting time for data collection. The default value is `timeTo` minus 24 hours. Max allowed time frame between `timeFrom` and `timeTo` is 6 months, defaults to None + :type time_from: str, optional + :param time_to: Ending time for data collection. The default value is current time. Max allowed time frame between `timeFrom` and `timeTo` is 6 months, defaults to None + :type time_to: str, optional + :param contacts: List of contacts which data is collected. The following data will be exported: posts, tasks, events, etc. posted by the user(s); posts addressing the user(s) via direct and @Mentions; tasks assigned to the listed user(s). The list of 30 users per request is supported., defaults to None + :type contacts: List[DataExportTaskContactInfo], optional + :param chat_ids: List of chats from which the data (posts, files, tasks, events, notes, etc.) will be collected. Maximum number of chats supported is 10, defaults to None + :type chat_ids: List[str], optional + """ + + def __init__( + self, + time_from: str = None, + time_to: str = None, + contacts: List[DataExportTaskContactInfo] = None, + chat_ids: List[str] = None, + ): + if time_from is not None: + self.time_from = time_from + if time_to is not None: + self.time_to = time_to + if contacts is not None: + self.contacts = self._define_list(contacts, DataExportTaskContactInfo) + if chat_ids is not None: + self.chat_ids = chat_ids diff --git a/src/ring_central/models/create_fax_message_request.py b/src/ring_central/models/create_fax_message_request.py new file mode 100644 index 00000000..2030a8b8 --- /dev/null +++ b/src/ring_central/models/create_fax_message_request.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .fax_resolution_enum import FaxResolutionEnum +from .fax_request_to import FaxRequestTo + + +@JsonMap( + { + "fax_resolution": "faxResolution", + "send_time": "sendTime", + "iso_code": "isoCode", + "cover_index": "coverIndex", + "cover_page_text": "coverPageText", + } +) +class CreateFaxMessageRequest(BaseModel): + """CreateFaxMessageRequest + + :param attachment: File to upload + :type attachment: any + :param fax_resolution: Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi , defaults to None + :type fax_resolution: FaxResolutionEnum, optional + :param to: Recipient's phone number(s) + :type to: List[FaxRequestTo] + :param send_time: Timestamp to send a fax at. If not specified, current or the past a fax message is sent immediately , defaults to None + :type send_time: str, optional + :param iso_code: Alpha-2 ISO Code of a country, defaults to None + :type iso_code: str, optional + :param cover_index: Cover page identifier. If `coverIndex` is set to '0' (zero) a cover page is not attached. For a list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') , defaults to None + :type cover_index: int, optional + :param cover_page_text: Cover page text, entered by a fax sender and printed on a cover page. Maximum length is limited to 1024 symbols , defaults to None + :type cover_page_text: str, optional + """ + + def __init__( + self, + attachment: any, + to: List[FaxRequestTo], + fax_resolution: FaxResolutionEnum = None, + send_time: str = None, + iso_code: str = None, + cover_index: int = None, + cover_page_text: str = None, + ): + self.attachment = attachment + if fax_resolution is not None: + self.fax_resolution = self._enum_matching( + fax_resolution, FaxResolutionEnum.list(), "fax_resolution" + ) + self.to = self._define_list(to, FaxRequestTo) + if send_time is not None: + self.send_time = send_time + if iso_code is not None: + self.iso_code = iso_code + if cover_index is not None: + self.cover_index = cover_index + if cover_page_text is not None: + self.cover_page_text = cover_page_text diff --git a/src/ring_central/models/create_forwarding_number_device_info.py b/src/ring_central/models/create_forwarding_number_device_info.py new file mode 100644 index 00000000..b57da37b --- /dev/null +++ b/src/ring_central/models/create_forwarding_number_device_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CreateForwardingNumberDeviceInfo(BaseModel): + """Forwarding device information. Applicable for 'PhoneLine' type only. + Cannot be specified together with 'phoneNumber' parameter + + + :param id_: Internal identifier of the other extension device, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/create_forwarding_number_request.py b/src/ring_central/models/create_forwarding_number_request.py new file mode 100644 index 00000000..cd6ad64a --- /dev/null +++ b/src/ring_central/models/create_forwarding_number_request.py @@ -0,0 +1,80 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .create_forwarding_number_device_info import CreateForwardingNumberDeviceInfo + + +class CreateForwardingNumberRequestType(Enum): + """An enumeration representing different categories. + + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar OTHER: "Other" + :vartype OTHER: str + """ + + PHONELINE = "PhoneLine" + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + OTHER = "Other" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateForwardingNumberRequestType._member_map_.values(), + ) + ) + + +@JsonMap({"flip_number": "flipNumber", "phone_number": "phoneNumber", "type_": "type"}) +class CreateForwardingNumberRequest(BaseModel): + """CreateForwardingNumberRequest + + :param flip_number: Number assigned to the call flip phone number, corresponds to the shortcut dial number, defaults to None + :type flip_number: int, optional + :param phone_number: Forwarding/Call flip phone number, defaults to None + :type phone_number: str, optional + :param label: Forwarding/Call flip number title, defaults to None + :type label: str, optional + :param type_: Forwarding/Call flip phone type. If specified, 'label' attribute value is ignored. The default value is 'Other', defaults to None + :type type_: CreateForwardingNumberRequestType, optional + :param device: Forwarding device information. Applicable for 'PhoneLine' type only. Cannot be specified together with 'phoneNumber' parameter , defaults to None + :type device: CreateForwardingNumberDeviceInfo, optional + """ + + def __init__( + self, + flip_number: int = None, + phone_number: str = None, + label: str = None, + type_: CreateForwardingNumberRequestType = None, + device: CreateForwardingNumberDeviceInfo = None, + ): + if flip_number is not None: + self.flip_number = flip_number + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if type_ is not None: + self.type_ = self._enum_matching( + type_, CreateForwardingNumberRequestType.list(), "type_" + ) + if device is not None: + self.device = self._define_object(device, CreateForwardingNumberDeviceInfo) diff --git a/src/ring_central/models/create_glip_file_new_request.py b/src/ring_central/models/create_glip_file_new_request.py new file mode 100644 index 00000000..de16f9ff --- /dev/null +++ b/src/ring_central/models/create_glip_file_new_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CreateGlipFileNewRequest(BaseModel): + """CreateGlipFileNewRequest + + :param body: The file (binary or multipart/form-data) to upload + :type body: any + """ + + def __init__(self, body: any): + self.body = body diff --git a/src/ring_central/models/create_internal_text_message_request.py b/src/ring_central/models/create_internal_text_message_request.py new file mode 100644 index 00000000..04323b64 --- /dev/null +++ b/src/ring_central/models/create_internal_text_message_request.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .pager_caller_info_request import PagerCallerInfoRequest + + +@JsonMap({"from_": "from", "reply_on": "replyOn"}) +class CreateInternalTextMessageRequest(BaseModel): + """CreateInternalTextMessageRequest + + :param from_: Sender of a pager message., defaults to None + :type from_: PagerCallerInfoRequest, optional + :param reply_on: Internal identifier of a message this message replies to, defaults to None + :type reply_on: int, optional + :param text: Text of a pager message. Max length is 1024 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 512 symbols + :type text: str + :param to: Optional if `replyOn` parameter is specified. Receiver of a pager message. , defaults to None + :type to: List[PagerCallerInfoRequest], optional + """ + + def __init__( + self, + text: str, + from_: PagerCallerInfoRequest = None, + reply_on: int = None, + to: List[PagerCallerInfoRequest] = None, + ): + if from_ is not None: + self.from_ = self._define_object(from_, PagerCallerInfoRequest) + if reply_on is not None: + self.reply_on = reply_on + self.text = text + if to is not None: + self.to = self._define_list(to, PagerCallerInfoRequest) diff --git a/src/ring_central/models/create_ivr_prompt_request.py b/src/ring_central/models/create_ivr_prompt_request.py new file mode 100644 index 00000000..7aed91aa --- /dev/null +++ b/src/ring_central/models/create_ivr_prompt_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CreateIvrPromptRequest(BaseModel): + """CreateIvrPromptRequest + + :param attachment: Audio file that will be used as a prompt. Attachment cannot be empty, only audio files are supported + :type attachment: any + :param name: Description of file contents., defaults to None + :type name: str, optional + """ + + def __init__(self, attachment: any, name: str = None): + self.attachment = attachment + if name is not None: + self.name = name diff --git a/src/ring_central/models/create_message_store_report_request.py b/src/ring_central/models/create_message_store_report_request.py new file mode 100644 index 00000000..c710d684 --- /dev/null +++ b/src/ring_central/models/create_message_store_report_request.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .pic_message_type_enum import PicMessageTypeEnum + + +@JsonMap( + {"date_to": "dateTo", "date_from": "dateFrom", "message_types": "messageTypes"} +) +class CreateMessageStoreReportRequest(BaseModel): + """CreateMessageStoreReportRequest + + :param date_to: The end of the time range to collect message records in ISO 8601 format including timezone. Default is the current time , defaults to None + :type date_to: str, optional + :param date_from: The beginning of the time range to collect call log records in ISO 8601 format including timezone. Default is the current time minus 24 hours , defaults to None + :type date_from: str, optional + :param message_types: Types of messages to be collected. If not specified, all messages without message type filtering will be returned. Multiple values are accepted, defaults to None + :type message_types: List[PicMessageTypeEnum], optional + """ + + def __init__( + self, + date_to: str = None, + date_from: str = None, + message_types: List[PicMessageTypeEnum] = None, + ): + if date_to is not None: + self.date_to = date_to + if date_from is not None: + self.date_from = date_from + if message_types is not None: + self.message_types = self._define_list(message_types, PicMessageTypeEnum) diff --git a/src/ring_central/models/create_mms_message.py b/src/ring_central/models/create_mms_message.py new file mode 100644 index 00000000..c6567adf --- /dev/null +++ b/src/ring_central/models/create_mms_message.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_store_caller_info_request import MessageStoreCallerInfoRequest +from .sms_request_country_info import SmsRequestCountryInfo + + +@JsonMap({"from_": "from"}) +class CreateMmsMessage(BaseModel): + """CreateMmsMessage + + :param from_: Message sender information. The `phoneNumber` value should be one the account phone numbers allowed to send the current type of messages + :type from_: MessageStoreCallerInfoRequest + :param to: Message receiver(s) information. The `phoneNumber` value is required + :type to: List[MessageStoreCallerInfoRequest] + :param text: Text of a message. Max length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 500 symbols , defaults to None + :type text: str, optional + :param country: Target number country information. Either `id` or `isoCode` can be specified., defaults to None + :type country: SmsRequestCountryInfo, optional + :param attachments: Media file(s) to upload + :type attachments: List[any] + """ + + def __init__( + self, + from_: MessageStoreCallerInfoRequest, + to: List[MessageStoreCallerInfoRequest], + attachments: List[any], + text: str = None, + country: SmsRequestCountryInfo = None, + ): + self.from_ = self._define_object(from_, MessageStoreCallerInfoRequest) + self.to = self._define_list(to, MessageStoreCallerInfoRequest) + if text is not None: + self.text = text + if country is not None: + self.country = self._define_object(country, SmsRequestCountryInfo) + self.attachments = attachments diff --git a/src/ring_central/models/create_multiple_switches_request.py b/src/ring_central/models/create_multiple_switches_request.py new file mode 100644 index 00000000..2263cc81 --- /dev/null +++ b/src/ring_central/models/create_multiple_switches_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .create_switch_info import CreateSwitchInfo + + +@JsonMap({}) +class CreateMultipleSwitchesRequest(BaseModel): + """CreateMultipleSwitchesRequest + + :param records: records, defaults to None + :type records: List[CreateSwitchInfo], optional + """ + + def __init__(self, records: List[CreateSwitchInfo] = None): + if records is not None: + self.records = self._define_list(records, CreateSwitchInfo) diff --git a/src/ring_central/models/create_multiple_switches_response.py b/src/ring_central/models/create_multiple_switches_response.py new file mode 100644 index 00000000..c481a225 --- /dev/null +++ b/src/ring_central/models/create_multiple_switches_response.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_task_info import BulkTaskInfo + + +@JsonMap({}) +class CreateMultipleSwitchesResponse(BaseModel): + """Information on a task for multiple switches creation + + :param task: task, defaults to None + :type task: List[BulkTaskInfo], optional + """ + + def __init__(self, task: List[BulkTaskInfo] = None): + if task is not None: + self.task = self._define_list(task, BulkTaskInfo) diff --git a/src/ring_central/models/create_multiple_wireless_points_request.py b/src/ring_central/models/create_multiple_wireless_points_request.py new file mode 100644 index 00000000..7dd92840 --- /dev/null +++ b/src/ring_central/models/create_multiple_wireless_points_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .create_wireless_point import CreateWirelessPoint + + +@JsonMap({}) +class CreateMultipleWirelessPointsRequest(BaseModel): + """CreateMultipleWirelessPointsRequest + + :param records: records, defaults to None + :type records: List[CreateWirelessPoint], optional + """ + + def __init__(self, records: List[CreateWirelessPoint] = None): + if records is not None: + self.records = self._define_list(records, CreateWirelessPoint) diff --git a/src/ring_central/models/create_multiple_wireless_points_response.py b/src/ring_central/models/create_multiple_wireless_points_response.py new file mode 100644 index 00000000..9bd36133 --- /dev/null +++ b/src/ring_central/models/create_multiple_wireless_points_response.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_task_info import BulkTaskInfo + + +@JsonMap({}) +class CreateMultipleWirelessPointsResponse(BaseModel): + """CreateMultipleWirelessPointsResponse + + :param task: task, defaults to None + :type task: BulkTaskInfo, optional + """ + + def __init__(self, task: BulkTaskInfo = None): + if task is not None: + self.task = self._define_object(task, BulkTaskInfo) diff --git a/src/ring_central/models/create_network_request.py b/src/ring_central/models/create_network_request.py new file mode 100644 index 00000000..2d983930 --- /dev/null +++ b/src/ring_central/models/create_network_request.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo +from .public_ip_range_info import PublicIpRangeInfo +from .private_ip_range_info_request import PrivateIpRangeInfoRequest + + +@JsonMap({"public_ip_ranges": "publicIpRanges", "private_ip_ranges": "privateIpRanges"}) +class CreateNetworkRequest(BaseModel): + """CreateNetworkRequest + + :param name: name + :type name: str + :param site: Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` , defaults to None + :type site: AutomaticLocationUpdatesSiteInfo, optional + :param public_ip_ranges: public_ip_ranges + :type public_ip_ranges: List[PublicIpRangeInfo] + :param private_ip_ranges: private_ip_ranges + :type private_ip_ranges: List[PrivateIpRangeInfoRequest] + """ + + def __init__( + self, + name: str, + public_ip_ranges: List[PublicIpRangeInfo], + private_ip_ranges: List[PrivateIpRangeInfoRequest], + site: AutomaticLocationUpdatesSiteInfo = None, + ): + self.name = name + if site is not None: + self.site = self._define_object(site, AutomaticLocationUpdatesSiteInfo) + self.public_ip_ranges = self._define_list(public_ip_ranges, PublicIpRangeInfo) + self.private_ip_ranges = self._define_list( + private_ip_ranges, PrivateIpRangeInfoRequest + ) diff --git a/src/ring_central/models/create_sip_registration_request.py b/src/ring_central/models/create_sip_registration_request.py new file mode 100644 index 00000000..41f000b2 --- /dev/null +++ b/src/ring_central/models/create_sip_registration_request.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_info_request import DeviceInfoRequest +from .sip_info_request import SipInfoRequest + + +class SoftPhoneLineReassignment(Enum): + """An enumeration representing different categories. + + :cvar NONE: "None" + :vartype NONE: str + :cvar INITIALIZE: "Initialize" + :vartype INITIALIZE: str + :cvar REASSIGN: "Reassign" + :vartype REASSIGN: str + """ + + NONE = "None" + INITIALIZE = "Initialize" + REASSIGN = "Reassign" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SoftPhoneLineReassignment._member_map_.values()) + ) + + +@JsonMap( + {"sip_info": "sipInfo", "soft_phone_line_reassignment": "softPhoneLineReassignment"} +) +class CreateSipRegistrationRequest(BaseModel): + """CreateSipRegistrationRequest + + :param device: Device information, defaults to None + :type device: DeviceInfoRequest, optional + :param sip_info: SIP settings for device, defaults to None + :type sip_info: List[SipInfoRequest], optional + :param soft_phone_line_reassignment: Supported for Softphone clients only. If 'SoftphoneLineReassignment' feature is enabled the reassignment process can be initialized, however if there is no DL for the given user's device then SPR-131 error code will be returned. , defaults to None + :type soft_phone_line_reassignment: SoftPhoneLineReassignment, optional + """ + + def __init__( + self, + device: DeviceInfoRequest = None, + sip_info: List[SipInfoRequest] = None, + soft_phone_line_reassignment: SoftPhoneLineReassignment = None, + ): + if device is not None: + self.device = self._define_object(device, DeviceInfoRequest) + if sip_info is not None: + self.sip_info = self._define_list(sip_info, SipInfoRequest) + if soft_phone_line_reassignment is not None: + self.soft_phone_line_reassignment = self._enum_matching( + soft_phone_line_reassignment, + SoftPhoneLineReassignment.list(), + "soft_phone_line_reassignment", + ) diff --git a/src/ring_central/models/create_sip_registration_response.py b/src/ring_central/models/create_sip_registration_response.py new file mode 100644 index 00000000..fe0ad738 --- /dev/null +++ b/src/ring_central/models/create_sip_registration_response.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .sip_registration_device_info import SipRegistrationDeviceInfo +from .sip_info_response import SipInfoResponse +from .sip_flags_response import SipFlagsResponse + + +@JsonMap( + { + "sip_info": "sipInfo", + "sip_info_pstn": "sipInfoPstn", + "sip_flags": "sipFlags", + "sip_error_codes": "sipErrorCodes", + "polling_interval": "pollingInterval", + } +) +class CreateSipRegistrationResponse(BaseModel): + """CreateSipRegistrationResponse + + :param device: device + :type device: SipRegistrationDeviceInfo + :param sip_info: SIP settings for device + :type sip_info: List[SipInfoResponse] + :param sip_info_pstn: SIP PSTN settings for device, defaults to None + :type sip_info_pstn: List[SipInfoResponse], optional + :param sip_flags: SIP flags information + :type sip_flags: SipFlagsResponse + :param sip_error_codes: sip_error_codes, defaults to None + :type sip_error_codes: List[str], optional + :param polling_interval: Suggested interval in seconds to periodically call SIP-provision API and update the local cache , defaults to None + :type polling_interval: int, optional + """ + + def __init__( + self, + device: SipRegistrationDeviceInfo, + sip_info: List[SipInfoResponse], + sip_flags: SipFlagsResponse, + sip_info_pstn: List[SipInfoResponse] = None, + sip_error_codes: List[str] = None, + polling_interval: int = None, + ): + self.device = self._define_object(device, SipRegistrationDeviceInfo) + self.sip_info = self._define_list(sip_info, SipInfoResponse) + if sip_info_pstn is not None: + self.sip_info_pstn = self._define_list(sip_info_pstn, SipInfoResponse) + self.sip_flags = self._define_object(sip_flags, SipFlagsResponse) + if sip_error_codes is not None: + self.sip_error_codes = sip_error_codes + if polling_interval is not None: + self.polling_interval = polling_interval diff --git a/src/ring_central/models/create_site_request.py b/src/ring_central/models/create_site_request.py new file mode 100644 index 00000000..7d8cb04c --- /dev/null +++ b/src/ring_central/models/create_site_request.py @@ -0,0 +1,70 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .regional_settings import RegionalSettings +from .site_operator_reference import SiteOperatorReference + + +@JsonMap( + { + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "business_address": "businessAddress", + "regional_settings": "regionalSettings", + } +) +class CreateSiteRequest(BaseModel): + """CreateSiteRequest + + :param name: Extension user first name, defaults to None + :type name: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + :param caller_id_name: Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) , defaults to None + :type caller_id_name: str, optional + :param email: Extension user email, defaults to None + :type email: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param operator: Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled , defaults to None + :type operator: SiteOperatorReference, optional + :param code: Site code value, defaults to None + :type code: str, optional + """ + + def __init__( + self, + name: str = None, + extension_number: str = None, + caller_id_name: str = None, + email: str = None, + business_address: ContactBusinessAddressInfo = None, + regional_settings: RegionalSettings = None, + operator: SiteOperatorReference = None, + code: str = None, + ): + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if caller_id_name is not None: + self.caller_id_name = caller_id_name + if email is not None: + self.email = email + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if operator is not None: + self.operator = self._define_object(operator, SiteOperatorReference) + if code is not None: + self.code = code diff --git a/src/ring_central/models/create_sms_message.py b/src/ring_central/models/create_sms_message.py new file mode 100644 index 00000000..7f8f8137 --- /dev/null +++ b/src/ring_central/models/create_sms_message.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_store_caller_info_request import MessageStoreCallerInfoRequest +from .sms_request_country_info import SmsRequestCountryInfo + + +@JsonMap({"from_": "from"}) +class CreateSmsMessage(BaseModel): + """CreateSmsMessage + + :param from_: Message sender information. The `phoneNumber` value should be one the account phone numbers allowed to send the current type of messages + :type from_: MessageStoreCallerInfoRequest + :param to: Message receiver(s) information. The `phoneNumber` value is required + :type to: List[MessageStoreCallerInfoRequest] + :param text: Text of a message. Max length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus restricting the maximum message length to 500 symbols + :type text: str + :param country: Target number country information. Either `id` or `isoCode` can be specified., defaults to None + :type country: SmsRequestCountryInfo, optional + """ + + def __init__( + self, + from_: MessageStoreCallerInfoRequest, + to: List[MessageStoreCallerInfoRequest], + text: str, + country: SmsRequestCountryInfo = None, + ): + self.from_ = self._define_object(from_, MessageStoreCallerInfoRequest) + self.to = self._define_list(to, MessageStoreCallerInfoRequest) + self.text = text + if country is not None: + self.country = self._define_object(country, SmsRequestCountryInfo) diff --git a/src/ring_central/models/create_subscription_request.py b/src/ring_central/models/create_subscription_request.py new file mode 100644 index 00000000..dbc7f677 --- /dev/null +++ b/src/ring_central/models/create_subscription_request.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .notification_delivery_mode_request import ( + NotificationDeliveryModeRequest, + NotificationDeliveryModeRequestGuard, +) +from .webhook_delivery_mode_request import WebhookDeliveryModeRequest +from .mobile_delivery_mode_request import MobileDeliveryModeRequest +from .pub_nub_delivery_mode_request import PubNubDeliveryModeRequest + + +@JsonMap( + { + "event_filters": "eventFilters", + "expires_in": "expiresIn", + "delivery_mode": "deliveryMode", + } +) +class CreateSubscriptionRequest(BaseModel): + """CreateSubscriptionRequest + + :param event_filters: The list of event filters corresponding to events the user is subscribed to + :type event_filters: List[str] + :param expires_in: Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| , defaults to None + :type expires_in: int, optional + :param delivery_mode: Notification delivery transport information + :type delivery_mode: NotificationDeliveryModeRequest + """ + + def __init__( + self, + event_filters: List[str], + delivery_mode: NotificationDeliveryModeRequest, + expires_in: int = None, + ): + self.event_filters = event_filters + if expires_in is not None: + self.expires_in = expires_in + self.delivery_mode = NotificationDeliveryModeRequestGuard.return_one_of( + delivery_mode + ) diff --git a/src/ring_central/models/create_switch_info.py b/src/ring_central/models/create_switch_info.py new file mode 100644 index 00000000..ad75fc6e --- /dev/null +++ b/src/ring_central/models/create_switch_info.py @@ -0,0 +1,58 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_site_info import SwitchSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard +from .emergency_location_info import EmergencyLocationInfo + + +@JsonMap( + { + "chassis_id": "chassisId", + "emergency_address": "emergencyAddress", + "emergency_location": "emergencyLocation", + } +) +class CreateSwitchInfo(BaseModel): + """CreateSwitchInfo + + :param chassis_id: Unique identifier of a network switch. The supported formats are: XX:XX:XX:XX:XX:XX (symbols 0-9 and A-F) for MAC address and X.X.X.X for IP address (symbols 0-255) + :type chassis_id: str + :param port: Switch entity extension for better diversity. Should be used together with chassisId., defaults to None + :type port: str, optional + :param name: Name of a network switch, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: SwitchSiteInfo, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddressInfo, optional + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: EmergencyLocationInfo, optional + """ + + def __init__( + self, + chassis_id: str, + port: str = None, + name: str = None, + site: SwitchSiteInfo = None, + emergency_address: EmergencyAddressInfo = None, + emergency_location: EmergencyLocationInfo = None, + ): + self.chassis_id = chassis_id + if port is not None: + self.port = port + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, SwitchSiteInfo) + if emergency_address is not None: + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, EmergencyLocationInfo + ) diff --git a/src/ring_central/models/create_user_emergency_location_request.py b/src/ring_central/models/create_user_emergency_location_request.py new file mode 100644 index 00000000..b3c40ddc --- /dev/null +++ b/src/ring_central/models/create_user_emergency_location_request.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info import ( + CommonEmergencyLocationAddressInfo, + CommonEmergencyLocationAddressInfoGuard, +) +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) + + +@JsonMap({"address_format_id": "addressFormatId"}) +class CreateUserEmergencyLocationRequest(BaseModel): + """CreateUserEmergencyLocationRequest + + :param name: Name of a new personal emergency response location, defaults to None + :type name: str, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + :param trusted: If 'true' address validation for non-us addresses is skipped, defaults to None + :type trusted: bool, optional + :param address: address, defaults to None + :type address: CommonEmergencyLocationAddressInfo, optional + """ + + def __init__( + self, + name: str = None, + address_format_id: str = None, + trusted: bool = None, + address: CommonEmergencyLocationAddressInfo = None, + ): + if name is not None: + self.name = name + if address_format_id is not None: + self.address_format_id = address_format_id + if trusted is not None: + self.trusted = trusted + if address is not None: + self.address = CommonEmergencyLocationAddressInfoGuard.return_one_of( + address + ) diff --git a/src/ring_central/models/create_user_meeting_profile_image_request.py b/src/ring_central/models/create_user_meeting_profile_image_request.py new file mode 100644 index 00000000..340ba9ca --- /dev/null +++ b/src/ring_central/models/create_user_meeting_profile_image_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"profile_pic": "profilePic"}) +class CreateUserMeetingProfileImageRequest(BaseModel): + """CreateUserMeetingProfileImageRequest + + :param profile_pic: Profile image file size cannot exceed 2Mb. Supported formats are: JPG/JPEG, GIF and PNG + :type profile_pic: any + """ + + def __init__(self, profile_pic: any): + self.profile_pic = profile_pic diff --git a/src/ring_central/models/create_user_profile_image_request.py b/src/ring_central/models/create_user_profile_image_request.py new file mode 100644 index 00000000..edf13612 --- /dev/null +++ b/src/ring_central/models/create_user_profile_image_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class CreateUserProfileImageRequest(BaseModel): + """CreateUserProfileImageRequest + + :param image: image + :type image: any + """ + + def __init__(self, image: any): + self.image = image diff --git a/src/ring_central/models/create_webhook_subscription_request.py b/src/ring_central/models/create_webhook_subscription_request.py new file mode 100644 index 00000000..b53815e2 --- /dev/null +++ b/src/ring_central/models/create_webhook_subscription_request.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .webhook_delivery_mode_request import WebhookDeliveryModeRequest + + +@JsonMap( + { + "event_filters": "eventFilters", + "expires_in": "expiresIn", + "delivery_mode": "deliveryMode", + } +) +class CreateWebhookSubscriptionRequest(BaseModel): + """CreateWebhookSubscriptionRequest + + :param event_filters: The list of event filters corresponding to events the user is subscribed to + :type event_filters: List[str] + :param expires_in: Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| , defaults to None + :type expires_in: int, optional + :param delivery_mode: delivery_mode + :type delivery_mode: WebhookDeliveryModeRequest + """ + + def __init__( + self, + event_filters: List[str], + delivery_mode: WebhookDeliveryModeRequest, + expires_in: int = None, + ): + self.event_filters = event_filters + if expires_in is not None: + self.expires_in = expires_in + self.delivery_mode = self._define_object( + delivery_mode, WebhookDeliveryModeRequest + ) diff --git a/src/ring_central/models/create_wireless_point.py b/src/ring_central/models/create_wireless_point.py new file mode 100644 index 00000000..4977bcfe --- /dev/null +++ b/src/ring_central/models/create_wireless_point.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .emergency_address_auto_update_site_info import EmergencyAddressAutoUpdateSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard +from .emergency_location_info import EmergencyLocationInfo + + +@JsonMap( + {"emergency_address": "emergencyAddress", "emergency_location": "emergencyLocation"} +) +class CreateWirelessPoint(BaseModel): + """CreateWirelessPoint + + :param bssid: Unique 48-bit identifier of wireless access point that follows MAC address conventions. Mask: XX:XX:XX:XX:XX:XX, where X can be a symbol in the range of 0-9 or A-F + :type bssid: str + :param name: Wireless access point name + :type name: str + :param site: site, defaults to None + :type site: EmergencyAddressAutoUpdateSiteInfo, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddressInfo, optional + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: EmergencyLocationInfo, optional + """ + + def __init__( + self, + bssid: str, + name: str, + site: EmergencyAddressAutoUpdateSiteInfo = None, + emergency_address: EmergencyAddressInfo = None, + emergency_location: EmergencyLocationInfo = None, + ): + self.bssid = bssid + self.name = name + if site is not None: + self.site = self._define_object(site, EmergencyAddressAutoUpdateSiteInfo) + if emergency_address is not None: + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, EmergencyLocationInfo + ) diff --git a/src/ring_central/models/creator_info.py b/src/ring_central/models/creator_info.py new file mode 100644 index 00000000..f2bbbb7f --- /dev/null +++ b/src/ring_central/models/creator_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "first_name": "firstName", "last_name": "lastName"}) +class CreatorInfo(BaseModel): + """Task creator information + + :param id_: Internal identifier of a user, defaults to None + :type id_: str, optional + :param first_name: First name of a user, defaults to None + :type first_name: str, optional + :param last_name: Last name of a user, defaults to None + :type last_name: str, optional + """ + + def __init__(self, id_: str = None, first_name: str = None, last_name: str = None): + if id_ is not None: + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name diff --git a/src/ring_central/models/currency_info.py b/src/ring_central/models/currency_info.py new file mode 100644 index 00000000..cdf6cf30 --- /dev/null +++ b/src/ring_central/models/currency_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "minor_symbol": "minorSymbol"}) +class CurrencyInfo(BaseModel): + """Currency information + + :param id_: Internal identifier of a currency, defaults to None + :type id_: int, optional + :param code: Official code of a currency, defaults to None + :type code: str, optional + :param name: Official name of a currency, defaults to None + :type name: str, optional + :param symbol: Graphic symbol of a currency, defaults to None + :type symbol: str, optional + :param minor_symbol: Minor graphic symbol of a currency, defaults to None + :type minor_symbol: str, optional + """ + + def __init__( + self, + id_: int = None, + code: str = None, + name: str = None, + symbol: str = None, + minor_symbol: str = None, + ): + if id_ is not None: + self.id_ = id_ + if code is not None: + self.code = code + if name is not None: + self.name = name + if symbol is not None: + self.symbol = symbol + if minor_symbol is not None: + self.minor_symbol = minor_symbol diff --git a/src/ring_central/models/currency_resource.py b/src/ring_central/models/currency_resource.py new file mode 100644 index 00000000..23f457f0 --- /dev/null +++ b/src/ring_central/models/currency_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "minor_symbol": "minorSymbol"}) +class CurrencyResource(BaseModel): + """CurrencyResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param code: code, defaults to None + :type code: str, optional + :param name: name, defaults to None + :type name: str, optional + :param symbol: symbol, defaults to None + :type symbol: str, optional + :param minor_symbol: minor_symbol, defaults to None + :type minor_symbol: str, optional + """ + + def __init__( + self, + id_: str = None, + code: str = None, + name: str = None, + symbol: str = None, + minor_symbol: str = None, + ): + if id_ is not None: + self.id_ = id_ + if code is not None: + self.code = code + if name is not None: + self.name = name + if symbol is not None: + self.symbol = symbol + if minor_symbol is not None: + self.minor_symbol = minor_symbol diff --git a/src/ring_central/models/custom_answering_rule_info.py b/src/ring_central/models/custom_answering_rule_info.py new file mode 100644 index 00000000..f155207f --- /dev/null +++ b/src/ring_central/models/custom_answering_rule_info.py @@ -0,0 +1,231 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .schedule_info import ScheduleInfo +from .called_number_info import CalledNumberInfo +from .callers_info import CallersInfo +from .forwarding_info import ForwardingInfo +from .unconditional_forwarding_info import UnconditionalForwardingInfo +from .queue_info import QueueInfo +from .transferred_extension_info import TransferredExtensionInfo +from .voicemail_info import VoicemailInfo +from .greeting_info import GreetingInfo +from .shared_lines_info import SharedLinesInfo + + +class CustomAnsweringRuleInfoType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CustomAnsweringRuleInfoType._member_map_.values()) + ) + + +class CustomAnsweringRuleInfoCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar FORWARDCALLS: "ForwardCalls" + :vartype FORWARDCALLS: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + :cvar AGENTQUEUE: "AgentQueue" + :vartype AGENTQUEUE: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar TAKEMESSAGESONLY: "TakeMessagesOnly" + :vartype TAKEMESSAGESONLY: str + :cvar PLAYANNOUNCEMENTONLY: "PlayAnnouncementOnly" + :vartype PLAYANNOUNCEMENTONLY: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + """ + + FORWARDCALLS = "ForwardCalls" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + AGENTQUEUE = "AgentQueue" + TRANSFERTOEXTENSION = "TransferToExtension" + TAKEMESSAGESONLY = "TakeMessagesOnly" + PLAYANNOUNCEMENTONLY = "PlayAnnouncementOnly" + SHAREDLINES = "SharedLines" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CustomAnsweringRuleInfoCallHandlingAction._member_map_.values(), + ) + ) + + +class CustomAnsweringRuleInfoScreening(Enum): + """An enumeration representing different categories. + + :cvar OFF: "Off" + :vartype OFF: str + :cvar NOCALLERID: "NoCallerId" + :vartype NOCALLERID: str + :cvar UNKNOWNCALLERID: "UnknownCallerId" + :vartype UNKNOWNCALLERID: str + :cvar ALWAYS: "Always" + :vartype ALWAYS: str + """ + + OFF = "Off" + NOCALLERID = "NoCallerId" + UNKNOWNCALLERID = "UnknownCallerId" + ALWAYS = "Always" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CustomAnsweringRuleInfoScreening._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + "unconditional_forwarding": "unconditionalForwarding", + "shared_lines": "sharedLines", + } +) +class CustomAnsweringRuleInfo(BaseModel): + """CustomAnsweringRuleInfo + + :param uri: Canonical URI to an answering rule resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + :param type_: Type of an answering rule, defaults to None + :type type_: CustomAnsweringRuleInfoType, optional + :param name: Name of an answering rule specified by user, defaults to None + :type name: str, optional + :param enabled: Specifies if an answering rule is active or inactive, defaults to None + :type enabled: bool, optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: ScheduleInfo, optional + :param called_numbers: Answering rules are applied when calling to selected number(s), defaults to None + :type called_numbers: List[CalledNumberInfo], optional + :param callers: Answering rules are applied when calls are received from specified caller(s), defaults to None + :type callers: List[CallersInfo], optional + :param call_handling_action: Specifies how incoming calls are forwarded, defaults to None + :type call_handling_action: CustomAnsweringRuleInfoCallHandlingAction, optional + :param forwarding: Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded, defaults to None + :type forwarding: ForwardingInfo, optional + :param unconditional_forwarding: Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter , defaults to None + :type unconditional_forwarding: UnconditionalForwardingInfo, optional + :param queue: Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action , defaults to None + :type queue: QueueInfo, optional + :param transfer: transfer, defaults to None + :type transfer: TransferredExtensionInfo, optional + :param voicemail: Specifies whether to take a voicemail and who should do it, defaults to None + :type voicemail: VoicemailInfo, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List, defaults to None + :type greetings: List[GreetingInfo], optional + :param screening: Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off', defaults to None + :type screening: CustomAnsweringRuleInfoScreening, optional + :param shared_lines: SharedLines call handling action settings, defaults to None + :type shared_lines: SharedLinesInfo, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + type_: CustomAnsweringRuleInfoType = None, + name: str = None, + enabled: bool = None, + schedule: ScheduleInfo = None, + called_numbers: List[CalledNumberInfo] = None, + callers: List[CallersInfo] = None, + call_handling_action: CustomAnsweringRuleInfoCallHandlingAction = None, + forwarding: ForwardingInfo = None, + unconditional_forwarding: UnconditionalForwardingInfo = None, + queue: QueueInfo = None, + transfer: TransferredExtensionInfo = None, + voicemail: VoicemailInfo = None, + greetings: List[GreetingInfo] = None, + screening: CustomAnsweringRuleInfoScreening = None, + shared_lines: SharedLinesInfo = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, CustomAnsweringRuleInfoType.list(), "type_" + ) + if name is not None: + self.name = name + if enabled is not None: + self.enabled = enabled + if schedule is not None: + self.schedule = self._define_object(schedule, ScheduleInfo) + if called_numbers is not None: + self.called_numbers = self._define_list(called_numbers, CalledNumberInfo) + if callers is not None: + self.callers = self._define_list(callers, CallersInfo) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + CustomAnsweringRuleInfoCallHandlingAction.list(), + "call_handling_action", + ) + if forwarding is not None: + self.forwarding = self._define_object(forwarding, ForwardingInfo) + if unconditional_forwarding is not None: + self.unconditional_forwarding = self._define_object( + unconditional_forwarding, UnconditionalForwardingInfo + ) + if queue is not None: + self.queue = self._define_object(queue, QueueInfo) + if transfer is not None: + self.transfer = self._define_object(transfer, TransferredExtensionInfo) + if voicemail is not None: + self.voicemail = self._define_object(voicemail, VoicemailInfo) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) + if screening is not None: + self.screening = self._enum_matching( + screening, CustomAnsweringRuleInfoScreening.list(), "screening" + ) + if shared_lines is not None: + self.shared_lines = self._define_object(shared_lines, SharedLinesInfo) diff --git a/src/ring_central/models/custom_company_greeting_info.py b/src/ring_central/models/custom_company_greeting_info.py new file mode 100644 index 00000000..e3bac468 --- /dev/null +++ b/src/ring_central/models/custom_company_greeting_info.py @@ -0,0 +1,130 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .custom_greeting_answering_rule_info import CustomGreetingAnsweringRuleInfo +from .custom_company_greeting_language_info import CustomCompanyGreetingLanguageInfo + + +class CustomCompanyGreetingInfoType(Enum): + """An enumeration representing different categories. + + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + COMPANY = "Company" + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CustomCompanyGreetingInfoType._member_map_.values()) + ) + + +class CustomCompanyGreetingInfoContentType(Enum): + """An enumeration representing different categories. + + :cvar AUDIO_MPEG: "audio/mpeg" + :vartype AUDIO_MPEG: str + :cvar AUDIO_WAV: "audio/wav" + :vartype AUDIO_WAV: str + """ + + AUDIO_MPEG = "audio/mpeg" + AUDIO_WAV = "audio/wav" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CustomCompanyGreetingInfoContentType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "content_type": "contentType", + "content_uri": "contentUri", + "answering_rule": "answeringRule", + } +) +class CustomCompanyGreetingInfo(BaseModel): + """CustomCompanyGreetingInfo + + :param uri: Link to an extension custom greeting, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + :param type_: Type of company greeting, defaults to None + :type type_: CustomCompanyGreetingInfoType, optional + :param content_type: Content media type, defaults to None + :type content_type: CustomCompanyGreetingInfoContentType, optional + :param content_uri: Link to a greeting content (audio file), defaults to None + :type content_uri: str, optional + :param answering_rule: Information on an answering rule that the greeting is applied to, defaults to None + :type answering_rule: CustomGreetingAnsweringRuleInfo, optional + :param language: Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording', defaults to None + :type language: CustomCompanyGreetingLanguageInfo, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + type_: CustomCompanyGreetingInfoType = None, + content_type: CustomCompanyGreetingInfoContentType = None, + content_uri: str = None, + answering_rule: CustomGreetingAnsweringRuleInfo = None, + language: CustomCompanyGreetingLanguageInfo = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, CustomCompanyGreetingInfoType.list(), "type_" + ) + if content_type is not None: + self.content_type = self._enum_matching( + content_type, + CustomCompanyGreetingInfoContentType.list(), + "content_type", + ) + if content_uri is not None: + self.content_uri = content_uri + if answering_rule is not None: + self.answering_rule = self._define_object( + answering_rule, CustomGreetingAnsweringRuleInfo + ) + if language is not None: + self.language = self._define_object( + language, CustomCompanyGreetingLanguageInfo + ) diff --git a/src/ring_central/models/custom_company_greeting_language_info.py b/src/ring_central/models/custom_company_greeting_language_info.py new file mode 100644 index 00000000..941ea661 --- /dev/null +++ b/src/ring_central/models/custom_company_greeting_language_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class CustomCompanyGreetingLanguageInfo(BaseModel): + """Information on a greeting language. Supported for types 'StopRecording', 'StartRecording', 'AutomaticRecording' + + :param id_: Internal identifier of a greeting language, defaults to None + :type id_: str, optional + :param uri: Link to a greeting language, defaults to None + :type uri: str, optional + :param name: Name of a greeting language, defaults to None + :type name: str, optional + :param locale_code: Locale code of a greeting language, defaults to None + :type locale_code: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + locale_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/custom_field_create_request.py b/src/ring_central/models/custom_field_create_request.py new file mode 100644 index 00000000..a076dd27 --- /dev/null +++ b/src/ring_central/models/custom_field_create_request.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CustomFieldCreateRequestCategory(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + """ + + USER = "User" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CustomFieldCreateRequestCategory._member_map_.values(), + ) + ) + + +@JsonMap({"display_name": "displayName"}) +class CustomFieldCreateRequest(BaseModel): + """CustomFieldCreateRequest + + :param category: Object category to attach custom fields, defaults to None + :type category: CustomFieldCreateRequestCategory, optional + :param display_name: Custom field display name, defaults to None + :type display_name: str, optional + """ + + def __init__( + self, + category: CustomFieldCreateRequestCategory = None, + display_name: str = None, + ): + if category is not None: + self.category = self._enum_matching( + category, CustomFieldCreateRequestCategory.list(), "category" + ) + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/custom_field_info.py b/src/ring_central/models/custom_field_info.py new file mode 100644 index 00000000..11a60398 --- /dev/null +++ b/src/ring_central/models/custom_field_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class CustomFieldInfo(BaseModel): + """CustomFieldInfo + + :param id_: Internal identifier of a custom field, defaults to None + :type id_: str, optional + :param value: Custom field value, defaults to None + :type value: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + """ + + def __init__(self, id_: str = None, value: str = None, display_name: str = None): + if id_ is not None: + self.id_ = id_ + if value is not None: + self.value = value + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/custom_field_list.py b/src/ring_central/models/custom_field_list.py new file mode 100644 index 00000000..4ad486a0 --- /dev/null +++ b/src/ring_central/models/custom_field_list.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .custom_field_model import CustomFieldModel + + +@JsonMap({}) +class CustomFieldList(BaseModel): + """CustomFieldList + + :param records: records, defaults to None + :type records: List[CustomFieldModel], optional + """ + + def __init__(self, records: List[CustomFieldModel] = None): + if records is not None: + self.records = self._define_list(records, CustomFieldModel) diff --git a/src/ring_central/models/custom_field_model.py b/src/ring_central/models/custom_field_model.py new file mode 100644 index 00000000..14ce3310 --- /dev/null +++ b/src/ring_central/models/custom_field_model.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CustomFieldModelCategory(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + """ + + USER = "User" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CustomFieldModelCategory._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class CustomFieldModel(BaseModel): + """CustomFieldModel + + :param id_: Custom field identifier, defaults to None + :type id_: str, optional + :param category: Object category to attach custom fields, defaults to None + :type category: CustomFieldModelCategory, optional + :param display_name: Custom field display name, defaults to None + :type display_name: str, optional + """ + + def __init__( + self, + id_: str = None, + category: CustomFieldModelCategory = None, + display_name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if category is not None: + self.category = self._enum_matching( + category, CustomFieldModelCategory.list(), "category" + ) + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/custom_field_resource.py b/src/ring_central/models/custom_field_resource.py new file mode 100644 index 00000000..49086240 --- /dev/null +++ b/src/ring_central/models/custom_field_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CustomFieldResource(BaseModel): + """CustomFieldResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param value: value, defaults to None + :type value: str, optional + """ + + def __init__(self, id_: str = None, name: str = None, value: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if value is not None: + self.value = value diff --git a/src/ring_central/models/custom_field_update_request.py b/src/ring_central/models/custom_field_update_request.py new file mode 100644 index 00000000..50092a73 --- /dev/null +++ b/src/ring_central/models/custom_field_update_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"display_name": "displayName"}) +class CustomFieldUpdateRequest(BaseModel): + """CustomFieldUpdateRequest + + :param display_name: Custom field display name, defaults to None + :type display_name: str, optional + """ + + def __init__(self, display_name: str = None): + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/custom_greeting_answering_rule_info.py b/src/ring_central/models/custom_greeting_answering_rule_info.py new file mode 100644 index 00000000..a45a764f --- /dev/null +++ b/src/ring_central/models/custom_greeting_answering_rule_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CustomGreetingAnsweringRuleInfo(BaseModel): + """Information on an answering rule that the greeting is applied to + + :param uri: Canonical URI of an answering rule, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/custom_greeting_info_request.py b/src/ring_central/models/custom_greeting_info_request.py new file mode 100644 index 00000000..82a2f52c --- /dev/null +++ b/src/ring_central/models/custom_greeting_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class CustomGreetingInfoRequest(BaseModel): + """CustomGreetingInfoRequest + + :param id_: Internal identifier of a custom user greeting, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/custom_user_greeting_info.py b/src/ring_central/models/custom_user_greeting_info.py new file mode 100644 index 00000000..c4fd4e22 --- /dev/null +++ b/src/ring_central/models/custom_user_greeting_info.py @@ -0,0 +1,135 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .custom_greeting_answering_rule_info import CustomGreetingAnsweringRuleInfo + + +class CustomUserGreetingInfoType(Enum): + """An enumeration representing different categories. + + :cvar INTRODUCTORY: "Introductory" + :vartype INTRODUCTORY: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar INTERRUPTPROMPT: "InterruptPrompt" + :vartype INTERRUPTPROMPT: str + :cvar CONNECTINGAUDIO: "ConnectingAudio" + :vartype CONNECTINGAUDIO: str + :cvar CONNECTINGMESSAGE: "ConnectingMessage" + :vartype CONNECTINGMESSAGE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNAVAILABLE: "Unavailable" + :vartype UNAVAILABLE: str + :cvar HOLDMUSIC: "HoldMusic" + :vartype HOLDMUSIC: str + :cvar PRONOUNCEDNAME: "PronouncedName" + :vartype PRONOUNCEDNAME: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + INTRODUCTORY = "Introductory" + ANNOUNCEMENT = "Announcement" + INTERRUPTPROMPT = "InterruptPrompt" + CONNECTINGAUDIO = "ConnectingAudio" + CONNECTINGMESSAGE = "ConnectingMessage" + VOICEMAIL = "Voicemail" + UNAVAILABLE = "Unavailable" + HOLDMUSIC = "HoldMusic" + PRONOUNCEDNAME = "PronouncedName" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, CustomUserGreetingInfoType._member_map_.values()) + ) + + +class CustomUserGreetingInfoContentType(Enum): + """An enumeration representing different categories. + + :cvar AUDIO_MPEG: "audio/mpeg" + :vartype AUDIO_MPEG: str + :cvar AUDIO_WAV: "audio/wav" + :vartype AUDIO_WAV: str + """ + + AUDIO_MPEG = "audio/mpeg" + AUDIO_WAV = "audio/wav" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CustomUserGreetingInfoContentType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "content_type": "contentType", + "content_uri": "contentUri", + "answering_rule": "answeringRule", + } +) +class CustomUserGreetingInfo(BaseModel): + """CustomUserGreetingInfo + + :param uri: Link to a custom user greeting, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a custom user greeting, defaults to None + :type id_: str, optional + :param type_: Type of custom user greeting, defaults to None + :type type_: CustomUserGreetingInfoType, optional + :param content_type: Content media type, defaults to None + :type content_type: CustomUserGreetingInfoContentType, optional + :param content_uri: Link to a greeting content (audio file), defaults to None + :type content_uri: str, optional + :param answering_rule: Information on an answering rule that the greeting is applied to, defaults to None + :type answering_rule: CustomGreetingAnsweringRuleInfo, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + type_: CustomUserGreetingInfoType = None, + content_type: CustomUserGreetingInfoContentType = None, + content_uri: str = None, + answering_rule: CustomGreetingAnsweringRuleInfo = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, CustomUserGreetingInfoType.list(), "type_" + ) + if content_type is not None: + self.content_type = self._enum_matching( + content_type, CustomUserGreetingInfoContentType.list(), "content_type" + ) + if content_uri is not None: + self.content_uri = content_uri + if answering_rule is not None: + self.answering_rule = self._define_object( + answering_rule, CustomGreetingAnsweringRuleInfo + ) diff --git a/src/ring_central/models/data_export_task.py b/src/ring_central/models/data_export_task.py new file mode 100644 index 00000000..d5976fa4 --- /dev/null +++ b/src/ring_central/models/data_export_task.py @@ -0,0 +1,99 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .creator_info import CreatorInfo +from .specific_info import SpecificInfo +from .export_task_result_info import ExportTaskResultInfo + + +class DataExportTaskStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar EXPIRED: "Expired" + :vartype EXPIRED: str + """ + + ACCEPTED = "Accepted" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + FAILED = "Failed" + EXPIRED = "Expired" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DataExportTaskStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class DataExportTask(BaseModel): + """DataExportTask + + :param uri: Canonical URI of a task, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a task, defaults to None + :type id_: str, optional + :param creation_time: Task creation timestamp, defaults to None + :type creation_time: str, optional + :param last_modified_time: Task last modification timestamp, defaults to None + :type last_modified_time: str, optional + :param status: Task status, defaults to None + :type status: DataExportTaskStatus, optional + :param creator: Task creator information, defaults to None + :type creator: CreatorInfo, optional + :param specific: Information specified in request, defaults to None + :type specific: SpecificInfo, optional + :param datasets: Data collection archives. Returned by task ID, defaults to None + :type datasets: List[ExportTaskResultInfo], optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + creation_time: str = None, + last_modified_time: str = None, + status: DataExportTaskStatus = None, + creator: CreatorInfo = None, + specific: SpecificInfo = None, + datasets: List[ExportTaskResultInfo] = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if status is not None: + self.status = self._enum_matching( + status, DataExportTaskStatus.list(), "status" + ) + if creator is not None: + self.creator = self._define_object(creator, CreatorInfo) + if specific is not None: + self.specific = self._define_object(specific, SpecificInfo) + if datasets is not None: + self.datasets = self._define_list(datasets, ExportTaskResultInfo) diff --git a/src/ring_central/models/data_export_task_contact_info.py b/src/ring_central/models/data_export_task_contact_info.py new file mode 100644 index 00000000..a8a9b57e --- /dev/null +++ b/src/ring_central/models/data_export_task_contact_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DataExportTaskContactInfo(BaseModel): + """List of users whose data is collected. The following data will be exported: posts, tasks, events, etc. posted by the user(s); posts addressing the user(s) via direct and @Mentions; tasks assigned to the listed user(s). The list of 10 users per request is supported. + + :param id_: Internal identifier of a contact, defaults to None + :type id_: str, optional + :param email: Email address of a contact, defaults to None + :type email: str, optional + """ + + def __init__(self, id_: str = None, email: str = None): + if id_ is not None: + self.id_ = id_ + if email is not None: + self.email = email diff --git a/src/ring_central/models/data_export_task_list.py b/src/ring_central/models/data_export_task_list.py new file mode 100644 index 00000000..4bce9b63 --- /dev/null +++ b/src/ring_central/models/data_export_task_list.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .data_export_task import DataExportTask +from .glip_data_export_navigation_info import GlipDataExportNavigationInfo +from .glip_data_export_paging_info import GlipDataExportPagingInfo + + +@JsonMap({}) +class DataExportTaskList(BaseModel): + """DataExportTaskList + + :param tasks: tasks, defaults to None + :type tasks: List[DataExportTask], optional + :param navigation: navigation, defaults to None + :type navigation: GlipDataExportNavigationInfo, optional + :param paging: paging, defaults to None + :type paging: GlipDataExportPagingInfo, optional + """ + + def __init__( + self, + tasks: List[DataExportTask] = None, + navigation: GlipDataExportNavigationInfo = None, + paging: GlipDataExportPagingInfo = None, + ): + if tasks is not None: + self.tasks = self._define_list(tasks, DataExportTask) + if navigation is not None: + self.navigation = self._define_object( + navigation, GlipDataExportNavigationInfo + ) + if paging is not None: + self.paging = self._define_object(paging, GlipDataExportPagingInfo) diff --git a/src/ring_central/models/day_of_week.py b/src/ring_central/models/day_of_week.py new file mode 100644 index 00000000..6764f60f --- /dev/null +++ b/src/ring_central/models/day_of_week.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class DayOfWeek(Enum): + """An enumeration representing different categories. + + :cvar SUNDAY: "Sunday" + :vartype SUNDAY: str + :cvar MONDAY: "Monday" + :vartype MONDAY: str + :cvar TUESDAY: "Tuesday" + :vartype TUESDAY: str + :cvar WEDNESDAY: "Wednesday" + :vartype WEDNESDAY: str + :cvar THURSDAY: "Thursday" + :vartype THURSDAY: str + :cvar FRIDAY: "Friday" + :vartype FRIDAY: str + :cvar SATURDAY: "Saturday" + :vartype SATURDAY: str + """ + + SUNDAY = "Sunday" + MONDAY = "Monday" + TUESDAY = "Tuesday" + WEDNESDAY = "Wednesday" + THURSDAY = "Thursday" + FRIDAY = "Friday" + SATURDAY = "Saturday" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DayOfWeek._member_map_.values())) diff --git a/src/ring_central/models/default_user_role.py b/src/ring_central/models/default_user_role.py new file mode 100644 index 00000000..6a00816b --- /dev/null +++ b/src/ring_central/models/default_user_role.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class DefaultUserRole(BaseModel): + """DefaultUserRole + + :param uri: Link to a default role resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a default role, defaults to None + :type id_: str, optional + :param display_name: Custom name of a default role, defaults to None + :type display_name: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None, display_name: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if display_name is not None: + self.display_name = self._pattern_matching( + display_name, '^((?!(<|>|\/|")).)*$', "display_name" + ) diff --git a/src/ring_central/models/default_user_role_request.py b/src/ring_central/models/default_user_role_request.py new file mode 100644 index 00000000..1016915f --- /dev/null +++ b/src/ring_central/models/default_user_role_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DefaultUserRoleRequest(BaseModel): + """DefaultUserRoleRequest + + :param id_: Internal identifier of a user role to be set as default, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/delegate.py b/src/ring_central/models/delegate.py new file mode 100644 index 00000000..b9c7e1d6 --- /dev/null +++ b/src/ring_central/models/delegate.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "account_id": "accountId", "extension_id": "extensionId"}) +class Delegate(BaseModel): + """Delegate + + :param id_: Delegate id (equal as extension id of delegate), defaults to None + :type id_: str, optional + :param name: Delegate name, defaults to None + :type name: str, optional + :param account_id: Delegate account id, defaults to None + :type account_id: str, optional + :param extension_id: Delegate extension id + :type extension_id: str + """ + + def __init__( + self, + extension_id: str, + id_: str = None, + name: str = None, + account_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if account_id is not None: + self.account_id = account_id + self.extension_id = extension_id diff --git a/src/ring_central/models/delegation_type_enum.py b/src/ring_central/models/delegation_type_enum.py new file mode 100644 index 00000000..e8842512 --- /dev/null +++ b/src/ring_central/models/delegation_type_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class DelegationTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar COWORKER: "Coworker" + :vartype COWORKER: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + COWORKER = "Coworker" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DelegationTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/delegators_list_result.py b/src/ring_central/models/delegators_list_result.py new file mode 100644 index 00000000..54ee07b4 --- /dev/null +++ b/src/ring_central/models/delegators_list_result.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .delegate import Delegate + + +@JsonMap({}) +class DelegatorsListResult(BaseModel): + """DelegatorsListResult + + :param items: items, defaults to None + :type items: List[Delegate], optional + """ + + def __init__(self, items: List[Delegate] = None): + if items is not None: + self.items = self._define_list(items, Delegate) diff --git a/src/ring_central/models/delete_device_from_inventory_request.py b/src/ring_central/models/delete_device_from_inventory_request.py new file mode 100644 index 00000000..463beb82 --- /dev/null +++ b/src/ring_central/models/delete_device_from_inventory_request.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"device_id": "deviceId"}) +class DeleteDeviceFromInventoryRequestRecords(BaseModel): + """DeleteDeviceFromInventoryRequestRecords + + :param device_id: Internal identifier of a device that should be deleted, defaults to None + :type device_id: str, optional + """ + + def __init__(self, device_id: str = None): + if device_id is not None: + self.device_id = device_id + + +@JsonMap({}) +class DeleteDeviceFromInventoryRequest(BaseModel): + """DeleteDeviceFromInventoryRequest + + :param records: List of internal identifiers of the devices that should be deleted + :type records: List[DeleteDeviceFromInventoryRequestRecords] + """ + + def __init__(self, records: List[DeleteDeviceFromInventoryRequestRecords]): + self.records = self._define_list( + records, DeleteDeviceFromInventoryRequestRecords + ) diff --git a/src/ring_central/models/delete_device_from_inventory_response.py b/src/ring_central/models/delete_device_from_inventory_response.py new file mode 100644 index 00000000..ca5390c1 --- /dev/null +++ b/src/ring_central/models/delete_device_from_inventory_response.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "bulk_item_successful": "bulkItemSuccessful", + "device_id": "deviceId", + "bulk_item_errors": "bulkItemErrors", + } +) +class DeleteDeviceFromInventoryResponseRecords(BaseModel): + """DeleteDeviceFromInventoryResponseRecords + + :param bulk_item_successful: Specifies if a device is successfully deleted, defaults to None + :type bulk_item_successful: bool, optional + :param device_id: Internal identifier of a device, defaults to None + :type device_id: str, optional + :param bulk_item_errors: The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false , defaults to None + :type bulk_item_errors: List[dict], optional + """ + + def __init__( + self, + bulk_item_successful: bool = None, + device_id: str = None, + bulk_item_errors: List[dict] = None, + ): + if bulk_item_successful is not None: + self.bulk_item_successful = bulk_item_successful + if device_id is not None: + self.device_id = device_id + if bulk_item_errors is not None: + self.bulk_item_errors = bulk_item_errors + + +@JsonMap({}) +class DeleteDeviceFromInventoryResponse(BaseModel): + """DeleteDeviceFromInventoryResponse + + :param records: records + :type records: List[DeleteDeviceFromInventoryResponseRecords] + """ + + def __init__(self, records: List[DeleteDeviceFromInventoryResponseRecords]): + self.records = self._define_list( + records, DeleteDeviceFromInventoryResponseRecords + ) diff --git a/src/ring_central/models/delete_forwarding_numbers_request.py b/src/ring_central/models/delete_forwarding_numbers_request.py new file mode 100644 index 00000000..4af3cd81 --- /dev/null +++ b/src/ring_central/models/delete_forwarding_numbers_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_number_id import ForwardingNumberId + + +@JsonMap({}) +class DeleteForwardingNumbersRequest(BaseModel): + """DeleteForwardingNumbersRequest + + :param records: List of forwarding number IDs, defaults to None + :type records: List[ForwardingNumberId], optional + """ + + def __init__(self, records: List[ForwardingNumberId] = None): + if records is not None: + self.records = self._define_list(records, ForwardingNumberId) diff --git a/src/ring_central/models/delete_message_by_filter_type.py b/src/ring_central/models/delete_message_by_filter_type.py new file mode 100644 index 00000000..dd074e3a --- /dev/null +++ b/src/ring_central/models/delete_message_by_filter_type.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class DeleteMessageByFilterType(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar TEXT: "Text" + :vartype TEXT: str + :cvar ALL: "All" + :vartype ALL: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + TEXT = "Text" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DeleteMessageByFilterType._member_map_.values()) + ) diff --git a/src/ring_central/models/delete_phone_numbers_request.py b/src/ring_central/models/delete_phone_numbers_request.py new file mode 100644 index 00000000..8aa5c646 --- /dev/null +++ b/src/ring_central/models/delete_phone_numbers_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .delete_phone_numbers_request_item import DeletePhoneNumbersRequestItem + + +@JsonMap({}) +class DeletePhoneNumbersRequest(BaseModel): + """DeletePhoneNumbersRequest + + :param records: List of phone numbers or phone IDs to be deleted + :type records: List[DeletePhoneNumbersRequestItem] + """ + + def __init__(self, records: List[DeletePhoneNumbersRequestItem]): + self.records = self._define_list(records, DeletePhoneNumbersRequestItem) diff --git a/src/ring_central/models/delete_phone_numbers_request_item.py b/src/ring_central/models/delete_phone_numbers_request_item.py new file mode 100644 index 00000000..80097f32 --- /dev/null +++ b/src/ring_central/models/delete_phone_numbers_request_item.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class DeletePhoneNumbersRequestItem(BaseModel): + """The indication of a number to be deleted - either "id" or "phoneNumber" must be specified. + + :param id_: Internal unique identifier of a phone number, defaults to None + :type id_: str, optional + :param phone_number: Phone number in e.164 format (with '+' prefix), defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: str = None, phone_number: str = None): + if id_ is not None: + self.id_ = self._pattern_matching(id_, "^[1-9]\d{1,14}$", "id_") + if phone_number is not None: + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) diff --git a/src/ring_central/models/delete_phone_numbers_response.py b/src/ring_central/models/delete_phone_numbers_response.py new file mode 100644 index 00000000..763c04b8 --- /dev/null +++ b/src/ring_central/models/delete_phone_numbers_response.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .delete_phone_numbers_response_item import DeletePhoneNumbersResponseItem + + +@JsonMap({}) +class DeletePhoneNumbersResponse(BaseModel): + """DeletePhoneNumbersResponse + + :param records: records + :type records: List[DeletePhoneNumbersResponseItem] + """ + + def __init__(self, records: List[DeletePhoneNumbersResponseItem]): + self.records = self._define_list(records, DeletePhoneNumbersResponseItem) diff --git a/src/ring_central/models/delete_phone_numbers_response_item.py b/src/ring_central/models/delete_phone_numbers_response_item.py new file mode 100644 index 00000000..104921c4 --- /dev/null +++ b/src/ring_central/models/delete_phone_numbers_response_item.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "bulk_item_successful": "bulkItemSuccessful", + "bulk_item_errors": "bulkItemErrors", + "id_": "id", + "phone_number": "phoneNumber", + } +) +class DeletePhoneNumbersResponseItem(BaseModel): + """DeletePhoneNumbersResponseItem + + :param bulk_item_successful: Indicates if this item was processed successfully during bulk operation. If false, `bulkItemErrors` attribute contains the list of errors + :type bulk_item_successful: bool + :param bulk_item_errors: The list of errors occurred during processing of particular item of bulk operation. Returned only if `bulkItemSuccessful` is false , defaults to None + :type bulk_item_errors: List[dict], optional + :param id_: Internal unique identifier of a phone number, defaults to None + :type id_: str, optional + :param phone_number: Phone number in e.164 format (with '+' prefix), defaults to None + :type phone_number: str, optional + """ + + def __init__( + self, + bulk_item_successful: bool, + bulk_item_errors: List[dict] = None, + id_: str = None, + phone_number: str = None, + ): + self.bulk_item_successful = bulk_item_successful + if bulk_item_errors is not None: + self.bulk_item_errors = bulk_item_errors + if id_ is not None: + self.id_ = self._pattern_matching(id_, "^[1-9]\d{1,14}$", "id_") + if phone_number is not None: + self.phone_number = self._pattern_matching( + phone_number, "^\+[1-9]\d{1,14}$", "phone_number" + ) diff --git a/src/ring_central/models/department_bulk_assign_resource.py b/src/ring_central/models/department_bulk_assign_resource.py new file mode 100644 index 00000000..9c48493a --- /dev/null +++ b/src/ring_central/models/department_bulk_assign_resource.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_assign_item import BulkAssignItem + + +@JsonMap({}) +class DepartmentBulkAssignResource(BaseModel): + """Please note that legacy 'Department' extension type corresponds to + 'Call Queue' extensions in modern RingCentral product terminology + + + :param items: items, defaults to None + :type items: List[BulkAssignItem], optional + """ + + def __init__(self, items: List[BulkAssignItem] = None): + if items is not None: + self.items = self._define_list(items, BulkAssignItem) diff --git a/src/ring_central/models/department_info.py b/src/ring_central/models/department_info.py new file mode 100644 index 00000000..54bcae1f --- /dev/null +++ b/src/ring_central/models/department_info.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class DepartmentInfo(BaseModel): + """Please note that the `Department` extension type corresponds to + 'Call Queue' extensions in modern RingCentral product terminology + + + :param id_: Internal identifier of a department extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension resource, defaults to None + :type uri: str, optional + :param extension_number: Short number of a department extension, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, extension_number: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/department_member_list.py b/src/ring_central/models/department_member_list.py new file mode 100644 index 00000000..2d8904ea --- /dev/null +++ b/src/ring_central/models/department_member_list.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_info import ExtensionInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class DepartmentMemberList(BaseModel): + """Please note that legacy 'Department' extension type corresponds to + 'Call Queue' extensions in modern RingCentral product terminology + + + :param uri: Canonical URL of the resource, defaults to None + :type uri: str, optional + :param records: List of call queue member extensions, defaults to None + :type records: List[ExtensionInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[ExtensionInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, ExtensionInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/detailed_call_info.py b/src/ring_central/models/detailed_call_info.py new file mode 100644 index 00000000..35bfe9fc --- /dev/null +++ b/src/ring_central/models/detailed_call_info.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "call_id": "callId", + "to_tag": "toTag", + "from_tag": "fromTag", + "remote_uri": "remoteUri", + "local_uri": "localUri", + "rc_session_id": "rcSessionId", + } +) +class DetailedCallInfo(BaseModel): + """DetailedCallInfo + + :param call_id: call_id, defaults to None + :type call_id: str, optional + :param to_tag: to_tag, defaults to None + :type to_tag: str, optional + :param from_tag: from_tag, defaults to None + :type from_tag: str, optional + :param remote_uri: remote_uri, defaults to None + :type remote_uri: str, optional + :param local_uri: local_uri, defaults to None + :type local_uri: str, optional + :param rc_session_id: rc_session_id, defaults to None + :type rc_session_id: str, optional + """ + + def __init__( + self, + call_id: str = None, + to_tag: str = None, + from_tag: str = None, + remote_uri: str = None, + local_uri: str = None, + rc_session_id: str = None, + ): + if call_id is not None: + self.call_id = call_id + if to_tag is not None: + self.to_tag = to_tag + if from_tag is not None: + self.from_tag = from_tag + if remote_uri is not None: + self.remote_uri = remote_uri + if local_uri is not None: + self.local_uri = local_uri + if rc_session_id is not None: + self.rc_session_id = rc_session_id diff --git a/src/ring_central/models/device_addon_info.py b/src/ring_central/models/device_addon_info.py new file mode 100644 index 00000000..4869e41d --- /dev/null +++ b/src/ring_central/models/device_addon_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DeviceAddonInfo(BaseModel): + """DeviceAddonInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param count: count, defaults to None + :type count: int, optional + """ + + def __init__(self, id_: str = None, name: str = None, count: int = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if count is not None: + self.count = count diff --git a/src/ring_central/models/device_definition.py b/src/ring_central/models/device_definition.py new file mode 100644 index 00000000..5a9435c8 --- /dev/null +++ b/src/ring_central/models/device_definition.py @@ -0,0 +1,121 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .postal_address import PostalAddress +from .phone_number_definition_toll_type import PhoneNumberDefinitionTollType +from .phone_number_definition_preferred_area_code import ( + PhoneNumberDefinitionPreferredAreaCode, +) +from .phone_number_definition_direct_number_with_reservation_id import ( + PhoneNumberDefinitionDirectNumberWithReservationId, +) +from .phone_number_definition_number_id import PhoneNumberDefinitionNumberId + + +class DeviceDefinitionType(Enum): + """An enumeration representing different categories. + + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar WEBRTC: "WebRTC" + :vartype WEBRTC: str + """ + + OTHERPHONE = "OtherPhone" + WEBRTC = "WebRTC" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DeviceDefinitionType._member_map_.values())) + + +@JsonMap({}) +class Emergency1_1(BaseModel): + """Emergency1_1 + + :param address: Postal address/location + :type address: PostalAddress + """ + + def __init__(self, address: PostalAddress): + self.address = self._define_object(address, PostalAddress) + + +@JsonMap({"id_": "id"}) +class Emergency2Location1(BaseModel): + """Emergency2Location1 + + :param id_: Emergency location ID + :type id_: str + """ + + def __init__(self, id_: str): + self.id_ = id_ + + +@JsonMap({}) +class Emergency2_1(BaseModel): + """Emergency2_1 + + :param location: location + :type location: Emergency2Location1 + """ + + def __init__(self, location: Emergency2Location1): + self.location = self._define_object(location, Emergency2Location1) + + +class DeviceDefinitionEmergencyGuard(OneOfBaseModel): + class_list = {"Emergency1_1": Emergency1_1, "Emergency2_1": Emergency2_1} + + +DeviceDefinitionEmergency = Union[Emergency1_1, Emergency2_1] + + +class DeviceDefinitionPhoneInfoGuard(OneOfBaseModel): + class_list = { + "PhoneNumberDefinitionTollType": PhoneNumberDefinitionTollType, + "PhoneNumberDefinitionPreferredAreaCode": PhoneNumberDefinitionPreferredAreaCode, + "PhoneNumberDefinitionDirectNumberWithReservationId": PhoneNumberDefinitionDirectNumberWithReservationId, + "PhoneNumberDefinitionNumberId": PhoneNumberDefinitionNumberId, + } + + +DeviceDefinitionPhoneInfo = Union[ + PhoneNumberDefinitionTollType, + PhoneNumberDefinitionPreferredAreaCode, + PhoneNumberDefinitionDirectNumberWithReservationId, + PhoneNumberDefinitionNumberId, +] + + +@JsonMap({"type_": "type", "phone_info": "phoneInfo"}) +class DeviceDefinition(BaseModel): + """DeviceDefinition + + :param type_: Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment + :type type_: DeviceDefinitionType + :param emergency: Only "address" is supported at the moment + :type emergency: DeviceDefinitionEmergency + :param phone_info: phone_info + :type phone_info: DeviceDefinitionPhoneInfo + """ + + def __init__( + self, + type_: DeviceDefinitionType, + emergency: DeviceDefinitionEmergency, + phone_info: DeviceDefinitionPhoneInfo, + ): + self.type_ = self._enum_matching(type_, DeviceDefinitionType.list(), "type_") + self.emergency = DeviceDefinitionEmergencyGuard.return_one_of(emergency) + self.phone_info = DeviceDefinitionPhoneInfoGuard.return_one_of(phone_info) diff --git a/src/ring_central/models/device_emergency_info.py b/src/ring_central/models/device_emergency_info.py new file mode 100644 index 00000000..5322190d --- /dev/null +++ b/src/ring_central/models/device_emergency_info.py @@ -0,0 +1,190 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .device_emergency_location_info import DeviceEmergencyLocationInfo + + +class DeviceEmergencyInfoAddressStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar PROVISIONING: "Provisioning" + :vartype PROVISIONING: str + """ + + VALID = "Valid" + INVALID = "Invalid" + PROVISIONING = "Provisioning" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + DeviceEmergencyInfoAddressStatus._member_map_.values(), + ) + ) + + +class DeviceEmergencyInfoVisibility(Enum): + """An enumeration representing different categories. + + :cvar PRIVATE: "Private" + :vartype PRIVATE: str + :cvar PUBLIC: "Public" + :vartype PUBLIC: str + """ + + PRIVATE = "Private" + PUBLIC = "Public" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DeviceEmergencyInfoVisibility._member_map_.values()) + ) + + +class DeviceEmergencyInfoSyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DeviceEmergencyInfoSyncStatus._member_map_.values()) + ) + + +class DeviceEmergencyInfoAddressEditableStatus(Enum): + """An enumeration representing different categories. + + :cvar MAINDEVICE: "MainDevice" + :vartype MAINDEVICE: str + :cvar ANYDEVICE: "AnyDevice" + :vartype ANYDEVICE: str + """ + + MAINDEVICE = "MainDevice" + ANYDEVICE = "AnyDevice" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + DeviceEmergencyInfoAddressEditableStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "out_of_country": "outOfCountry", + "address_status": "addressStatus", + "sync_status": "syncStatus", + "address_editable_status": "addressEditableStatus", + } +) +class DeviceEmergencyInfo(BaseModel): + """Device emergency settings + + :param address: address, defaults to None + :type address: CommonEmergencyLocationAddressInfoDefault, optional + :param location: Company emergency response location details, defaults to None + :type location: DeviceEmergencyLocationInfo, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + :param address_status: Emergency address status, defaults to None + :type address_status: DeviceEmergencyInfoAddressStatus, optional + :param visibility: Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array , defaults to None + :type visibility: DeviceEmergencyInfoVisibility, optional + :param sync_status: Resulting status of the emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: DeviceEmergencyInfoSyncStatus, optional + :param address_editable_status: Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) , defaults to None + :type address_editable_status: DeviceEmergencyInfoAddressEditableStatus, optional + """ + + def __init__( + self, + address: CommonEmergencyLocationAddressInfoDefault = None, + location: DeviceEmergencyLocationInfo = None, + out_of_country: bool = None, + address_status: DeviceEmergencyInfoAddressStatus = None, + visibility: DeviceEmergencyInfoVisibility = None, + sync_status: DeviceEmergencyInfoSyncStatus = None, + address_editable_status: DeviceEmergencyInfoAddressEditableStatus = None, + ): + if address is not None: + self.address = self._define_object( + address, CommonEmergencyLocationAddressInfoDefault + ) + if location is not None: + self.location = self._define_object(location, DeviceEmergencyLocationInfo) + if out_of_country is not None: + self.out_of_country = out_of_country + if address_status is not None: + self.address_status = self._enum_matching( + address_status, + DeviceEmergencyInfoAddressStatus.list(), + "address_status", + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, DeviceEmergencyInfoVisibility.list(), "visibility" + ) + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, DeviceEmergencyInfoSyncStatus.list(), "sync_status" + ) + if address_editable_status is not None: + self.address_editable_status = self._enum_matching( + address_editable_status, + DeviceEmergencyInfoAddressEditableStatus.list(), + "address_editable_status", + ) diff --git a/src/ring_central/models/device_emergency_location_info.py b/src/ring_central/models/device_emergency_location_info.py new file mode 100644 index 00000000..131c830f --- /dev/null +++ b/src/ring_central/models/device_emergency_location_info.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "address_format_id": "addressFormatId"}) +class DeviceEmergencyLocationInfo(BaseModel): + """Company emergency response location details + + :param id_: Internal identifier of the emergency response location, defaults to None + :type id_: str, optional + :param name: Location name, defaults to None + :type name: str, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + """ + + def __init__( + self, id_: str = None, name: str = None, address_format_id: str = None + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if address_format_id is not None: + self.address_format_id = address_format_id diff --git a/src/ring_central/models/device_emergency_service_address_resource_au.py b/src/ring_central/models/device_emergency_service_address_resource_au.py new file mode 100644 index 00000000..17eb8da6 --- /dev/null +++ b/src/ring_central/models/device_emergency_service_address_resource_au.py @@ -0,0 +1,114 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "customer_name": "customerName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "out_of_country": "outOfCountry", + "building_name": "buildingName", + "street_type": "streetType", + "building_number": "buildingNumber", + } +) +class DeviceEmergencyServiceAddressResourceAu(BaseModel): + """Address for emergency cases. The same emergency address is assigned to all the numbers of one device + + :param street: street, defaults to None + :type street: str, optional + :param street2: street2, defaults to None + :type street2: str, optional + :param city: city, defaults to None + :type city: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param customer_name: customer_name, defaults to None + :type customer_name: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param street_type: Street type, defaults to None + :type street_type: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + """ + + def __init__( + self, + street: str = None, + street2: str = None, + city: str = None, + zip: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + country_id: str = None, + country_iso_code: str = None, + country: str = None, + country_name: str = None, + out_of_country: bool = None, + building_name: str = None, + street_type: str = None, + building_number: str = None, + ): + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country is not None: + self.country = country + if country_name is not None: + self.country_name = country_name + if out_of_country is not None: + self.out_of_country = out_of_country + if building_name is not None: + self.building_name = building_name + if street_type is not None: + self.street_type = street_type + if building_number is not None: + self.building_number = building_number diff --git a/src/ring_central/models/device_emergency_service_address_resource_default.py b/src/ring_central/models/device_emergency_service_address_resource_default.py new file mode 100644 index 00000000..aac3e0c5 --- /dev/null +++ b/src/ring_central/models/device_emergency_service_address_resource_default.py @@ -0,0 +1,96 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "customer_name": "customerName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "out_of_country": "outOfCountry", + } +) +class DeviceEmergencyServiceAddressResourceDefault(BaseModel): + """Address for emergency cases. The same emergency address is assigned to all the numbers of one device + + :param street: street, defaults to None + :type street: str, optional + :param street2: street2, defaults to None + :type street2: str, optional + :param city: city, defaults to None + :type city: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param customer_name: customer_name, defaults to None + :type customer_name: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + """ + + def __init__( + self, + street: str = None, + street2: str = None, + city: str = None, + zip: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + country_id: str = None, + country_iso_code: str = None, + country: str = None, + country_name: str = None, + out_of_country: bool = None, + ): + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country is not None: + self.country = country + if country_name is not None: + self.country_name = country_name + if out_of_country is not None: + self.out_of_country = out_of_country diff --git a/src/ring_central/models/device_emergency_service_address_resource_fr.py b/src/ring_central/models/device_emergency_service_address_resource_fr.py new file mode 100644 index 00000000..46e31f6e --- /dev/null +++ b/src/ring_central/models/device_emergency_service_address_resource_fr.py @@ -0,0 +1,108 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "customer_name": "customerName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "out_of_country": "outOfCountry", + "building_name": "buildingName", + "building_number": "buildingNumber", + } +) +class DeviceEmergencyServiceAddressResourceFr(BaseModel): + """Address for emergency cases. The same emergency address is assigned to all the numbers of one device + + :param street: street, defaults to None + :type street: str, optional + :param street2: street2, defaults to None + :type street2: str, optional + :param city: city, defaults to None + :type city: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param customer_name: customer_name, defaults to None + :type customer_name: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + """ + + def __init__( + self, + street: str = None, + street2: str = None, + city: str = None, + zip: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + country_id: str = None, + country_iso_code: str = None, + country: str = None, + country_name: str = None, + out_of_country: bool = None, + building_name: str = None, + building_number: str = None, + ): + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country is not None: + self.country = country + if country_name is not None: + self.country_name = country_name + if out_of_country is not None: + self.out_of_country = out_of_country + if building_name is not None: + self.building_name = building_name + if building_number is not None: + self.building_number = building_number diff --git a/src/ring_central/models/device_extension_info.py b/src/ring_central/models/device_extension_info.py new file mode 100644 index 00000000..84fc4735 --- /dev/null +++ b/src/ring_central/models/device_extension_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class DeviceExtensionInfo(BaseModel): + """DeviceExtensionInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URL of an extension resource, defaults to None + :type uri: str, optional + :param extension_number: Short extension number, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: int = None, uri: str = None, extension_number: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/device_feature_enum.py b/src/ring_central/models/device_feature_enum.py new file mode 100644 index 00000000..cbedb12d --- /dev/null +++ b/src/ring_central/models/device_feature_enum.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class DeviceFeatureEnum(Enum): + """An enumeration representing different categories. + + :cvar BLA: "BLA" + :vartype BLA: str + :cvar COMMONPHONE: "CommonPhone" + :vartype COMMONPHONE: str + :cvar INTERCOM: "Intercom" + :vartype INTERCOM: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar HELD: "HELD" + :vartype HELD: str + """ + + BLA = "BLA" + COMMONPHONE = "CommonPhone" + INTERCOM = "Intercom" + PAGING = "Paging" + HELD = "HELD" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DeviceFeatureEnum._member_map_.values())) diff --git a/src/ring_central/models/device_info_request.py b/src/ring_central/models/device_info_request.py new file mode 100644 index 00000000..5f56e643 --- /dev/null +++ b/src/ring_central/models/device_info_request.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "app_external_id": "appExternalId", "computer_name": "computerName"} +) +class DeviceInfoRequest(BaseModel): + """Device information + + :param id_: Device unique identifier, retrieved at previous session (if any), defaults to None + :type id_: str, optional + :param app_external_id: Supported for iOS devices only. Certificate name (used by iOS applications for APNS subscription) , defaults to None + :type app_external_id: str, optional + :param computer_name: Computer name (for devices of `SoftPhone` type only), defaults to None + :type computer_name: str, optional + :param serial: Endpoint/device instance identifier for Softphone and mobile applications , defaults to None + :type serial: str, optional + """ + + def __init__( + self, + id_: str = None, + app_external_id: str = None, + computer_name: str = None, + serial: str = None, + ): + if id_ is not None: + self.id_ = id_ + if app_external_id is not None: + self.app_external_id = app_external_id + if computer_name is not None: + self.computer_name = computer_name + if serial is not None: + self.serial = serial diff --git a/src/ring_central/models/device_model_info.py b/src/ring_central/models/device_model_info.py new file mode 100644 index 00000000..3ec7a37d --- /dev/null +++ b/src/ring_central/models/device_model_info.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_addon_info import DeviceAddonInfo + + +class DeviceModelInfoFeatures(Enum): + """An enumeration representing different categories. + + :cvar BLA: "BLA" + :vartype BLA: str + :cvar INTERCOM: "Intercom" + :vartype INTERCOM: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar HELD: "HELD" + :vartype HELD: str + """ + + BLA = "BLA" + INTERCOM = "Intercom" + PAGING = "Paging" + HELD = "HELD" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DeviceModelInfoFeatures._member_map_.values()) + ) + + +@JsonMap({"id_": "id"}) +class DeviceModelInfo(BaseModel): + """HardPhone model information + + :param id_: Addon identifier. For HardPhones of certain types, which are compatible with this add-on identifier, defaults to None + :type id_: str, optional + :param name: Device name, defaults to None + :type name: str, optional + :param addons: Add-ons description + :type addons: List[DeviceAddonInfo] + :param features: Device feature or multiple features supported, defaults to None + :type features: List[DeviceModelInfoFeatures], optional + """ + + def __init__( + self, + addons: List[DeviceAddonInfo], + id_: str = None, + name: str = None, + features: List[DeviceModelInfoFeatures] = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + self.addons = self._define_list(addons, DeviceAddonInfo) + if features is not None: + self.features = self._define_list(features, DeviceModelInfoFeatures) diff --git a/src/ring_central/models/device_phone_lines_emergency_address_info.py b/src/ring_central/models/device_phone_lines_emergency_address_info.py new file mode 100644 index 00000000..96f989a9 --- /dev/null +++ b/src/ring_central/models/device_phone_lines_emergency_address_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"local_only": "localOnly"}) +class DevicePhoneLinesEmergencyAddressInfo(BaseModel): + """DevicePhoneLinesEmergencyAddressInfo + + :param required: Indicates that emergency address is required, defaults to None + :type required: bool, optional + :param local_only: Indicates that only local emergency address can be specified, defaults to None + :type local_only: bool, optional + """ + + def __init__(self, required: bool = None, local_only: bool = None): + if required is not None: + self.required = required + if local_only is not None: + self.local_only = local_only diff --git a/src/ring_central/models/device_phone_lines_info.py b/src/ring_central/models/device_phone_lines_info.py new file mode 100644 index 00000000..e8a3c3c6 --- /dev/null +++ b/src/ring_central/models/device_phone_lines_info.py @@ -0,0 +1,79 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_phone_lines_emergency_address_info import ( + DevicePhoneLinesEmergencyAddressInfo, +) +from .device_phone_number_info import DevicePhoneNumberInfo + + +class LineType(Enum): + """An enumeration representing different categories. + + :cvar STANDALONE: "Standalone" + :vartype STANDALONE: str + :cvar STANDALONEFREE: "StandaloneFree" + :vartype STANDALONEFREE: str + :cvar BLAPRIMARY: "BlaPrimary" + :vartype BLAPRIMARY: str + :cvar BLASECONDARY: "BlaSecondary" + :vartype BLASECONDARY: str + """ + + STANDALONE = "Standalone" + STANDALONEFREE = "StandaloneFree" + BLAPRIMARY = "BlaPrimary" + BLASECONDARY = "BlaSecondary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, LineType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "line_type": "lineType", + "emergency_address": "emergencyAddress", + "phone_info": "phoneInfo", + } +) +class DevicePhoneLinesInfo(BaseModel): + """DevicePhoneLinesInfo + + :param id_: Internal identifier of a phone line, defaults to None + :type id_: str, optional + :param line_type: Type of phone line, defaults to None + :type line_type: LineType, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: DevicePhoneLinesEmergencyAddressInfo, optional + :param phone_info: Phone number information, defaults to None + :type phone_info: DevicePhoneNumberInfo, optional + """ + + def __init__( + self, + id_: str = None, + line_type: LineType = None, + emergency_address: DevicePhoneLinesEmergencyAddressInfo = None, + phone_info: DevicePhoneNumberInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if line_type is not None: + self.line_type = self._enum_matching( + line_type, LineType.list(), "line_type" + ) + if emergency_address is not None: + self.emergency_address = self._define_object( + emergency_address, DevicePhoneLinesEmergencyAddressInfo + ) + if phone_info is not None: + self.phone_info = self._define_object(phone_info, DevicePhoneNumberInfo) diff --git a/src/ring_central/models/device_phone_number_country_info.py b/src/ring_central/models/device_phone_number_country_info.py new file mode 100644 index 00000000..2e589162 --- /dev/null +++ b/src/ring_central/models/device_phone_number_country_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DevicePhoneNumberCountryInfo(BaseModel): + """Brief information on a phone number country + + :param id_: Internal identifier of a home country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a home country, defaults to None + :type uri: str, optional + :param name: Official name of a home country, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/device_phone_number_info.py b/src/ring_central/models/device_phone_number_info.py new file mode 100644 index 00000000..41608ee2 --- /dev/null +++ b/src/ring_central/models/device_phone_number_info.py @@ -0,0 +1,158 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_phone_number_country_info import DevicePhoneNumberCountryInfo + + +class DevicePhoneNumberInfoPaymentType(Enum): + """An enumeration representing different categories. + + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + :cvar TOLLFREE: "TollFree" + :vartype TOLLFREE: str + :cvar LOCAL: "Local" + :vartype LOCAL: str + """ + + EXTERNAL = "External" + TOLLFREE = "TollFree" + LOCAL = "Local" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + DevicePhoneNumberInfoPaymentType._member_map_.values(), + ) + ) + + +class DevicePhoneNumberInfoUsageType(Enum): + """An enumeration representing different categories. + + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + """ + + COMPANYNUMBER = "CompanyNumber" + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DevicePhoneNumberInfoUsageType._member_map_.values()) + ) + + +class DevicePhoneNumberInfoType(Enum): + """An enumeration representing different categories. + + :cvar VOICEFAX: "VoiceFax" + :vartype VOICEFAX: str + :cvar FAXONLY: "FaxOnly" + :vartype FAXONLY: str + :cvar VOICEONLY: "VoiceOnly" + :vartype VOICEONLY: str + """ + + VOICEFAX = "VoiceFax" + FAXONLY = "FaxOnly" + VOICEONLY = "VoiceOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DevicePhoneNumberInfoType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "payment_type": "paymentType", + "phone_number": "phoneNumber", + "usage_type": "usageType", + "type_": "type", + } +) +class DevicePhoneNumberInfo(BaseModel): + """Phone number information + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: int, optional + :param country: Brief information on a phone number country, defaults to None + :type country: DevicePhoneNumberCountryInfo, optional + :param payment_type: Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system = ['External', 'TollFree', 'Local'], defaults to None + :type payment_type: DevicePhoneNumberInfoPaymentType, optional + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param usage_type: usage_type, defaults to None + :type usage_type: DevicePhoneNumberInfoUsageType, optional + :param type_: Type of phone number, defaults to None + :type type_: DevicePhoneNumberInfoType, optional + """ + + def __init__( + self, + id_: int = None, + country: DevicePhoneNumberCountryInfo = None, + payment_type: DevicePhoneNumberInfoPaymentType = None, + phone_number: str = None, + usage_type: DevicePhoneNumberInfoUsageType = None, + type_: DevicePhoneNumberInfoType = None, + ): + if id_ is not None: + self.id_ = id_ + if country is not None: + self.country = self._define_object(country, DevicePhoneNumberCountryInfo) + if payment_type is not None: + self.payment_type = self._enum_matching( + payment_type, DevicePhoneNumberInfoPaymentType.list(), "payment_type" + ) + if phone_number is not None: + self.phone_number = phone_number + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, DevicePhoneNumberInfoUsageType.list(), "usage_type" + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, DevicePhoneNumberInfoType.list(), "type_" + ) diff --git a/src/ring_central/models/device_provisioning_extension_info.py b/src/ring_central/models/device_provisioning_extension_info.py new file mode 100644 index 00000000..d2868880 --- /dev/null +++ b/src/ring_central/models/device_provisioning_extension_info.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "extension_number": "extensionNumber", "partner_id": "partnerId"} +) +class DeviceProvisioningExtensionInfo(BaseModel): + """Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Number of extension, defaults to None + :type extension_number: str, optional + :param partner_id: For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + partner_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if partner_id is not None: + self.partner_id = partner_id diff --git a/src/ring_central/models/device_resource.py b/src/ring_central/models/device_resource.py new file mode 100644 index 00000000..6213e20d --- /dev/null +++ b/src/ring_central/models/device_resource.py @@ -0,0 +1,220 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .model_info import ModelInfo +from .extension_info_int_id import ExtensionInfoIntId +from .device_emergency_info import DeviceEmergencyInfo +from .emergency_service_address_resource import EmergencyServiceAddressResource +from .phone_lines_info import PhoneLinesInfo +from .shipping_info import ShippingInfo +from .device_site_info import DeviceSiteInfo +from .line_pooling_enum import LinePoolingEnum +from .billing_statement_info import BillingStatementInfo + + +class DeviceResourceType(Enum): + """An enumeration representing different categories. + + :cvar BLA: "BLA" + :vartype BLA: str + :cvar SOFTPHONE: "SoftPhone" + :vartype SOFTPHONE: str + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar HARDPHONE: "HardPhone" + :vartype HARDPHONE: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar WEBRTC: "WebRTC" + :vartype WEBRTC: str + """ + + BLA = "BLA" + SOFTPHONE = "SoftPhone" + OTHERPHONE = "OtherPhone" + HARDPHONE = "HardPhone" + WEBPHONE = "WebPhone" + PAGING = "Paging" + ROOM = "Room" + WEBRTC = "WebRTC" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DeviceResourceType._member_map_.values())) + + +class DeviceResourceStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar ONLINE: "Online" + :vartype ONLINE: str + """ + + OFFLINE = "Offline" + ONLINE = "Online" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DeviceResourceStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "computer_name": "computerName", + "emergency_service_address": "emergencyServiceAddress", + "phone_lines": "phoneLines", + "box_billing_id": "boxBillingId", + "use_as_common_phone": "useAsCommonPhone", + "hot_desk_device": "hotDeskDevice", + "in_company_net": "inCompanyNet", + "last_location_report_time": "lastLocationReportTime", + "line_pooling": "linePooling", + "billing_statement": "billingStatement", + } +) +class DeviceResource(BaseModel): + """DeviceResource + + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a device, defaults to None + :type uri: str, optional + :param sku: Device identification number (SKU, Stock Keeping Unit) in the format TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all other devices including soft phones); ID - device model ID; AT - add-on type ID; AC - add-on count (if any). For example 'HP-56-2-2' , defaults to None + :type sku: str, optional + :param type_: Device type, defaults to None + :type type_: DeviceResourceType, optional + :param name: Device name. Mandatory if ordering SoftPhone or OtherPhone. Optional for HardPhone. If not specified for HardPhone, then a device model is used as a device name , defaults to None + :type name: str, optional + :param serial: Serial number for HardPhone (is returned only when the phone is shipped and provisioned); endpoint ID for SoftPhone and mobile applications , defaults to None + :type serial: str, optional + :param status: Device status, defaults to None + :type status: DeviceResourceStatus, optional + :param computer_name: Computer name (for devices of `SoftPhone` type only), defaults to None + :type computer_name: str, optional + :param model: HardPhone model information, defaults to None + :type model: ModelInfo, optional + :param extension: This attribute can be omitted for unassigned devices, defaults to None + :type extension: ExtensionInfoIntId, optional + :param emergency: Device emergency settings, defaults to None + :type emergency: DeviceEmergencyInfo, optional + :param emergency_service_address: Address for emergency cases. The same emergency address is assigned to all the numbers of one device , defaults to None + :type emergency_service_address: EmergencyServiceAddressResource, optional + :param phone_lines: Phone lines information, defaults to None + :type phone_lines: List[PhoneLinesInfo], optional + :param shipping: Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer , defaults to None + :type shipping: ShippingInfo, optional + :param box_billing_id: Box billing identifier of a device. Applicable only for devices of `HardPhone` type. It is an alternative way to identify the device to be ordered. Either `model` structure, or `boxBillingId` must be specified , defaults to None + :type box_billing_id: int, optional + :param use_as_common_phone: Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone. , defaults to None + :type use_as_common_phone: bool, optional + :param hot_desk_device: This flag indicates whether this device is used for hot desking or not, defaults to None + :type hot_desk_device: bool, optional + :param in_company_net: Network location status. `true` if the device is located in the configured corporate network (On-Net); `false` for Off-Net location. Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not enabled for the account/user, or if device network location is not determined , defaults to None + :type in_company_net: bool, optional + :param site: Site data, defaults to None + :type site: DeviceSiteInfo, optional + :param last_location_report_time: Date/time of receiving last location report in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z , defaults to None + :type last_location_report_time: str, optional + :param line_pooling: Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.) , defaults to None + :type line_pooling: LinePoolingEnum, optional + :param billing_statement: Billing information. Returned for device update request if `prestatement` query parameter is set to 'true' , defaults to None + :type billing_statement: BillingStatementInfo, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + sku: str = None, + type_: DeviceResourceType = None, + name: str = None, + serial: str = None, + status: DeviceResourceStatus = None, + computer_name: str = None, + model: ModelInfo = None, + extension: ExtensionInfoIntId = None, + emergency: DeviceEmergencyInfo = None, + emergency_service_address: EmergencyServiceAddressResource = None, + phone_lines: List[PhoneLinesInfo] = None, + shipping: ShippingInfo = None, + box_billing_id: int = None, + use_as_common_phone: bool = None, + hot_desk_device: bool = None, + in_company_net: bool = None, + site: DeviceSiteInfo = None, + last_location_report_time: str = None, + line_pooling: LinePoolingEnum = None, + billing_statement: BillingStatementInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if sku is not None: + self.sku = sku + if type_ is not None: + self.type_ = self._enum_matching(type_, DeviceResourceType.list(), "type_") + if name is not None: + self.name = name + if serial is not None: + self.serial = serial + if status is not None: + self.status = self._enum_matching( + status, DeviceResourceStatus.list(), "status" + ) + if computer_name is not None: + self.computer_name = computer_name + if model is not None: + self.model = self._define_object(model, ModelInfo) + if extension is not None: + self.extension = self._define_object(extension, ExtensionInfoIntId) + if emergency is not None: + self.emergency = self._define_object(emergency, DeviceEmergencyInfo) + if emergency_service_address is not None: + self.emergency_service_address = self._define_object( + emergency_service_address, EmergencyServiceAddressResource + ) + if phone_lines is not None: + self.phone_lines = self._define_list(phone_lines, PhoneLinesInfo) + if shipping is not None: + self.shipping = self._define_object(shipping, ShippingInfo) + if box_billing_id is not None: + self.box_billing_id = box_billing_id + if use_as_common_phone is not None: + self.use_as_common_phone = use_as_common_phone + if hot_desk_device is not None: + self.hot_desk_device = hot_desk_device + if in_company_net is not None: + self.in_company_net = in_company_net + if site is not None: + self.site = self._define_object(site, DeviceSiteInfo) + if last_location_report_time is not None: + self.last_location_report_time = last_location_report_time + if line_pooling is not None: + self.line_pooling = self._enum_matching( + line_pooling, LinePoolingEnum.list(), "line_pooling" + ) + if billing_statement is not None: + self.billing_statement = self._define_object( + billing_statement, BillingStatementInfo + ) diff --git a/src/ring_central/models/device_site_info.py b/src/ring_central/models/device_site_info.py new file mode 100644 index 00000000..e69d3755 --- /dev/null +++ b/src/ring_central/models/device_site_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DeviceSiteInfo(BaseModel): + """Site data + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + :param name: Name of a site, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/device_update_extension_info.py b/src/ring_central/models/device_update_extension_info.py new file mode 100644 index 00000000..99d9c4b6 --- /dev/null +++ b/src/ring_central/models/device_update_extension_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class DeviceUpdateExtensionInfo(BaseModel): + """Information on extension that the device is assigned to + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/device_update_phone_lines_info.py b/src/ring_central/models/device_update_phone_lines_info.py new file mode 100644 index 00000000..a1c4fe62 --- /dev/null +++ b/src/ring_central/models/device_update_phone_lines_info.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .update_device_phone_info import UpdateDevicePhoneInfo + + +@JsonMap({"phone_lines": "phoneLines"}) +class DeviceUpdatePhoneLinesInfo(BaseModel): + """Information on phone lines added to a device + + :param phone_lines: Information on phone lines added to a device, defaults to None + :type phone_lines: List[UpdateDevicePhoneInfo], optional + """ + + def __init__(self, phone_lines: List[UpdateDevicePhoneInfo] = None): + if phone_lines is not None: + self.phone_lines = self._define_list(phone_lines, UpdateDevicePhoneInfo) diff --git a/src/ring_central/models/dial_in_number_resource.py b/src/ring_central/models/dial_in_number_resource.py new file mode 100644 index 00000000..31494a31 --- /dev/null +++ b/src/ring_central/models/dial_in_number_resource.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .meetings_country_resource import MeetingsCountryResource + + +@JsonMap({"phone_number": "phoneNumber", "formatted_number": "formattedNumber"}) +class DialInNumberResource(BaseModel): + """DialInNumberResource + + :param phone_number: phone_number, defaults to None + :type phone_number: str, optional + :param formatted_number: formatted_number, defaults to None + :type formatted_number: str, optional + :param location: location, defaults to None + :type location: str, optional + :param country: country, defaults to None + :type country: MeetingsCountryResource, optional + """ + + def __init__( + self, + phone_number: str = None, + formatted_number: str = None, + location: str = None, + country: MeetingsCountryResource = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if formatted_number is not None: + self.formatted_number = formatted_number + if location is not None: + self.location = location + if country is not None: + self.country = self._define_object(country, MeetingsCountryResource) diff --git a/src/ring_central/models/diarize_input.py b/src/ring_central/models/diarize_input.py new file mode 100644 index 00000000..aec68c93 --- /dev/null +++ b/src/ring_central/models/diarize_input.py @@ -0,0 +1,148 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class DiarizeInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DiarizeInputEncoding._member_map_.values())) + + +class DiarizeInputAudioType(Enum): + """An enumeration representing different categories. + + :cvar CALLCENTER: "CallCenter" + :vartype CALLCENTER: str + :cvar MEETING: "Meeting" + :vartype MEETING: str + :cvar EARNINGSCALLS: "EarningsCalls" + :vartype EARNINGSCALLS: str + :cvar INTERVIEW: "Interview" + :vartype INTERVIEW: str + :cvar PRESSCONFERENCE: "PressConference" + :vartype PRESSCONFERENCE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + """ + + CALLCENTER = "CallCenter" + MEETING = "Meeting" + EARNINGSCALLS = "EarningsCalls" + INTERVIEW = "Interview" + PRESSCONFERENCE = "PressConference" + VOICEMAIL = "Voicemail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DiarizeInputAudioType._member_map_.values())) + + +@JsonMap( + { + "content_uri": "contentUri", + "language_code": "languageCode", + "audio_type": "audioType", + "separate_speaker_per_channel": "separateSpeakerPerChannel", + "speaker_count": "speakerCount", + "speaker_ids": "speakerIds", + "enable_voice_activity_detection": "enableVoiceActivityDetection", + } +) +class DiarizeInput(BaseModel): + """DiarizeInput + + :param content_uri: Publicly facing uri, defaults to None + :type content_uri: str, optional + :param encoding: The encoding of the original audio, defaults to None + :type encoding: DiarizeInputEncoding, optional + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param source: Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc, defaults to None + :type source: str, optional + :param audio_type: Type of the audio, defaults to None + :type audio_type: DiarizeInputAudioType, optional + :param separate_speaker_per_channel: Set to True if the input audio is multi-channel and each channel has a separate speaker., defaults to None + :type separate_speaker_per_channel: bool, optional + :param speaker_count: Number of speakers in the file, omit parameter if unknown, defaults to None + :type speaker_count: int, optional + :param speaker_ids: Optional set of speakers to be identified from the call., defaults to None + :type speaker_ids: List[str], optional + :param enable_voice_activity_detection: Apply voice activity detection., defaults to None + :type enable_voice_activity_detection: bool, optional + """ + + def __init__( + self, + content_uri: str = None, + encoding: DiarizeInputEncoding = None, + language_code: str = None, + source: str = None, + audio_type: DiarizeInputAudioType = None, + separate_speaker_per_channel: bool = None, + speaker_count: int = None, + speaker_ids: List[str] = None, + enable_voice_activity_detection: bool = None, + ): + if content_uri is not None: + self.content_uri = content_uri + if encoding is not None: + self.encoding = self._enum_matching( + encoding, DiarizeInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + if source is not None: + self.source = source + if audio_type is not None: + self.audio_type = self._enum_matching( + audio_type, DiarizeInputAudioType.list(), "audio_type" + ) + if separate_speaker_per_channel is not None: + self.separate_speaker_per_channel = separate_speaker_per_channel + if speaker_count is not None: + self.speaker_count = speaker_count + if speaker_ids is not None: + self.speaker_ids = speaker_ids + if enable_voice_activity_detection is not None: + self.enable_voice_activity_detection = enable_voice_activity_detection diff --git a/src/ring_central/models/diarize_segment.py b/src/ring_central/models/diarize_segment.py new file mode 100644 index 00000000..629681b2 --- /dev/null +++ b/src/ring_central/models/diarize_segment.py @@ -0,0 +1,28 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"speaker_id": "speakerId"}) +class DiarizeSegment(BaseModel): + """DiarizeSegment + + :param speaker_id: speaker_id + :type speaker_id: str + :param start: start + :type start: float + :param end: end + :type end: float + :param confidence: confidence, defaults to None + :type confidence: float, optional + """ + + def __init__( + self, speaker_id: str, start: float, end: float, confidence: float = None + ): + self.speaker_id = speaker_id + self.start = start + self.end = end + if confidence is not None: + self.confidence = confidence diff --git a/src/ring_central/models/diarized_object.py b/src/ring_central/models/diarized_object.py new file mode 100644 index 00000000..564807c9 --- /dev/null +++ b/src/ring_central/models/diarized_object.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .diarize_segment import DiarizeSegment + + +@JsonMap({"speaker_count": "speakerCount"}) +class DiarizedObject(BaseModel): + """DiarizedObject + + :param speaker_count: speaker_count + :type speaker_count: int + :param utterances: utterances + :type utterances: List[DiarizeSegment] + """ + + def __init__(self, speaker_count: int, utterances: List[DiarizeSegment]): + self.speaker_count = speaker_count + self.utterances = self._define_list(utterances, DiarizeSegment) diff --git a/src/ring_central/models/dictionary_greeting_info.py b/src/ring_central/models/dictionary_greeting_info.py new file mode 100644 index 00000000..617d08b9 --- /dev/null +++ b/src/ring_central/models/dictionary_greeting_info.py @@ -0,0 +1,162 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .greeting_type_enum import GreetingTypeEnum +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +class DictionaryGreetingInfoUsageType(Enum): + """An enumeration representing different categories. + + :cvar USEREXTENSIONANSWERINGRULE: "UserExtensionAnsweringRule" + :vartype USEREXTENSIONANSWERINGRULE: str + :cvar EXTENSIONANSWERINGRULE: "ExtensionAnsweringRule" + :vartype EXTENSIONANSWERINGRULE: str + :cvar DEPARTMENTEXTENSIONANSWERINGRULE: "DepartmentExtensionAnsweringRule" + :vartype DEPARTMENTEXTENSIONANSWERINGRULE: str + :cvar BLOCKEDCALLS: "BlockedCalls" + :vartype BLOCKEDCALLS: str + :cvar CALLRECORDING: "CallRecording" + :vartype CALLRECORDING: str + :cvar COMPANYANSWERINGRULE: "CompanyAnsweringRule" + :vartype COMPANYANSWERINGRULE: str + :cvar COMPANYAFTERHOURSANSWERINGRULE: "CompanyAfterHoursAnsweringRule" + :vartype COMPANYAFTERHOURSANSWERINGRULE: str + :cvar LIMITEDEXTENSIONANSWERINGRULE: "LimitedExtensionAnsweringRule" + :vartype LIMITEDEXTENSIONANSWERINGRULE: str + :cvar VOICEMAILEXTENSIONANSWERINGRULE: "VoicemailExtensionAnsweringRule" + :vartype VOICEMAILEXTENSIONANSWERINGRULE: str + :cvar ANNOUNCEMENTEXTENSIONANSWERINGRULE: "AnnouncementExtensionAnsweringRule" + :vartype ANNOUNCEMENTEXTENSIONANSWERINGRULE: str + :cvar SHAREDLINESGROUPANSWERINGRULE: "SharedLinesGroupAnsweringRule" + :vartype SHAREDLINESGROUPANSWERINGRULE: str + """ + + USEREXTENSIONANSWERINGRULE = "UserExtensionAnsweringRule" + EXTENSIONANSWERINGRULE = "ExtensionAnsweringRule" + DEPARTMENTEXTENSIONANSWERINGRULE = "DepartmentExtensionAnsweringRule" + BLOCKEDCALLS = "BlockedCalls" + CALLRECORDING = "CallRecording" + COMPANYANSWERINGRULE = "CompanyAnsweringRule" + COMPANYAFTERHOURSANSWERINGRULE = "CompanyAfterHoursAnsweringRule" + LIMITEDEXTENSIONANSWERINGRULE = "LimitedExtensionAnsweringRule" + VOICEMAILEXTENSIONANSWERINGRULE = "VoicemailExtensionAnsweringRule" + ANNOUNCEMENTEXTENSIONANSWERINGRULE = "AnnouncementExtensionAnsweringRule" + SHAREDLINESGROUPANSWERINGRULE = "SharedLinesGroupAnsweringRule" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, DictionaryGreetingInfoUsageType._member_map_.values() + ) + ) + + +class DictionaryGreetingInfoCategory(Enum): + """An enumeration representing different categories. + + :cvar MUSIC: "Music" + :vartype MUSIC: str + :cvar MESSAGE: "Message" + :vartype MESSAGE: str + :cvar RINGTONES: "RingTones" + :vartype RINGTONES: str + :cvar NONE: "None" + :vartype NONE: str + """ + + MUSIC = "Music" + MESSAGE = "Message" + RINGTONES = "RingTones" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, DictionaryGreetingInfoCategory._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "usage_type": "usageType", + "content_uri": "contentUri", + "type_": "type", + } +) +class DictionaryGreetingInfo(BaseModel): + """DictionaryGreetingInfo + + :param id_: Internal identifier of a greeting, defaults to None + :type id_: str, optional + :param uri: Link to a greeting, defaults to None + :type uri: str, optional + :param name: Name of a greeting, defaults to None + :type name: str, optional + :param usage_type: Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension., defaults to None + :type usage_type: DictionaryGreetingInfoUsageType, optional + :param text: Text of a greeting, if any, defaults to None + :type text: str, optional + :param content_uri: Link to a greeting content (audio file), if any, defaults to None + :type content_uri: str, optional + :param type_: Type of greeting, specifying the case when the greeting is played., defaults to None + :type type_: GreetingTypeEnum, optional + :param category: Category of a greeting, specifying data form. The category value 'None' specifies that greetings of a certain type ('Introductory', 'ConnectingAudio', etc.) are switched off for an extension = ['Music', 'Message', 'RingTones', 'None'], defaults to None + :type category: DictionaryGreetingInfoCategory, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + usage_type: DictionaryGreetingInfoUsageType = None, + text: str = None, + content_uri: str = None, + type_: GreetingTypeEnum = None, + category: DictionaryGreetingInfoCategory = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, DictionaryGreetingInfoUsageType.list(), "usage_type" + ) + if text is not None: + self.text = text + if content_uri is not None: + self.content_uri = content_uri + if type_ is not None: + self.type_ = self._enum_matching(type_, GreetingTypeEnum.list(), "type_") + if category is not None: + self.category = self._enum_matching( + category, DictionaryGreetingInfoCategory.list(), "category" + ) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/dictionary_greeting_list.py b/src/ring_central/models/dictionary_greeting_list.py new file mode 100644 index 00000000..e8f503b1 --- /dev/null +++ b/src/ring_central/models/dictionary_greeting_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .dictionary_greeting_info import DictionaryGreetingInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class DictionaryGreetingList(BaseModel): + """DictionaryGreetingList + + :param uri: Canonical URI of greetings list resource, defaults to None + :type uri: str, optional + :param records: List of greetings, defaults to None + :type records: List[DictionaryGreetingInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[DictionaryGreetingInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, DictionaryGreetingInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/direct_grouping.py b/src/ring_central/models/direct_grouping.py new file mode 100644 index 00000000..46ada4f8 --- /dev/null +++ b/src/ring_central/models/direct_grouping.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .grouping_options import GroupingOptions + + +@JsonMap({"group_by": "groupBy"}) +class DirectGrouping(BaseModel): + """This grouping allows to specify the `groupBy` option by which the data in the response will be grouped + + :param group_by: The selected grouping option + :type group_by: GroupingOptions + :param keys: This field can be used to specify unique identifiers of entities selected in `groupBy` field. The response data will be limited to these entities only, defaults to None + :type keys: List[str], optional + """ + + def __init__(self, group_by: GroupingOptions, keys: List[str] = None): + self.group_by = self._enum_matching( + group_by, GroupingOptions.list(), "group_by" + ) + if keys is not None: + self.keys = keys diff --git a/src/ring_central/models/direction.py b/src/ring_central/models/direction.py new file mode 100644 index 00000000..8716f699 --- /dev/null +++ b/src/ring_central/models/direction.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class Direction(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Direction._member_map_.values())) diff --git a/src/ring_central/models/directory_resource.py b/src/ring_central/models/directory_resource.py new file mode 100644 index 00000000..59e8cffb --- /dev/null +++ b/src/ring_central/models/directory_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .enumerated_paging_model import EnumeratedPagingModel +from .contact_resource import ContactResource + + +@JsonMap({}) +class DirectoryResource(BaseModel): + """DirectoryResource + + :param paging: paging + :type paging: EnumeratedPagingModel + :param records: records + :type records: List[ContactResource] + """ + + def __init__(self, paging: EnumeratedPagingModel, records: List[ContactResource]): + self.paging = self._define_object(paging, EnumeratedPagingModel) + self.records = self._define_list(records, ContactResource) diff --git a/src/ring_central/models/directory_role_resource.py b/src/ring_central/models/directory_role_resource.py new file mode 100644 index 00000000..7ed02de6 --- /dev/null +++ b/src/ring_central/models/directory_role_resource.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class DirectoryRoleResource(BaseModel): + """DirectoryRoleResource + + :param id_: id_ + :type id_: str + :param name: name, defaults to None + :type name: str, optional + :param domain: domain, defaults to None + :type domain: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + """ + + def __init__( + self, id_: str, name: str = None, domain: str = None, display_name: str = None + ): + self.id_ = id_ + if name is not None: + self.name = name + if domain is not None: + self.domain = domain + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/disabled_filter_info.py b/src/ring_central/models/disabled_filter_info.py new file mode 100644 index 00000000..bf53364b --- /dev/null +++ b/src/ring_central/models/disabled_filter_info.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class DisabledFilterInfo(BaseModel): + """DisabledFilterInfo + + :param filter: Event filter that is disabled for the user + :type filter: str + :param reason: Reason why the filter is disabled for the user + :type reason: str + :param message: Error message, defaults to None + :type message: str, optional + """ + + def __init__(self, filter: str, reason: str, message: str = None): + self.filter = filter + self.reason = reason + if message is not None: + self.message = message diff --git a/src/ring_central/models/display_modes_enum.py b/src/ring_central/models/display_modes_enum.py new file mode 100644 index 00000000..3e8327a0 --- /dev/null +++ b/src/ring_central/models/display_modes_enum.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class DisplayModesEnum(Enum): + """An enumeration representing different categories. + + :cvar PAGE: "page" + :vartype PAGE: str + :cvar POPUP: "popup" + :vartype POPUP: str + :cvar TOUCH: "touch" + :vartype TOUCH: str + :cvar MOBILE: "mobile" + :vartype MOBILE: str + """ + + PAGE = "page" + POPUP = "popup" + TOUCH = "touch" + MOBILE = "mobile" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DisplayModesEnum._member_map_.values())) diff --git a/src/ring_central/models/edit_paging_group_request.py b/src/ring_central/models/edit_paging_group_request.py new file mode 100644 index 00000000..d5ac21f8 --- /dev/null +++ b/src/ring_central/models/edit_paging_group_request.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "added_user_ids": "addedUserIds", + "removed_user_ids": "removedUserIds", + "added_device_ids": "addedDeviceIds", + "removed_device_ids": "removedDeviceIds", + } +) +class EditPagingGroupRequest(BaseModel): + """EditPagingGroupRequest + + :param added_user_ids: List of users that will be allowed to page a group specified , defaults to None + :type added_user_ids: List[str], optional + :param removed_user_ids: List of users that will be disallowed to page a group specified , defaults to None + :type removed_user_ids: List[str], optional + :param added_device_ids: List of account devices that will be assigned to a paging group specified , defaults to None + :type added_device_ids: List[str], optional + :param removed_device_ids: List of account devices that will be unassigned from a paging group specified , defaults to None + :type removed_device_ids: List[str], optional + """ + + def __init__( + self, + added_user_ids: List[str] = None, + removed_user_ids: List[str] = None, + added_device_ids: List[str] = None, + removed_device_ids: List[str] = None, + ): + if added_user_ids is not None: + self.added_user_ids = added_user_ids + if removed_user_ids is not None: + self.removed_user_ids = removed_user_ids + if added_device_ids is not None: + self.added_device_ids = added_device_ids + if removed_device_ids is not None: + self.removed_device_ids = removed_device_ids diff --git a/src/ring_central/models/email_recipient_info.py b/src/ring_central/models/email_recipient_info.py new file mode 100644 index 00000000..93302b68 --- /dev/null +++ b/src/ring_central/models/email_recipient_info.py @@ -0,0 +1,111 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EmailRecipientInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLE: "Disable" + :vartype DISABLE: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLE = "Disable" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EmailRecipientInfoStatus._member_map_.values()) + ) + + +class Permission(Enum): + """An enumeration representing different categories. + + :cvar FULLACCESS: "FullAccess" + :vartype FULLACCESS: str + :cvar MESSAGES: "Messages" + :vartype MESSAGES: str + :cvar MEMBERMANAGEMENT: "MemberManagement" + :vartype MEMBERMANAGEMENT: str + """ + + FULLACCESS = "FullAccess" + MESSAGES = "Messages" + MEMBERMANAGEMENT = "MemberManagement" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Permission._member_map_.values())) + + +@JsonMap( + { + "extension_id": "extensionId", + "full_name": "fullName", + "extension_number": "extensionNumber", + "email_addresses": "emailAddresses", + } +) +class EmailRecipientInfo(BaseModel): + """EmailRecipientInfo + + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param full_name: User full name, defaults to None + :type full_name: str, optional + :param extension_number: User extension number, defaults to None + :type extension_number: str, optional + :param status: Current state of an extension, defaults to None + :type status: EmailRecipientInfoStatus, optional + :param email_addresses: List of user email addresses from extension notification settings. By default, main email address from contact information is returned , defaults to None + :type email_addresses: List[str], optional + :param permission: Call queue manager permission, defaults to None + :type permission: Permission, optional + """ + + def __init__( + self, + extension_id: str = None, + full_name: str = None, + extension_number: str = None, + status: EmailRecipientInfoStatus = None, + email_addresses: List[str] = None, + permission: Permission = None, + ): + if extension_id is not None: + self.extension_id = extension_id + if full_name is not None: + self.full_name = full_name + if extension_number is not None: + self.extension_number = extension_number + if status is not None: + self.status = self._enum_matching( + status, EmailRecipientInfoStatus.list(), "status" + ) + if email_addresses is not None: + self.email_addresses = email_addresses + if permission is not None: + self.permission = self._enum_matching( + permission, Permission.list(), "permission" + ) diff --git a/src/ring_central/models/emergency_address.py b/src/ring_central/models/emergency_address.py new file mode 100644 index 00000000..16619a8c --- /dev/null +++ b/src/ring_central/models/emergency_address.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EmergencyAddressLineProvisioningStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar PROVISIONING: "Provisioning" + :vartype PROVISIONING: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + """ + + VALID = "Valid" + PROVISIONING = "Provisioning" + INVALID = "Invalid" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyAddressLineProvisioningStatus._member_map_.values(), + ) + ) + + +@JsonMap( + {"local_only": "localOnly", "line_provisioning_status": "lineProvisioningStatus"} +) +class EmergencyAddress(BaseModel): + """EmergencyAddress + + :param required: If set to `true` then specifying emergency address is required, defaults to None + :type required: bool, optional + :param local_only: If set to `true` then only local emergency address can be specified, defaults to None + :type local_only: bool, optional + :param line_provisioning_status: This status is associated with a phone line provision state, defaults to None + :type line_provisioning_status: EmergencyAddressLineProvisioningStatus, optional + """ + + def __init__( + self, + required: bool = None, + local_only: bool = None, + line_provisioning_status: EmergencyAddressLineProvisioningStatus = None, + ): + if required is not None: + self.required = required + if local_only is not None: + self.local_only = local_only + if line_provisioning_status is not None: + self.line_provisioning_status = self._enum_matching( + line_provisioning_status, + EmergencyAddressLineProvisioningStatus.list(), + "line_provisioning_status", + ) diff --git a/src/ring_central/models/emergency_address_auto_update_site_info.py b/src/ring_central/models/emergency_address_auto_update_site_info.py new file mode 100644 index 00000000..69f1f19f --- /dev/null +++ b/src/ring_central/models/emergency_address_auto_update_site_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class EmergencyAddressAutoUpdateSiteInfo(BaseModel): + """EmergencyAddressAutoUpdateSiteInfo + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + :param name: Name pf a site, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/emergency_address_auto_update_users_bulk_assign_resource.py b/src/ring_central/models/emergency_address_auto_update_users_bulk_assign_resource.py new file mode 100644 index 00000000..9141d224 --- /dev/null +++ b/src/ring_central/models/emergency_address_auto_update_users_bulk_assign_resource.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"enabled_user_ids": "enabledUserIds", "disabled_user_ids": "disabledUserIds"}) +class EmergencyAddressAutoUpdateUsersBulkAssignResource(BaseModel): + """EmergencyAddressAutoUpdateUsersBulkAssignResource + + :param enabled_user_ids: enabled_user_ids, defaults to None + :type enabled_user_ids: List[str], optional + :param disabled_user_ids: disabled_user_ids, defaults to None + :type disabled_user_ids: List[str], optional + """ + + def __init__( + self, enabled_user_ids: List[str] = None, disabled_user_ids: List[str] = None + ): + if enabled_user_ids is not None: + self.enabled_user_ids = enabled_user_ids + if disabled_user_ids is not None: + self.disabled_user_ids = disabled_user_ids diff --git a/src/ring_central/models/emergency_address_info.py b/src/ring_central/models/emergency_address_info.py new file mode 100644 index 00000000..05c90530 --- /dev/null +++ b/src/ring_central/models/emergency_address_info.py @@ -0,0 +1,455 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel + + +class EmergencyAddressInfo1SyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, EmergencyAddressInfo1SyncStatus._member_map_.values() + ) + ) + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "customer_name": "customerName", + "sync_status": "syncStatus", + } +) +class EmergencyAddressInfo1(BaseModel): + """EmergencyAddressInfo1 + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: First line address, defaults to None + :type street: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + :param sync_status: Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: EmergencyAddressInfo1SyncStatus, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + sync_status: EmergencyAddressInfo1SyncStatus = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, EmergencyAddressInfo1SyncStatus.list(), "sync_status" + ) + + +class EmergencyAddressInfo2SyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, EmergencyAddressInfo2SyncStatus._member_map_.values() + ) + ) + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "company_name": "companyName", + "building_name": "buildingName", + "street_type": "streetType", + "building_number": "buildingNumber", + "customer_name": "customerName", + "sync_status": "syncStatus", + } +) +class EmergencyAddressInfo2(BaseModel): + """EmergencyAddressInfo2 + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: The name of the street (the field is utilized as 'streetName' field for AU addresses), defaults to None + :type street: str, optional + :param company_name: Company name, defaults to None + :type company_name: str, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param street_type: Street type, defaults to None + :type street_type: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + :param sync_status: Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: EmergencyAddressInfo2SyncStatus, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + company_name: str = None, + building_name: str = None, + street_type: str = None, + building_number: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + sync_status: EmergencyAddressInfo2SyncStatus = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if company_name is not None: + self.company_name = company_name + if building_name is not None: + self.building_name = building_name + if street_type is not None: + self.street_type = street_type + if building_number is not None: + self.building_number = building_number + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, EmergencyAddressInfo2SyncStatus.list(), "sync_status" + ) + + +class EmergencyAddressInfo3SyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, EmergencyAddressInfo3SyncStatus._member_map_.values() + ) + ) + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "company_name": "companyName", + "building_name": "buildingName", + "building_number": "buildingNumber", + "customer_name": "customerName", + "sync_status": "syncStatus", + } +) +class EmergencyAddressInfo3(BaseModel): + """EmergencyAddressInfo3 + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada , defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: The name of the street (The field is utilized as 'streetName' field for FR addresses), defaults to None + :type street: str, optional + :param company_name: Company name, defaults to None + :type company_name: str, optional + :param building_name: (Optional) Building name, defaults to None + :type building_name: str, optional + :param building_number: Building/street number, defaults to None + :type building_number: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + :param sync_status: Resulting status of emergency address synchronization. Returned for 'Get Device Info' request if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: EmergencyAddressInfo3SyncStatus, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + company_name: str = None, + building_name: str = None, + building_number: str = None, + street2: str = None, + zip: str = None, + customer_name: str = None, + sync_status: EmergencyAddressInfo3SyncStatus = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if company_name is not None: + self.company_name = company_name + if building_name is not None: + self.building_name = building_name + if building_number is not None: + self.building_number = building_number + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, EmergencyAddressInfo3SyncStatus.list(), "sync_status" + ) + + +class EmergencyAddressInfoGuard(OneOfBaseModel): + class_list = { + "EmergencyAddressInfo1": EmergencyAddressInfo1, + "EmergencyAddressInfo2": EmergencyAddressInfo2, + "EmergencyAddressInfo3": EmergencyAddressInfo3, + } + + +EmergencyAddressInfo = Union[ + EmergencyAddressInfo1, EmergencyAddressInfo2, EmergencyAddressInfo3 +] diff --git a/src/ring_central/models/emergency_address_status.py b/src/ring_central/models/emergency_address_status.py new file mode 100644 index 00000000..d5b22218 --- /dev/null +++ b/src/ring_central/models/emergency_address_status.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class EmergencyAddressStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar PROVISIONING: "Provisioning" + :vartype PROVISIONING: str + """ + + VALID = "Valid" + INVALID = "Invalid" + PROVISIONING = "Provisioning" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EmergencyAddressStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/emergency_address_type.py b/src/ring_central/models/emergency_address_type.py new file mode 100644 index 00000000..54c2e163 --- /dev/null +++ b/src/ring_central/models/emergency_address_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class EmergencyAddressType(Enum): + """An enumeration representing different categories. + + :cvar LOCATIONWITHELINS: "LocationWithElins" + :vartype LOCATIONWITHELINS: str + :cvar LOCATIONWITHENDPOINT: "LocationWithEndpoint" + :vartype LOCATIONWITHENDPOINT: str + """ + + LOCATIONWITHELINS = "LocationWithElins" + LOCATIONWITHENDPOINT = "LocationWithEndpoint" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, EmergencyAddressType._member_map_.values())) diff --git a/src/ring_central/models/emergency_location_info.py b/src/ring_central/models/emergency_location_info.py new file mode 100644 index 00000000..7e191bfc --- /dev/null +++ b/src/ring_central/models/emergency_location_info.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "address_format_id": "addressFormatId"}) +class EmergencyLocationInfo(BaseModel): + """Emergency response location information + + :param id_: Internal identifier of an emergency response location + :type id_: str + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + """ + + def __init__(self, id_: str, name: str = None, address_format_id: str = None): + self.id_ = id_ + if name is not None: + self.name = name + if address_format_id is not None: + self.address_format_id = address_format_id diff --git a/src/ring_central/models/emergency_location_request_resource.py b/src/ring_central/models/emergency_location_request_resource.py new file mode 100644 index 00000000..6309c718 --- /dev/null +++ b/src/ring_central/models/emergency_location_request_resource.py @@ -0,0 +1,172 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info import ( + CommonEmergencyLocationAddressInfo, + CommonEmergencyLocationAddressInfoGuard, +) +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) +from .short_site_info import ShortSiteInfo + + +class EmergencyLocationRequestResourceAddressStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + """ + + VALID = "Valid" + INVALID = "Invalid" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyLocationRequestResourceAddressStatus._member_map_.values(), + ) + ) + + +class EmergencyLocationRequestResourceUsageStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar INACTIVE: "Inactive" + :vartype INACTIVE: str + """ + + ACTIVE = "Active" + INACTIVE = "Inactive" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyLocationRequestResourceUsageStatus._member_map_.values(), + ) + ) + + +class EmergencyLocationRequestResourceVisibility(Enum): + """An enumeration representing different categories. + + :cvar PUBLIC: "Public" + :vartype PUBLIC: str + """ + + PUBLIC = "Public" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyLocationRequestResourceVisibility._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "address_status": "addressStatus", + "usage_status": "usageStatus", + "address_format_id": "addressFormatId", + } +) +class EmergencyLocationRequestResource(BaseModel): + """EmergencyLocationRequestResource + + :param id_: Internal identifier of an emergency response location , defaults to None + :type id_: str, optional + :param address: address, defaults to None + :type address: CommonEmergencyLocationAddressInfo, optional + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: ShortSiteInfo, optional + :param address_status: Emergency address status, defaults to None + :type address_status: EmergencyLocationRequestResourceAddressStatus, optional + :param usage_status: Status of an emergency response location usage., defaults to None + :type usage_status: EmergencyLocationRequestResourceUsageStatus, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + :param visibility: Visibility of an emergency response location. If `Private` is set, then a location is visible only for restricted number of users, specified in `owners` array , defaults to None + :type visibility: EmergencyLocationRequestResourceVisibility, optional + :param trusted: If 'true' address validation for non-us addresses is skipped, defaults to None + :type trusted: bool, optional + """ + + def __init__( + self, + id_: str = None, + address: CommonEmergencyLocationAddressInfo = None, + name: str = None, + site: ShortSiteInfo = None, + address_status: EmergencyLocationRequestResourceAddressStatus = None, + usage_status: EmergencyLocationRequestResourceUsageStatus = None, + address_format_id: str = None, + visibility: EmergencyLocationRequestResourceVisibility = None, + trusted: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if address is not None: + self.address = CommonEmergencyLocationAddressInfoGuard.return_one_of( + address + ) + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, ShortSiteInfo) + if address_status is not None: + self.address_status = self._enum_matching( + address_status, + EmergencyLocationRequestResourceAddressStatus.list(), + "address_status", + ) + if usage_status is not None: + self.usage_status = self._enum_matching( + usage_status, + EmergencyLocationRequestResourceUsageStatus.list(), + "usage_status", + ) + if address_format_id is not None: + self.address_format_id = address_format_id + if visibility is not None: + self.visibility = self._enum_matching( + visibility, + EmergencyLocationRequestResourceVisibility.list(), + "visibility", + ) + if trusted is not None: + self.trusted = trusted diff --git a/src/ring_central/models/emergency_location_response_resource.py b/src/ring_central/models/emergency_location_response_resource.py new file mode 100644 index 00000000..d8cf48b7 --- /dev/null +++ b/src/ring_central/models/emergency_location_response_resource.py @@ -0,0 +1,118 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info import ( + CommonEmergencyLocationAddressInfo, + CommonEmergencyLocationAddressInfoGuard, +) +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) +from .short_site_info import ShortSiteInfo +from .address_status import AddressStatus +from .usage_status import UsageStatus +from .sync_status import SyncStatus +from .emergency_address_type import EmergencyAddressType +from .visibility import Visibility +from .location_owner_info import LocationOwnerInfo + + +@JsonMap( + { + "id_": "id", + "address_status": "addressStatus", + "usage_status": "usageStatus", + "sync_status": "syncStatus", + "address_type": "addressType", + "address_format_id": "addressFormatId", + } +) +class EmergencyLocationResponseResource(BaseModel): + """EmergencyLocationResponseResource + + :param id_: Internal identifier of an emergency response location , defaults to None + :type id_: str, optional + :param address: address, defaults to None + :type address: CommonEmergencyLocationAddressInfo, optional + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: ShortSiteInfo, optional + :param address_status: Emergency address status, defaults to None + :type address_status: AddressStatus, optional + :param usage_status: Status of emergency response location usage., defaults to None + :type usage_status: UsageStatus, optional + :param sync_status: Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: SyncStatus, optional + :param address_type: address_type, defaults to None + :type address_type: EmergencyAddressType, optional + :param visibility: Visibility of an emergency response location. If `Private` is set, then location is visible only for the restricted number of users, specified in `owners` array , defaults to None + :type visibility: Visibility, optional + :param owners: List of private location owners, defaults to None + :type owners: List[LocationOwnerInfo], optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + :param trusted: If 'true' address validation for non-us addresses is skipped, defaults to None + :type trusted: bool, optional + """ + + def __init__( + self, + id_: str = None, + address: CommonEmergencyLocationAddressInfo = None, + name: str = None, + site: ShortSiteInfo = None, + address_status: AddressStatus = None, + usage_status: UsageStatus = None, + sync_status: SyncStatus = None, + address_type: EmergencyAddressType = None, + visibility: Visibility = None, + owners: List[LocationOwnerInfo] = None, + address_format_id: str = None, + trusted: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if address is not None: + self.address = CommonEmergencyLocationAddressInfoGuard.return_one_of( + address + ) + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, ShortSiteInfo) + if address_status is not None: + self.address_status = self._enum_matching( + address_status, AddressStatus.list(), "address_status" + ) + if usage_status is not None: + self.usage_status = self._enum_matching( + usage_status, UsageStatus.list(), "usage_status" + ) + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, SyncStatus.list(), "sync_status" + ) + if address_type is not None: + self.address_type = self._enum_matching( + address_type, EmergencyAddressType.list(), "address_type" + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, Visibility.list(), "visibility" + ) + if owners is not None: + self.owners = self._define_list(owners, LocationOwnerInfo) + if address_format_id is not None: + self.address_format_id = address_format_id + if trusted is not None: + self.trusted = trusted diff --git a/src/ring_central/models/emergency_location_usage_status.py b/src/ring_central/models/emergency_location_usage_status.py new file mode 100644 index 00000000..bbae07d7 --- /dev/null +++ b/src/ring_central/models/emergency_location_usage_status.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class EmergencyLocationUsageStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar INACTIVE: "Inactive" + :vartype INACTIVE: str + """ + + ACTIVE = "Active" + INACTIVE = "Inactive" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EmergencyLocationUsageStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/emergency_locations_paging.py b/src/ring_central/models/emergency_locations_paging.py new file mode 100644 index 00000000..97f2d4a7 --- /dev/null +++ b/src/ring_central/models/emergency_locations_paging.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "total_pages": "totalPages", + "per_page": "perPage", + "total_elements": "totalElements", + "page_start": "pageStart", + "page_end": "pageEnd", + } +) +class EmergencyLocationsPaging(BaseModel): + """EmergencyLocationsPaging + + :param page: page + :type page: int + :param total_pages: total_pages + :type total_pages: int + :param per_page: per_page + :type per_page: int + :param total_elements: total_elements + :type total_elements: int + :param page_start: page_start + :type page_start: int + :param page_end: page_end + :type page_end: int + """ + + def __init__( + self, + page: int, + total_pages: int, + per_page: int, + total_elements: int, + page_start: int, + page_end: int, + ): + self.page = page + self.total_pages = total_pages + self.per_page = per_page + self.total_elements = total_elements + self.page_start = page_start + self.page_end = page_end diff --git a/src/ring_central/models/emergency_locations_resource.py b/src/ring_central/models/emergency_locations_resource.py new file mode 100644 index 00000000..eaeb4bf9 --- /dev/null +++ b/src/ring_central/models/emergency_locations_resource.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_resource import CommonEmergencyLocationResource +from .emergency_locations_paging import EmergencyLocationsPaging + + +@JsonMap({}) +class EmergencyLocationsResource(BaseModel): + """EmergencyLocationsResource + + :param records: records, defaults to None + :type records: List[CommonEmergencyLocationResource], optional + :param paging: paging, defaults to None + :type paging: EmergencyLocationsPaging, optional + """ + + def __init__( + self, + records: List[CommonEmergencyLocationResource] = None, + paging: EmergencyLocationsPaging = None, + ): + if records is not None: + self.records = self._define_list(records, CommonEmergencyLocationResource) + if paging is not None: + self.paging = self._define_object(paging, EmergencyLocationsPaging) diff --git a/src/ring_central/models/emergency_service_address_resource.py b/src/ring_central/models/emergency_service_address_resource.py new file mode 100644 index 00000000..a700ef6c --- /dev/null +++ b/src/ring_central/models/emergency_service_address_resource.py @@ -0,0 +1,222 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EmergencyServiceAddressResourceSyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyServiceAddressResourceSyncStatus._member_map_.values(), + ) + ) + + +class EmergencyServiceAddressResourceLineProvisioningStatus(Enum): + """An enumeration representing different categories. + + :cvar PROVISIONING: "Provisioning" + :vartype PROVISIONING: str + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + """ + + PROVISIONING = "Provisioning" + VALID = "Valid" + INVALID = "Invalid" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EmergencyServiceAddressResourceLineProvisioningStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "customer_name": "customerName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "out_of_country": "outOfCountry", + "sync_status": "syncStatus", + "additional_customer_name": "additionalCustomerName", + "customer_email": "customerEmail", + "additional_customer_email": "additionalCustomerEmail", + "customer_phone": "customerPhone", + "additional_customer_phone": "additionalCustomerPhone", + "line_provisioning_status": "lineProvisioningStatus", + "tax_id": "taxId", + } +) +class EmergencyServiceAddressResource(BaseModel): + """Address for emergency cases. The same emergency address is assigned + to all the numbers of one device + + + :param street: street, defaults to None + :type street: str, optional + :param street2: street2, defaults to None + :type street2: str, optional + :param city: city, defaults to None + :type city: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param customer_name: customer_name, defaults to None + :type customer_name: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + :param sync_status: Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: EmergencyServiceAddressResourceSyncStatus, optional + :param additional_customer_name: Name of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type additional_customer_name: str, optional + :param customer_email: Email of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type customer_email: str, optional + :param additional_customer_email: Email of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type additional_customer_email: str, optional + :param customer_phone: Phone number of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia , defaults to None + :type customer_phone: str, optional + :param additional_customer_phone: Phone number of an additional contact person. Should be specified for countries except the US, Canada, the UK & Australia. , defaults to None + :type additional_customer_phone: str, optional + :param line_provisioning_status: Status of digital line provisioning, defaults to None + :type line_provisioning_status: EmergencyServiceAddressResourceLineProvisioningStatus, optional + :param tax_id: Internal identifier of a tax, defaults to None + :type tax_id: str, optional + """ + + def __init__( + self, + street: str = None, + street2: str = None, + city: str = None, + zip: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + country_id: str = None, + country_iso_code: str = None, + country: str = None, + country_name: str = None, + out_of_country: bool = None, + sync_status: EmergencyServiceAddressResourceSyncStatus = None, + additional_customer_name: str = None, + customer_email: str = None, + additional_customer_email: str = None, + customer_phone: str = None, + additional_customer_phone: str = None, + line_provisioning_status: EmergencyServiceAddressResourceLineProvisioningStatus = None, + tax_id: str = None, + ): + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country is not None: + self.country = country + if country_name is not None: + self.country_name = country_name + if out_of_country is not None: + self.out_of_country = out_of_country + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, + EmergencyServiceAddressResourceSyncStatus.list(), + "sync_status", + ) + if additional_customer_name is not None: + self.additional_customer_name = additional_customer_name + if customer_email is not None: + self.customer_email = customer_email + if additional_customer_email is not None: + self.additional_customer_email = additional_customer_email + if customer_phone is not None: + self.customer_phone = customer_phone + if additional_customer_phone is not None: + self.additional_customer_phone = additional_customer_phone + if line_provisioning_status is not None: + self.line_provisioning_status = self._enum_matching( + line_provisioning_status, + EmergencyServiceAddressResourceLineProvisioningStatus.list(), + "line_provisioning_status", + ) + if tax_id is not None: + self.tax_id = tax_id diff --git a/src/ring_central/models/emergency_service_address_resource_request.py b/src/ring_central/models/emergency_service_address_resource_request.py new file mode 100644 index 00000000..653f8f39 --- /dev/null +++ b/src/ring_central/models/emergency_service_address_resource_request.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"customer_name": "customerName", "state_id": "stateId", "country_id": "countryId"} +) +class EmergencyServiceAddressResourceRequest(BaseModel): + """Address for emergency cases. The same emergency address is assigned to all + numbers of a single device. If the emergency address is also specified in + `emergency` resource, then this value is ignored + + + :param street: street, defaults to None + :type street: str, optional + :param street2: street2, defaults to None + :type street2: str, optional + :param city: city, defaults to None + :type city: str, optional + :param zip: zip, defaults to None + :type zip: str, optional + :param customer_name: customer_name, defaults to None + :type customer_name: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + """ + + def __init__( + self, + street: str = None, + street2: str = None, + city: str = None, + zip: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + country: str = None, + country_id: str = None, + ): + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if zip is not None: + self.zip = zip + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id diff --git a/src/ring_central/models/emotion_segment.py b/src/ring_central/models/emotion_segment.py new file mode 100644 index 00000000..4c25c955 --- /dev/null +++ b/src/ring_central/models/emotion_segment.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Emotion(Enum): + """An enumeration representing different categories. + + :cvar ANGER: "Anger" + :vartype ANGER: str + :cvar EXCITEMENT: "Excitement" + :vartype EXCITEMENT: str + :cvar FRUSTRATION: "Frustration" + :vartype FRUSTRATION: str + :cvar JOY: "Joy" + :vartype JOY: str + :cvar SADNESS: "Sadness" + :vartype SADNESS: str + :cvar NEUTRAL: "Neutral" + :vartype NEUTRAL: str + """ + + ANGER = "Anger" + EXCITEMENT = "Excitement" + FRUSTRATION = "Frustration" + JOY = "Joy" + SADNESS = "Sadness" + NEUTRAL = "Neutral" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Emotion._member_map_.values())) + + +@JsonMap({}) +class EmotionSegment(BaseModel): + """EmotionSegment + + :param start: start + :type start: float + :param end: end + :type end: float + :param emotion: emotion + :type emotion: Emotion + :param confidence: confidence, defaults to None + :type confidence: float, optional + """ + + def __init__( + self, start: float, end: float, emotion: Emotion, confidence: float = None + ): + self.start = start + self.end = end + self.emotion = self._enum_matching(emotion, Emotion.list(), "emotion") + if confidence is not None: + self.confidence = confidence diff --git a/src/ring_central/models/enrollment_input.py b/src/ring_central/models/enrollment_input.py new file mode 100644 index 00000000..61f3f0f7 --- /dev/null +++ b/src/ring_central/models/enrollment_input.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EnrollmentInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EnrollmentInputEncoding._member_map_.values()) + ) + + +@JsonMap({"language_code": "languageCode", "speaker_id": "speakerId"}) +class EnrollmentInput(BaseModel): + """EnrollmentInput + + :param encoding: The encoding of the original audio + :type encoding: EnrollmentInputEncoding + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param content: Base64-encoded audio file data. + :type content: str + :param speaker_id: The enrollment ID to be registered. Acceptable format [a-zA-Z0-9_]+, defaults to None + :type speaker_id: str, optional + """ + + def __init__( + self, + encoding: EnrollmentInputEncoding, + content: str, + language_code: str = None, + speaker_id: str = None, + ): + self.encoding = self._enum_matching( + encoding, EnrollmentInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + self.content = content + if speaker_id is not None: + self.speaker_id = speaker_id diff --git a/src/ring_central/models/enrollment_patch_input.py b/src/ring_central/models/enrollment_patch_input.py new file mode 100644 index 00000000..ca8621c9 --- /dev/null +++ b/src/ring_central/models/enrollment_patch_input.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EnrollmentPatchInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EnrollmentPatchInputEncoding._member_map_.values()) + ) + + +@JsonMap({"language_code": "languageCode"}) +class EnrollmentPatchInput(BaseModel): + """EnrollmentPatchInput + + :param encoding: The encoding of the original audio + :type encoding: EnrollmentPatchInputEncoding + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param content: Base64-encoded audio file data. + :type content: str + """ + + def __init__( + self, + encoding: EnrollmentPatchInputEncoding, + content: str, + language_code: str = None, + ): + self.encoding = self._enum_matching( + encoding, EnrollmentPatchInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + self.content = content diff --git a/src/ring_central/models/enrollment_status.py b/src/ring_central/models/enrollment_status.py new file mode 100644 index 00000000..eec6bba1 --- /dev/null +++ b/src/ring_central/models/enrollment_status.py @@ -0,0 +1,75 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EnrollmentQuality(Enum): + """An enumeration representing different categories. + + :cvar POOR: "Poor" + :vartype POOR: str + :cvar AVERAGE: "Average" + :vartype AVERAGE: str + :cvar GOOD: "Good" + :vartype GOOD: str + :cvar HIGH: "High" + :vartype HIGH: str + """ + + POOR = "Poor" + AVERAGE = "Average" + GOOD = "Good" + HIGH = "High" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, EnrollmentQuality._member_map_.values())) + + +@JsonMap( + { + "enrollment_quality": "enrollmentQuality", + "enrollment_complete": "enrollmentComplete", + "speaker_id": "speakerId", + "total_enroll_duration": "totalEnrollDuration", + "total_speech_duration": "totalSpeechDuration", + } +) +class EnrollmentStatus(BaseModel): + """EnrollmentStatus + + :param enrollment_quality: Quality of the enrollment., defaults to None + :type enrollment_quality: EnrollmentQuality, optional + :param enrollment_complete: Status of the enrollment. + :type enrollment_complete: bool + :param speaker_id: speaker_id + :type speaker_id: str + :param total_enroll_duration: Total speech duration of the enrollment in seconds., defaults to None + :type total_enroll_duration: float, optional + :param total_speech_duration: Total duration of the enrollment in seconds. + :type total_speech_duration: float + """ + + def __init__( + self, + enrollment_complete: bool, + speaker_id: str, + total_speech_duration: float, + enrollment_quality: EnrollmentQuality = None, + total_enroll_duration: float = None, + ): + if enrollment_quality is not None: + self.enrollment_quality = self._enum_matching( + enrollment_quality, EnrollmentQuality.list(), "enrollment_quality" + ) + self.enrollment_complete = enrollment_complete + self.speaker_id = speaker_id + if total_enroll_duration is not None: + self.total_enroll_duration = total_enroll_duration + self.total_speech_duration = total_speech_duration diff --git a/src/ring_central/models/enumerated_paging_model.py b/src/ring_central/models/enumerated_paging_model.py new file mode 100644 index 00000000..5c4b6dbb --- /dev/null +++ b/src/ring_central/models/enumerated_paging_model.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class EnumeratedPagingModel(BaseModel): + """EnumeratedPagingModel + + :param per_page: Current page size, describes how many items are in each page. Matches "perPage" parameter from the request. + :type per_page: int + :param page: The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) , defaults to None + :type page: int, optional + :param page_start: The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty , defaults to None + :type page_start: int, optional + :param page_end: The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty , defaults to None + :type page_end: int, optional + :param total_pages: The total number of pages in a dataset. May be omitted for some resources due to performance reasons , defaults to None + :type total_pages: int, optional + :param total_elements: The total number of elements in a dataset. May be omitted for some resource due to performance reasons , defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + per_page: int, + page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + self.per_page = per_page + if page is not None: + self.page = page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/erl_location_info.py b/src/ring_central/models/erl_location_info.py new file mode 100644 index 00000000..350ceb75 --- /dev/null +++ b/src/ring_central/models/erl_location_info.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "address_format_id": "addressFormatId"}) +class ErlLocationInfo(BaseModel): + """Emergency response location information + + :param id_: Internal identifier of an emergency response location, defaults to None + :type id_: str, optional + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + """ + + def __init__( + self, id_: str = None, name: str = None, address_format_id: str = None + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if address_format_id is not None: + self.address_format_id = address_format_id diff --git a/src/ring_central/models/error_entity.py b/src/ring_central/models/error_entity.py new file mode 100644 index 00000000..03a12bd3 --- /dev/null +++ b/src/ring_central/models/error_entity.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "error_code": "errorCode", + "parameter_name": "parameterName", + "parameter_value": "parameterValue", + } +) +class ErrorEntity(BaseModel): + """ErrorEntity + + :param error_code: Error code, defaults to None + :type error_code: str, optional + :param message: Error message, defaults to None + :type message: str, optional + :param parameter_name: Name of invalid parameter, defaults to None + :type parameter_name: str, optional + :param parameter_value: Value of invalid parameter, defaults to None + :type parameter_value: str, optional + """ + + def __init__( + self, + error_code: str = None, + message: str = None, + parameter_name: str = None, + parameter_value: str = None, + ): + if error_code is not None: + self.error_code = error_code + if message is not None: + self.message = message + if parameter_name is not None: + self.parameter_name = parameter_name + if parameter_value is not None: + self.parameter_value = parameter_value diff --git a/src/ring_central/models/event_recurrence_info.py b/src/ring_central/models/event_recurrence_info.py new file mode 100644 index 00000000..ae1dd57a --- /dev/null +++ b/src/ring_central/models/event_recurrence_info.py @@ -0,0 +1,112 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EventRecurrenceInfoSchedule(Enum): + """An enumeration representing different categories. + + :cvar NONE: "None" + :vartype NONE: str + :cvar DAY: "Day" + :vartype DAY: str + :cvar WEEKDAY: "Weekday" + :vartype WEEKDAY: str + :cvar WEEK: "Week" + :vartype WEEK: str + :cvar MONTH: "Month" + :vartype MONTH: str + :cvar YEAR: "Year" + :vartype YEAR: str + """ + + NONE = "None" + DAY = "Day" + WEEKDAY = "Weekday" + WEEK = "Week" + MONTH = "Month" + YEAR = "Year" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, EventRecurrenceInfoSchedule._member_map_.values()) + ) + + +class EventRecurrenceInfoEndingCondition(Enum): + """An enumeration representing different categories. + + :cvar NONE: "None" + :vartype NONE: str + :cvar COUNT: "Count" + :vartype COUNT: str + :cvar DATE: "Date" + :vartype DATE: str + """ + + NONE = "None" + COUNT = "Count" + DATE = "Date" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + EventRecurrenceInfoEndingCondition._member_map_.values(), + ) + ) + + +@JsonMap( + { + "ending_condition": "endingCondition", + "ending_after": "endingAfter", + "ending_on": "endingOn", + } +) +class EventRecurrenceInfo(BaseModel): + """EventRecurrenceInfo + + :param schedule: Event recurrence settings. For non-periodic events the value is `None`. Must be greater or equal to event duration: 1- Day/Weekday; 7 - Week; 28 - Month; 365 - Year , defaults to None + :type schedule: EventRecurrenceInfoSchedule, optional + :param ending_condition: Condition of ending an event, defaults to None + :type ending_condition: EventRecurrenceInfoEndingCondition, optional + :param ending_after: Count of event iterations. For periodic events only. Value range is 1 - 10. Must be specified if `endingCondition` is `Count` , defaults to None + :type ending_after: int, optional + :param ending_on: Iterations ending datetime for periodic events in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format , defaults to None + :type ending_on: str, optional + """ + + def __init__( + self, + schedule: EventRecurrenceInfoSchedule = None, + ending_condition: EventRecurrenceInfoEndingCondition = None, + ending_after: int = None, + ending_on: str = None, + ): + if schedule is not None: + self.schedule = self._enum_matching( + schedule, EventRecurrenceInfoSchedule.list(), "schedule" + ) + if ending_condition is not None: + self.ending_condition = self._enum_matching( + ending_condition, + EventRecurrenceInfoEndingCondition.list(), + "ending_condition", + ) + if ending_after is not None: + self.ending_after = ending_after + if ending_on is not None: + self.ending_on = ending_on diff --git a/src/ring_central/models/everyone_can_control.py b/src/ring_central/models/everyone_can_control.py new file mode 100644 index 00000000..3c9d1d74 --- /dev/null +++ b/src/ring_central/models/everyone_can_control.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class EveryoneCanControl(BaseModel): + """Controls whether participants can start and pause recording + + :param enabled: Controls whether preference is enabled, defaults to None + :type enabled: bool, optional + :param locked: Describes whether preference is locked on Service Web, defaults to None + :type locked: bool, optional + """ + + def __init__(self, enabled: bool = None, locked: bool = None): + if enabled is not None: + self.enabled = enabled + if locked is not None: + self.locked = locked diff --git a/src/ring_central/models/everyone_team_info.py b/src/ring_central/models/everyone_team_info.py new file mode 100644 index 00000000..991677d9 --- /dev/null +++ b/src/ring_central/models/everyone_team_info.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class EveryoneTeamInfoType(Enum): + """An enumeration representing different categories. + + :cvar EVERYONE: "Everyone" + :vartype EVERYONE: str + """ + + EVERYONE = "Everyone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, EveryoneTeamInfoType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class EveryoneTeamInfo(BaseModel): + """EveryoneTeamInfo + + :param id_: Internal identifier of a chat, defaults to None + :type id_: str, optional + :param type_: Type of chat, defaults to None + :type type_: EveryoneTeamInfoType, optional + :param name: Chat name, defaults to None + :type name: str, optional + :param description: Chat description, defaults to None + :type description: str, optional + :param creation_time: Chat creation datetime in ISO 8601 format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Chat last change datetime in ISO 8601 format, defaults to None + :type last_modified_time: str, optional + """ + + def __init__( + self, + id_: str = None, + type_: EveryoneTeamInfoType = None, + name: str = None, + description: str = None, + creation_time: str = None, + last_modified_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, EveryoneTeamInfoType.list(), "type_" + ) + if name is not None: + self.name = name + if description is not None: + self.description = description + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/export_task_result_info.py b/src/ring_central/models/export_task_result_info.py new file mode 100644 index 00000000..97111c86 --- /dev/null +++ b/src/ring_central/models/export_task_result_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExportTaskResultInfo(BaseModel): + """ExportTaskResultInfo + + :param id_: Internal identifier of a dataset, defaults to None + :type id_: str, optional + :param uri: Link for downloading a dataset, defaults to None + :type uri: str, optional + :param size: Size of ta dataset in bytes, defaults to None + :type size: int, optional + """ + + def __init__(self, id_: str = None, uri: str = None, size: int = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if size is not None: + self.size = size diff --git a/src/ring_central/models/extension_bulk_update_info.py b/src/ring_central/models/extension_bulk_update_info.py new file mode 100644 index 00000000..bfc03944 --- /dev/null +++ b/src/ring_central/models/extension_bulk_update_info.py @@ -0,0 +1,239 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_status_info import ExtensionStatusInfo +from .contact_info_update_request import ContactInfoUpdateRequest +from .extension_regional_setting_request import ExtensionRegionalSettingRequest +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .call_queue_info_request import CallQueueInfoRequest +from .user_transition_info import UserTransitionInfo +from .cost_center_info import CostCenterInfo +from .custom_field_info import CustomFieldInfo +from .provisioning_site_info import ProvisioningSiteInfo +from .reference_info import ReferenceInfo + + +class ExtensionBulkUpdateInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + """ + + DISABLED = "Disabled" + ENABLED = "Enabled" + NOTACTIVATED = "NotActivated" + FROZEN = "Frozen" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionBulkUpdateInfoStatus._member_map_.values()) + ) + + +class ExtensionBulkUpdateInfoType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + """ + + USER = "User" + FAXUSER = "FaxUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionBulkUpdateInfoType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "status_info": "statusInfo", + "extension_number": "extensionNumber", + "regional_settings": "regionalSettings", + "setup_wizard_state": "setupWizardState", + "partner_id": "partnerId", + "ivr_pin": "ivrPin", + "call_queue_info": "callQueueInfo", + "cost_center": "costCenter", + "custom_fields": "customFields", + "type_": "type", + } +) +class ExtensionBulkUpdateInfo(BaseModel): + """ExtensionBulkUpdateInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param status: status, defaults to None + :type status: ExtensionBulkUpdateInfoStatus, optional + :param status_info: Status information (reason, comment). Returned for 'Disabled' status only , defaults to None + :type status_info: ExtensionStatusInfo, optional + :param reason: Type of suspension, defaults to None + :type reason: str, optional + :param comment: Free form user comment, defaults to None + :type comment: str, optional + :param extension_number: Extension number available, defaults to None + :type extension_number: str, optional + :param contact: contact, defaults to None + :type contact: ContactInfoUpdateRequest, optional + :param regional_settings: regional_settings, defaults to None + :type regional_settings: ExtensionRegionalSettingRequest, optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateForUpdateEnum, optional + :param partner_id: Additional extension identifier created by partner application and applied on client side , defaults to None + :type partner_id: str, optional + :param ivr_pin: IVR PIN, defaults to None + :type ivr_pin: str, optional + :param password: Password for extension, defaults to None + :type password: str, optional + :param call_queue_info: For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type call_queue_info: CallQueueInfoRequest, optional + :param transition: For NotActivated extensions only. Welcome email settings , defaults to None + :type transition: UserTransitionInfo, optional + :param cost_center: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value, defaults to None + :type cost_center: CostCenterInfo, optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldInfo], optional + :param hidden: Hides extension from showing in company directory. Supported for extensions of User type only, defaults to None + :type hidden: bool, optional + :param site: Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` , defaults to None + :type site: ProvisioningSiteInfo, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: ExtensionBulkUpdateInfoType, optional + :param references: List of non-RC internal identifiers assigned to an extension , defaults to None + :type references: List[ReferenceInfo], optional + """ + + def __init__( + self, + id_: str = None, + status: ExtensionBulkUpdateInfoStatus = None, + status_info: ExtensionStatusInfo = None, + reason: str = None, + comment: str = None, + extension_number: str = None, + contact: ContactInfoUpdateRequest = None, + regional_settings: ExtensionRegionalSettingRequest = None, + setup_wizard_state: SetupWizardStateForUpdateEnum = None, + partner_id: str = None, + ivr_pin: str = None, + password: str = None, + call_queue_info: CallQueueInfoRequest = None, + transition: UserTransitionInfo = None, + cost_center: CostCenterInfo = None, + custom_fields: List[CustomFieldInfo] = None, + hidden: bool = None, + site: ProvisioningSiteInfo = None, + type_: ExtensionBulkUpdateInfoType = None, + references: List[ReferenceInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._enum_matching( + status, ExtensionBulkUpdateInfoStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, ExtensionStatusInfo) + if reason is not None: + self.reason = reason + if comment is not None: + self.comment = comment + if extension_number is not None: + self.extension_number = extension_number + if contact is not None: + self.contact = self._define_object(contact, ContactInfoUpdateRequest) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, ExtensionRegionalSettingRequest + ) + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, + SetupWizardStateForUpdateEnum.list(), + "setup_wizard_state", + ) + if partner_id is not None: + self.partner_id = partner_id + if ivr_pin is not None: + self.ivr_pin = ivr_pin + if password is not None: + self.password = password + if call_queue_info is not None: + self.call_queue_info = self._define_object( + call_queue_info, CallQueueInfoRequest + ) + if transition is not None: + self.transition = self._define_object(transition, UserTransitionInfo) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterInfo) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldInfo) + if hidden is not None: + self.hidden = hidden + if site is not None: + self.site = self._define_object(site, ProvisioningSiteInfo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ExtensionBulkUpdateInfoType.list(), "type_" + ) + if references is not None: + self.references = self._define_list(references, ReferenceInfo) diff --git a/src/ring_central/models/extension_bulk_update_request.py b/src/ring_central/models/extension_bulk_update_request.py new file mode 100644 index 00000000..73cbff25 --- /dev/null +++ b/src/ring_central/models/extension_bulk_update_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_bulk_update_info import ExtensionBulkUpdateInfo + + +@JsonMap({}) +class ExtensionBulkUpdateRequest(BaseModel): + """List of extensions to be updated + + :param records: records + :type records: List[ExtensionBulkUpdateInfo] + """ + + def __init__(self, records: List[ExtensionBulkUpdateInfo]): + self.records = self._define_list(records, ExtensionBulkUpdateInfo) diff --git a/src/ring_central/models/extension_bulk_update_task_resource.py b/src/ring_central/models/extension_bulk_update_task_resource.py new file mode 100644 index 00000000..90106ffb --- /dev/null +++ b/src/ring_central/models/extension_bulk_update_task_resource.py @@ -0,0 +1,84 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_bulk_update_task_result import ExtensionBulkUpdateTaskResult + + +class ExtensionBulkUpdateTaskResourceStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + ACCEPTED = "Accepted" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ExtensionBulkUpdateTaskResourceStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class ExtensionBulkUpdateTaskResource(BaseModel): + """Information on a task for updating multiple extensions + + + :param uri: Link to a task resource + :type uri: str + :param id_: Internal identifier of a task + :type id_: str + :param status: Task status + :type status: ExtensionBulkUpdateTaskResourceStatus + :param creation_time: Task creation date/time + :type creation_time: str + :param last_modified_time: Task latest update date/time + :type last_modified_time: str + :param result: Result record on multiple extension update task, defaults to None + :type result: ExtensionBulkUpdateTaskResult, optional + """ + + def __init__( + self, + uri: str, + id_: str, + status: ExtensionBulkUpdateTaskResourceStatus, + creation_time: str, + last_modified_time: str, + result: ExtensionBulkUpdateTaskResult = None, + ): + self.uri = uri + self.id_ = id_ + self.status = self._enum_matching( + status, ExtensionBulkUpdateTaskResourceStatus.list(), "status" + ) + self.creation_time = creation_time + self.last_modified_time = last_modified_time + if result is not None: + self.result = self._define_object(result, ExtensionBulkUpdateTaskResult) diff --git a/src/ring_central/models/extension_bulk_update_task_result.py b/src/ring_central/models/extension_bulk_update_task_result.py new file mode 100644 index 00000000..67224ddd --- /dev/null +++ b/src/ring_central/models/extension_bulk_update_task_result.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_update_short_result import ExtensionUpdateShortResult +from .error_entity import ErrorEntity + + +@JsonMap({"affected_items": "affectedItems"}) +class ExtensionBulkUpdateTaskResult(BaseModel): + """Result record on multiple extension update task + + :param affected_items: affected_items, defaults to None + :type affected_items: List[ExtensionUpdateShortResult], optional + :param errors: errors, defaults to None + :type errors: List[ErrorEntity], optional + """ + + def __init__( + self, + affected_items: List[ExtensionUpdateShortResult] = None, + errors: List[ErrorEntity] = None, + ): + if affected_items is not None: + self.affected_items = self._define_list( + affected_items, ExtensionUpdateShortResult + ) + if errors is not None: + self.errors = self._define_list(errors, ErrorEntity) diff --git a/src/ring_central/models/extension_call_queue_presence.py b/src/ring_central/models/extension_call_queue_presence.py new file mode 100644 index 00000000..d2604f29 --- /dev/null +++ b/src/ring_central/models/extension_call_queue_presence.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .presence_call_queue_info import PresenceCallQueueInfo + + +@JsonMap({"call_queue": "callQueue", "accept_calls": "acceptCalls"}) +class ExtensionCallQueuePresence(BaseModel): + """ExtensionCallQueuePresence + + :param call_queue: Call queue information, defaults to None + :type call_queue: PresenceCallQueueInfo, optional + :param accept_calls: Call queue agent availability for calls of this queue, defaults to None + :type accept_calls: bool, optional + """ + + def __init__( + self, call_queue: PresenceCallQueueInfo = None, accept_calls: bool = None + ): + if call_queue is not None: + self.call_queue = self._define_object(call_queue, PresenceCallQueueInfo) + if accept_calls is not None: + self.accept_calls = accept_calls diff --git a/src/ring_central/models/extension_call_queue_presence_list.py b/src/ring_central/models/extension_call_queue_presence_list.py new file mode 100644 index 00000000..6ee8beb2 --- /dev/null +++ b/src/ring_central/models/extension_call_queue_presence_list.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_call_queue_presence import ExtensionCallQueuePresence + + +@JsonMap({}) +class ExtensionCallQueuePresenceList(BaseModel): + """ExtensionCallQueuePresenceList + + :param records: records, defaults to None + :type records: List[ExtensionCallQueuePresence], optional + """ + + def __init__(self, records: List[ExtensionCallQueuePresence] = None): + if records is not None: + self.records = self._define_list(records, ExtensionCallQueuePresence) diff --git a/src/ring_central/models/extension_call_queue_update_presence.py b/src/ring_central/models/extension_call_queue_update_presence.py new file mode 100644 index 00000000..8e36969a --- /dev/null +++ b/src/ring_central/models/extension_call_queue_update_presence.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_queue_id import CallQueueId + + +@JsonMap({"call_queue": "callQueue", "accept_calls": "acceptCalls"}) +class ExtensionCallQueueUpdatePresence(BaseModel): + """ExtensionCallQueueUpdatePresence + + :param call_queue: Call queue information, defaults to None + :type call_queue: CallQueueId, optional + :param accept_calls: Call queue agent availability for calls of this queue, defaults to None + :type accept_calls: bool, optional + """ + + def __init__(self, call_queue: CallQueueId = None, accept_calls: bool = None): + if call_queue is not None: + self.call_queue = self._define_object(call_queue, CallQueueId) + if accept_calls is not None: + self.accept_calls = accept_calls diff --git a/src/ring_central/models/extension_call_queue_update_presence_list.py b/src/ring_central/models/extension_call_queue_update_presence_list.py new file mode 100644 index 00000000..22afed19 --- /dev/null +++ b/src/ring_central/models/extension_call_queue_update_presence_list.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_call_queue_update_presence import ExtensionCallQueueUpdatePresence + + +@JsonMap({}) +class ExtensionCallQueueUpdatePresenceList(BaseModel): + """ExtensionCallQueueUpdatePresenceList + + :param records: records, defaults to None + :type records: List[ExtensionCallQueueUpdatePresence], optional + """ + + def __init__(self, records: List[ExtensionCallQueueUpdatePresence] = None): + if records is not None: + self.records = self._define_list(records, ExtensionCallQueueUpdatePresence) diff --git a/src/ring_central/models/extension_caller_id_info.py b/src/ring_central/models/extension_caller_id_info.py new file mode 100644 index 00000000..7c1b7231 --- /dev/null +++ b/src/ring_central/models/extension_caller_id_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_by_device import CallerIdByDevice +from .caller_id_by_feature import CallerIdByFeature + + +@JsonMap( + { + "by_device": "byDevice", + "by_feature": "byFeature", + "extension_name_for_outbound_calls": "extensionNameForOutboundCalls", + "extension_number_for_internal_calls": "extensionNumberForInternalCalls", + } +) +class ExtensionCallerIdInfo(BaseModel): + """ExtensionCallerIdInfo + + :param uri: Canonical URL of a caller ID resource, defaults to None + :type uri: str, optional + :param by_device: by_device, defaults to None + :type by_device: List[CallerIdByDevice], optional + :param by_feature: by_feature, defaults to None + :type by_feature: List[CallerIdByFeature], optional + :param extension_name_for_outbound_calls: If `true`, then user first name and last name will be used as caller ID when making outbound calls from extension , defaults to None + :type extension_name_for_outbound_calls: bool, optional + :param extension_number_for_internal_calls: If `true`, then extension number will be used as caller ID when making internal calls , defaults to None + :type extension_number_for_internal_calls: bool, optional + """ + + def __init__( + self, + uri: str = None, + by_device: List[CallerIdByDevice] = None, + by_feature: List[CallerIdByFeature] = None, + extension_name_for_outbound_calls: bool = None, + extension_number_for_internal_calls: bool = None, + ): + if uri is not None: + self.uri = uri + if by_device is not None: + self.by_device = self._define_list(by_device, CallerIdByDevice) + if by_feature is not None: + self.by_feature = self._define_list(by_feature, CallerIdByFeature) + if extension_name_for_outbound_calls is not None: + self.extension_name_for_outbound_calls = extension_name_for_outbound_calls + if extension_number_for_internal_calls is not None: + self.extension_number_for_internal_calls = ( + extension_number_for_internal_calls + ) diff --git a/src/ring_central/models/extension_caller_id_info_request.py b/src/ring_central/models/extension_caller_id_info_request.py new file mode 100644 index 00000000..2b211a09 --- /dev/null +++ b/src/ring_central/models/extension_caller_id_info_request.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .caller_id_by_device_request import CallerIdByDeviceRequest +from .caller_id_by_feature_request import CallerIdByFeatureRequest + + +@JsonMap( + { + "by_device": "byDevice", + "by_feature": "byFeature", + "extension_name_for_outbound_calls": "extensionNameForOutboundCalls", + "extension_number_for_internal_calls": "extensionNumberForInternalCalls", + } +) +class ExtensionCallerIdInfoRequest(BaseModel): + """ExtensionCallerIdInfoRequest + + :param uri: Canonical URL of a caller ID resource, defaults to None + :type uri: str, optional + :param by_device: by_device, defaults to None + :type by_device: List[CallerIdByDeviceRequest], optional + :param by_feature: by_feature, defaults to None + :type by_feature: List[CallerIdByFeatureRequest], optional + :param extension_name_for_outbound_calls: If `true`, then the user first name and last name will be used as caller ID when making outbound calls from extension , defaults to None + :type extension_name_for_outbound_calls: bool, optional + :param extension_number_for_internal_calls: If `true`, then extension number will be used as caller ID when making internal calls , defaults to None + :type extension_number_for_internal_calls: bool, optional + """ + + def __init__( + self, + uri: str = None, + by_device: List[CallerIdByDeviceRequest] = None, + by_feature: List[CallerIdByFeatureRequest] = None, + extension_name_for_outbound_calls: bool = None, + extension_number_for_internal_calls: bool = None, + ): + if uri is not None: + self.uri = uri + if by_device is not None: + self.by_device = self._define_list(by_device, CallerIdByDeviceRequest) + if by_feature is not None: + self.by_feature = self._define_list(by_feature, CallerIdByFeatureRequest) + if extension_name_for_outbound_calls is not None: + self.extension_name_for_outbound_calls = extension_name_for_outbound_calls + if extension_number_for_internal_calls is not None: + self.extension_number_for_internal_calls = ( + extension_number_for_internal_calls + ) diff --git a/src/ring_central/models/extension_country_info_request.py b/src/ring_central/models/extension_country_info_request.py new file mode 100644 index 00000000..96b8e454 --- /dev/null +++ b/src/ring_central/models/extension_country_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionCountryInfoRequest(BaseModel): + """ExtensionCountryInfoRequest + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_creation_request.py b/src/ring_central/models/extension_creation_request.py new file mode 100644 index 00000000..b138a026 --- /dev/null +++ b/src/ring_central/models/extension_creation_request.py @@ -0,0 +1,205 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_info_creation_request import ContactInfoCreationRequest +from .cost_center_info import CostCenterInfo +from .custom_field_info import CustomFieldInfo +from .reference_info import ReferenceInfo +from .regional_settings import RegionalSettings +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .site_info import SiteInfo +from .extension_status_info import ExtensionStatusInfo + + +class ExtensionCreationRequestStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + FROZEN = "Frozen" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionCreationRequestStatus._member_map_.values()) + ) + + +class ExtensionCreationRequestType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + """ + + USER = "User" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + FLEXIBLEUSER = "FlexibleUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionCreationRequestType._member_map_.values()) + ) + + +@JsonMap( + { + "extension_number": "extensionNumber", + "cost_center": "costCenter", + "custom_fields": "customFields", + "regional_settings": "regionalSettings", + "partner_id": "partnerId", + "ivr_pin": "ivrPin", + "setup_wizard_state": "setupWizardState", + "status_info": "statusInfo", + "type_": "type", + } +) +class ExtensionCreationRequest(BaseModel): + """ExtensionCreationRequest + + :param contact: Contact Information, defaults to None + :type contact: ContactInfoCreationRequest, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + :param cost_center: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value, defaults to None + :type cost_center: CostCenterInfo, optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldInfo], optional + :param password: Password for extension. If not specified, the password is auto-generated, defaults to None + :type password: str, optional + :param references: List of non-RC internal identifiers assigned to an extension, defaults to None + :type references: List[ReferenceInfo], optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param partner_id: Additional extension identifier, created by partner application and applied on client side , defaults to None + :type partner_id: str, optional + :param ivr_pin: IVR PIN, defaults to None + :type ivr_pin: str, optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateForUpdateEnum, optional + :param site: site, defaults to None + :type site: SiteInfo, optional + :param status: Extension current state, defaults to None + :type status: ExtensionCreationRequestStatus, optional + :param status_info: Status information (reason, comment). Returned for 'Disabled' status only , defaults to None + :type status_info: ExtensionStatusInfo, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: ExtensionCreationRequestType, optional + :param hidden: Hides extension from showing in company directory. Supported for extensions of 'User' type only. For unassigned extensions the value is set to `true` by default. For assigned extensions the value is set to `false` by default , defaults to None + :type hidden: bool, optional + """ + + def __init__( + self, + contact: ContactInfoCreationRequest = None, + extension_number: str = None, + cost_center: CostCenterInfo = None, + custom_fields: List[CustomFieldInfo] = None, + password: str = None, + references: List[ReferenceInfo] = None, + regional_settings: RegionalSettings = None, + partner_id: str = None, + ivr_pin: str = None, + setup_wizard_state: SetupWizardStateForUpdateEnum = None, + site: SiteInfo = None, + status: ExtensionCreationRequestStatus = None, + status_info: ExtensionStatusInfo = None, + type_: ExtensionCreationRequestType = None, + hidden: bool = None, + ): + if contact is not None: + self.contact = self._define_object(contact, ContactInfoCreationRequest) + if extension_number is not None: + self.extension_number = extension_number + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterInfo) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldInfo) + if password is not None: + self.password = password + if references is not None: + self.references = self._define_list(references, ReferenceInfo) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if partner_id is not None: + self.partner_id = partner_id + if ivr_pin is not None: + self.ivr_pin = ivr_pin + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, + SetupWizardStateForUpdateEnum.list(), + "setup_wizard_state", + ) + if site is not None: + self.site = self._define_object(site, SiteInfo) + if status is not None: + self.status = self._enum_matching( + status, ExtensionCreationRequestStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, ExtensionStatusInfo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ExtensionCreationRequestType.list(), "type_" + ) + if hidden is not None: + self.hidden = hidden diff --git a/src/ring_central/models/extension_creation_response.py b/src/ring_central/models/extension_creation_response.py new file mode 100644 index 00000000..c5201937 --- /dev/null +++ b/src/ring_central/models/extension_creation_response.py @@ -0,0 +1,243 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_info import ContactInfo +from .cost_center_info import CostCenterInfo +from .custom_field_info import CustomFieldInfo +from .extension_permissions import ExtensionPermissions +from .profile_image_info import ProfileImageInfo +from .reference_info import ReferenceInfo +from .regional_settings import RegionalSettings +from .extension_service_feature_info import ExtensionServiceFeatureInfo +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .provisioning_site_info import ProvisioningSiteInfo +from .extension_status_info import ExtensionStatusInfo +from .assigned_country_info import AssignedCountryInfo + + +class ExtensionCreationResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + FROZEN = "Frozen" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, ExtensionCreationResponseStatus._member_map_.values() + ) + ) + + +class ExtensionCreationResponseType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + """ + + USER = "User" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + FLEXIBLEUSER = "FlexibleUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionCreationResponseType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "cost_center": "costCenter", + "custom_fields": "customFields", + "extension_number": "extensionNumber", + "partner_id": "partnerId", + "profile_image": "profileImage", + "regional_settings": "regionalSettings", + "service_features": "serviceFeatures", + "setup_wizard_state": "setupWizardState", + "status_info": "statusInfo", + "type_": "type", + "assigned_country": "assignedCountry", + } +) +class ExtensionCreationResponse(BaseModel): + """ExtensionCreationResponse + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param contact: Detailed contact information, defaults to None + :type contact: ContactInfo, optional + :param cost_center: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value, defaults to None + :type cost_center: CostCenterInfo, optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldInfo], optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + :param name: Extension name. For user extension types the value is a combination of the specified first name and last name , defaults to None + :type name: str, optional + :param partner_id: For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + :param permissions: Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' , defaults to None + :type permissions: ExtensionPermissions, optional + :param profile_image: Information on profile image, defaults to None + :type profile_image: ProfileImageInfo, optional + :param references: List of non-RC internal identifiers assigned to an extension , defaults to None + :type references: List[ReferenceInfo], optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param service_features: Extension service features returned in response only when the logged-in user requests his/her own extension info, see also Extension Service Features , defaults to None + :type service_features: List[ExtensionServiceFeatureInfo], optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateForUpdateEnum, optional + :param site: Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` , defaults to None + :type site: ProvisioningSiteInfo, optional + :param status: Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned , defaults to None + :type status: ExtensionCreationResponseStatus, optional + :param status_info: Status information (reason, comment). Returned for 'Disabled' status only , defaults to None + :type status_info: ExtensionStatusInfo, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: ExtensionCreationResponseType, optional + :param hidden: Hides an extension from showing in company directory. Supported for extensions of 'User' type only , defaults to None + :type hidden: bool, optional + :param assigned_country: Information on a country assigned to an extension user. Returned for the User extension type only, defaults to None + :type assigned_country: AssignedCountryInfo, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + contact: ContactInfo = None, + cost_center: CostCenterInfo = None, + custom_fields: List[CustomFieldInfo] = None, + extension_number: str = None, + name: str = None, + partner_id: str = None, + permissions: ExtensionPermissions = None, + profile_image: ProfileImageInfo = None, + references: List[ReferenceInfo] = None, + regional_settings: RegionalSettings = None, + service_features: List[ExtensionServiceFeatureInfo] = None, + setup_wizard_state: SetupWizardStateForUpdateEnum = None, + site: ProvisioningSiteInfo = None, + status: ExtensionCreationResponseStatus = None, + status_info: ExtensionStatusInfo = None, + type_: ExtensionCreationResponseType = None, + hidden: bool = None, + assigned_country: AssignedCountryInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if contact is not None: + self.contact = self._define_object(contact, ContactInfo) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterInfo) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldInfo) + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if partner_id is not None: + self.partner_id = partner_id + if permissions is not None: + self.permissions = self._define_object(permissions, ExtensionPermissions) + if profile_image is not None: + self.profile_image = self._define_object(profile_image, ProfileImageInfo) + if references is not None: + self.references = self._define_list(references, ReferenceInfo) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if service_features is not None: + self.service_features = self._define_list( + service_features, ExtensionServiceFeatureInfo + ) + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, + SetupWizardStateForUpdateEnum.list(), + "setup_wizard_state", + ) + if site is not None: + self.site = self._define_object(site, ProvisioningSiteInfo) + if status is not None: + self.status = self._enum_matching( + status, ExtensionCreationResponseStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, ExtensionStatusInfo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ExtensionCreationResponseType.list(), "type_" + ) + if hidden is not None: + self.hidden = hidden + if assigned_country is not None: + self.assigned_country = self._define_object( + assigned_country, AssignedCountryInfo + ) diff --git a/src/ring_central/models/extension_currency_info_request.py b/src/ring_central/models/extension_currency_info_request.py new file mode 100644 index 00000000..a39bc1f5 --- /dev/null +++ b/src/ring_central/models/extension_currency_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionCurrencyInfoRequest(BaseModel): + """ExtensionCurrencyInfoRequest + + :param id_: Internal Identifier of a currency, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_filters.py b/src/ring_central/models/extension_filters.py new file mode 100644 index 00000000..79fac0f7 --- /dev/null +++ b/src/ring_central/models/extension_filters.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_ids": "fromIds", "to_ids": "toIds"}) +class ExtensionFilters(BaseModel): + """Specifies filtering based on extension ids + + :param from_ids: List of extension ids to match against incoming calls, joined via OR condition. Only applicable for `groupByMembers` options and Users, IVRs, SharedLines and Queues in `groupBy`, defaults to None + :type from_ids: List[str], optional + :param to_ids: List of extension ids to match against outgoing calls, joined via OR condition. Limited to the extension id that first accepted the call. Only applicable for `groupByMembers` options and Users, IVRs and SharedLines in `groupBy`, defaults to None + :type to_ids: List[str], optional + """ + + def __init__(self, from_ids: List[str] = None, to_ids: List[str] = None): + if from_ids is not None: + self.from_ids = from_ids + if to_ids is not None: + self.to_ids = to_ids diff --git a/src/ring_central/models/extension_formatting_locale_info_request.py b/src/ring_central/models/extension_formatting_locale_info_request.py new file mode 100644 index 00000000..74392f6a --- /dev/null +++ b/src/ring_central/models/extension_formatting_locale_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionFormattingLocaleInfoRequest(BaseModel): + """ExtensionFormattingLocaleInfoRequest + + :param id_: Internal Identifier of a formatting language, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_greeting_language_info_request.py b/src/ring_central/models/extension_greeting_language_info_request.py new file mode 100644 index 00000000..4e229567 --- /dev/null +++ b/src/ring_central/models/extension_greeting_language_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionGreetingLanguageInfoRequest(BaseModel): + """ExtensionGreetingLanguageInfoRequest + + :param id_: Internal identifier of a greeting language, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_info.py b/src/ring_central/models/extension_info.py new file mode 100644 index 00000000..83d2dd26 --- /dev/null +++ b/src/ring_central/models/extension_info.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "extension_number": "extensionNumber", "partner_id": "partnerId"} +) +class ExtensionInfo(BaseModel): + """Information on the extension, to which the phone number is assigned. + Returned only for the request of Account phone number list + + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param name: Extension name, defaults to None + :type name: str, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + :param partner_id: For partner applications. Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + name: str = None, + extension_number: str = None, + partner_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if partner_id is not None: + self.partner_id = partner_id diff --git a/src/ring_central/models/extension_info_call_log.py b/src/ring_central/models/extension_info_call_log.py new file mode 100644 index 00000000..42d49c77 --- /dev/null +++ b/src/ring_central/models/extension_info_call_log.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionInfoCallLog(BaseModel): + """Information about extension on whose behalf a call is initiated. For Secretary call log the Boss extension info is returned + + :param id_: Internal identifier of an extension + :type id_: int + :param uri: Canonical URI of an extension + :type uri: str + """ + + def __init__(self, id_: int, uri: str): + self.id_ = id_ + self.uri = uri diff --git a/src/ring_central/models/extension_info_grants.py b/src/ring_central/models/extension_info_grants.py new file mode 100644 index 00000000..20e45d02 --- /dev/null +++ b/src/ring_central/models/extension_info_grants.py @@ -0,0 +1,99 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ExtensionInfoGrantsType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAX_USER: "Fax User" + :vartype FAX_USER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + """ + + USER = "User" + FAX_USER = "Fax User" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionInfoGrantsType._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber", "type_": "type"}) +class ExtensionInfoGrants(BaseModel): + """Extension information + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Extension short number (usually 3 or 4 digits), defaults to None + :type extension_number: str, optional + :param name: Name of extension, defaults to None + :type name: str, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: ExtensionInfoGrantsType, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + name: str = None, + type_: ExtensionInfoGrantsType = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if type_ is not None: + self.type_ = self._enum_matching( + type_, ExtensionInfoGrantsType.list(), "type_" + ) diff --git a/src/ring_central/models/extension_info_int_id.py b/src/ring_central/models/extension_info_int_id.py new file mode 100644 index 00000000..7d8c47fb --- /dev/null +++ b/src/ring_central/models/extension_info_int_id.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "extension_number": "extensionNumber", "partner_id": "partnerId"} +) +class ExtensionInfoIntId(BaseModel): + """This attribute can be omitted for unassigned devices + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Number of extension, defaults to None + :type extension_number: str, optional + :param partner_id: For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + extension_number: str = None, + partner_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if partner_id is not None: + self.partner_id = partner_id diff --git a/src/ring_central/models/extension_language_info_request.py b/src/ring_central/models/extension_language_info_request.py new file mode 100644 index 00000000..eae990d9 --- /dev/null +++ b/src/ring_central/models/extension_language_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionLanguageInfoRequest(BaseModel): + """ExtensionLanguageInfoRequest + + :param id_: Internal identifier of a language, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_permissions.py b/src/ring_central/models/extension_permissions.py new file mode 100644 index 00000000..6641abc3 --- /dev/null +++ b/src/ring_central/models/extension_permissions.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_info_admin import PermissionInfoAdmin +from .permission_info_int import PermissionInfoInt + + +@JsonMap({"international_calling": "internationalCalling"}) +class ExtensionPermissions(BaseModel): + """Extension permissions, corresponding to the Service Web permissions + 'Admin' and 'InternationalCalling' + + + :param admin: Admin permission, defaults to None + :type admin: PermissionInfoAdmin, optional + :param international_calling: International Calling permission, defaults to None + :type international_calling: PermissionInfoInt, optional + """ + + def __init__( + self, + admin: PermissionInfoAdmin = None, + international_calling: PermissionInfoInt = None, + ): + if admin is not None: + self.admin = self._define_object(admin, PermissionInfoAdmin) + if international_calling is not None: + self.international_calling = self._define_object( + international_calling, PermissionInfoInt + ) diff --git a/src/ring_central/models/extension_regional_setting_request.py b/src/ring_central/models/extension_regional_setting_request.py new file mode 100644 index 00000000..e7a035b8 --- /dev/null +++ b/src/ring_central/models/extension_regional_setting_request.py @@ -0,0 +1,105 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_country_info_request import ExtensionCountryInfoRequest +from .extension_timezone_info_request import ExtensionTimezoneInfoRequest +from .extension_language_info_request import ExtensionLanguageInfoRequest +from .extension_greeting_language_info_request import ( + ExtensionGreetingLanguageInfoRequest, +) +from .extension_formatting_locale_info_request import ( + ExtensionFormattingLocaleInfoRequest, +) +from .extension_currency_info_request import ExtensionCurrencyInfoRequest + + +class ExtensionRegionalSettingRequestTimeFormat(Enum): + """An enumeration representing different categories. + + :cvar _12H: "12h" + :vartype _12H: str + :cvar _24H: "24h" + :vartype _24H: str + """ + + _12H = "12h" + _24H = "24h" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ExtensionRegionalSettingRequestTimeFormat._member_map_.values(), + ) + ) + + +@JsonMap( + { + "home_country": "homeCountry", + "greeting_language": "greetingLanguage", + "formatting_locale": "formattingLocale", + "time_format": "timeFormat", + } +) +class ExtensionRegionalSettingRequest(BaseModel): + """ExtensionRegionalSettingRequest + + :param home_country: home_country, defaults to None + :type home_country: ExtensionCountryInfoRequest, optional + :param timezone: timezone, defaults to None + :type timezone: ExtensionTimezoneInfoRequest, optional + :param language: language, defaults to None + :type language: ExtensionLanguageInfoRequest, optional + :param greeting_language: greeting_language, defaults to None + :type greeting_language: ExtensionGreetingLanguageInfoRequest, optional + :param formatting_locale: formatting_locale, defaults to None + :type formatting_locale: ExtensionFormattingLocaleInfoRequest, optional + :param currency: currency, defaults to None + :type currency: ExtensionCurrencyInfoRequest, optional + :param time_format: Time format setting, defaults to None + :type time_format: ExtensionRegionalSettingRequestTimeFormat, optional + """ + + def __init__( + self, + home_country: ExtensionCountryInfoRequest = None, + timezone: ExtensionTimezoneInfoRequest = None, + language: ExtensionLanguageInfoRequest = None, + greeting_language: ExtensionGreetingLanguageInfoRequest = None, + formatting_locale: ExtensionFormattingLocaleInfoRequest = None, + currency: ExtensionCurrencyInfoRequest = None, + time_format: ExtensionRegionalSettingRequestTimeFormat = None, + ): + if home_country is not None: + self.home_country = self._define_object( + home_country, ExtensionCountryInfoRequest + ) + if timezone is not None: + self.timezone = self._define_object(timezone, ExtensionTimezoneInfoRequest) + if language is not None: + self.language = self._define_object(language, ExtensionLanguageInfoRequest) + if greeting_language is not None: + self.greeting_language = self._define_object( + greeting_language, ExtensionGreetingLanguageInfoRequest + ) + if formatting_locale is not None: + self.formatting_locale = self._define_object( + formatting_locale, ExtensionFormattingLocaleInfoRequest + ) + if currency is not None: + self.currency = self._define_object(currency, ExtensionCurrencyInfoRequest) + if time_format is not None: + self.time_format = self._enum_matching( + time_format, + ExtensionRegionalSettingRequestTimeFormat.list(), + "time_format", + ) diff --git a/src/ring_central/models/extension_service_feature_info.py b/src/ring_central/models/extension_service_feature_info.py new file mode 100644 index 00000000..1bf3ec76 --- /dev/null +++ b/src/ring_central/models/extension_service_feature_info.py @@ -0,0 +1,235 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ExtensionServiceFeatureInfoFeatureName(Enum): + """An enumeration representing different categories. + + :cvar ACCOUNTFEDERATION: "AccountFederation" + :vartype ACCOUNTFEDERATION: str + :cvar ARCHIVER: "Archiver" + :vartype ARCHIVER: str + :cvar AUTOMATICCALLRECORDINGMUTE: "AutomaticCallRecordingMute" + :vartype AUTOMATICCALLRECORDINGMUTE: str + :cvar AUTOMATICINBOUNDCALLRECORDING: "AutomaticInboundCallRecording" + :vartype AUTOMATICINBOUNDCALLRECORDING: str + :cvar AUTOMATICOUTBOUNDCALLRECORDING: "AutomaticOutboundCallRecording" + :vartype AUTOMATICOUTBOUNDCALLRECORDING: str + :cvar BLOCKEDMESSAGEFORWARDING: "BlockedMessageForwarding" + :vartype BLOCKEDMESSAGEFORWARDING: str + :cvar CALENDAR: "Calendar" + :vartype CALENDAR: str + :cvar CALLERIDCONTROL: "CallerIdControl" + :vartype CALLERIDCONTROL: str + :cvar CALLFORWARDING: "CallForwarding" + :vartype CALLFORWARDING: str + :cvar CALLPARK: "CallPark" + :vartype CALLPARK: str + :cvar CALLPARKLOCATIONS: "CallParkLocations" + :vartype CALLPARKLOCATIONS: str + :cvar CALLSUPERVISION: "CallSupervision" + :vartype CALLSUPERVISION: str + :cvar CALLSWITCH: "CallSwitch" + :vartype CALLSWITCH: str + :cvar CALLQUALITYSURVEY: "CallQualitySurvey" + :vartype CALLQUALITYSURVEY: str + :cvar CONFERENCING: "Conferencing" + :vartype CONFERENCING: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar CONFIGUREDELEGATES: "ConfigureDelegates" + :vartype CONFIGUREDELEGATES: str + :cvar DEVELOPERPORTAL: "DeveloperPortal" + :vartype DEVELOPERPORTAL: str + :cvar DND: "DND" + :vartype DND: str + :cvar DYNAMICCONFERENCE: "DynamicConference" + :vartype DYNAMICCONFERENCE: str + :cvar EMERGENCYADDRESSAUTOUPDATE: "EmergencyAddressAutoUpdate" + :vartype EMERGENCYADDRESSAUTOUPDATE: str + :cvar EMERGENCYCALLING: "EmergencyCalling" + :vartype EMERGENCYCALLING: str + :cvar ENCRYPTIONATREST: "EncryptionAtRest" + :vartype ENCRYPTIONATREST: str + :cvar EXTERNALDIRECTORYINTEGRATION: "ExternalDirectoryIntegration" + :vartype EXTERNALDIRECTORYINTEGRATION: str + :cvar FAX: "Fax" + :vartype FAX: str + :cvar FAXRECEIVING: "FaxReceiving" + :vartype FAXRECEIVING: str + :cvar FREESOFTPHONELINES: "FreeSoftPhoneLines" + :vartype FREESOFTPHONELINES: str + :cvar HDVOICE: "HDVoice" + :vartype HDVOICE: str + :cvar HIPAACOMPLIANCE: "HipaaCompliance" + :vartype HIPAACOMPLIANCE: str + :cvar INTERCOM: "Intercom" + :vartype INTERCOM: str + :cvar INTERNATIONALCALLING: "InternationalCalling" + :vartype INTERNATIONALCALLING: str + :cvar INTERNATIONALSMS: "InternationalSMS" + :vartype INTERNATIONALSMS: str + :cvar LINKEDSOFTPHONELINES: "LinkedSoftphoneLines" + :vartype LINKEDSOFTPHONELINES: str + :cvar MMS: "MMS" + :vartype MMS: str + :cvar MOBILEVOIPEMERGENCYCALLING: "MobileVoipEmergencyCalling" + :vartype MOBILEVOIPEMERGENCYCALLING: str + :cvar ONDEMANDCALLRECORDING: "OnDemandCallRecording" + :vartype ONDEMANDCALLRECORDING: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar PAGERRECEIVING: "PagerReceiving" + :vartype PAGERRECEIVING: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar PASSWORDAUTH: "PasswordAuth" + :vartype PASSWORDAUTH: str + :cvar PROMOMESSAGE: "PromoMessage" + :vartype PROMOMESSAGE: str + :cvar REPORTS: "Reports" + :vartype REPORTS: str + :cvar PRESENCE: "Presence" + :vartype PRESENCE: str + :cvar RCTEAMS: "RCTeams" + :vartype RCTEAMS: str + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar SALESFORCE: "SalesForce" + :vartype SALESFORCE: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + :cvar SINGLEEXTENSIONUI: "SingleExtensionUI" + :vartype SINGLEEXTENSIONUI: str + :cvar SITECODES: "SiteCodes" + :vartype SITECODES: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar SMSRECEIVING: "SMSReceiving" + :vartype SMSRECEIVING: str + :cvar SOFTPHONEUPDATE: "SoftPhoneUpdate" + :vartype SOFTPHONEUPDATE: str + :cvar TELEPHONYSESSIONS: "TelephonySessions" + :vartype TELEPHONYSESSIONS: str + :cvar USERMANAGEMENT: "UserManagement" + :vartype USERMANAGEMENT: str + :cvar VIDEOCONFERENCING: "VideoConferencing" + :vartype VIDEOCONFERENCING: str + :cvar VOIPCALLING: "VoipCalling" + :vartype VOIPCALLING: str + :cvar VOIPCALLINGONMOBILE: "VoipCallingOnMobile" + :vartype VOIPCALLINGONMOBILE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar VOICEMAILTOTEXT: "VoicemailToText" + :vartype VOICEMAILTOTEXT: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + """ + + ACCOUNTFEDERATION = "AccountFederation" + ARCHIVER = "Archiver" + AUTOMATICCALLRECORDINGMUTE = "AutomaticCallRecordingMute" + AUTOMATICINBOUNDCALLRECORDING = "AutomaticInboundCallRecording" + AUTOMATICOUTBOUNDCALLRECORDING = "AutomaticOutboundCallRecording" + BLOCKEDMESSAGEFORWARDING = "BlockedMessageForwarding" + CALENDAR = "Calendar" + CALLERIDCONTROL = "CallerIdControl" + CALLFORWARDING = "CallForwarding" + CALLPARK = "CallPark" + CALLPARKLOCATIONS = "CallParkLocations" + CALLSUPERVISION = "CallSupervision" + CALLSWITCH = "CallSwitch" + CALLQUALITYSURVEY = "CallQualitySurvey" + CONFERENCING = "Conferencing" + CONFERENCINGNUMBER = "ConferencingNumber" + CONFIGUREDELEGATES = "ConfigureDelegates" + DEVELOPERPORTAL = "DeveloperPortal" + DND = "DND" + DYNAMICCONFERENCE = "DynamicConference" + EMERGENCYADDRESSAUTOUPDATE = "EmergencyAddressAutoUpdate" + EMERGENCYCALLING = "EmergencyCalling" + ENCRYPTIONATREST = "EncryptionAtRest" + EXTERNALDIRECTORYINTEGRATION = "ExternalDirectoryIntegration" + FAX = "Fax" + FAXRECEIVING = "FaxReceiving" + FREESOFTPHONELINES = "FreeSoftPhoneLines" + HDVOICE = "HDVoice" + HIPAACOMPLIANCE = "HipaaCompliance" + INTERCOM = "Intercom" + INTERNATIONALCALLING = "InternationalCalling" + INTERNATIONALSMS = "InternationalSMS" + LINKEDSOFTPHONELINES = "LinkedSoftphoneLines" + MMS = "MMS" + MOBILEVOIPEMERGENCYCALLING = "MobileVoipEmergencyCalling" + ONDEMANDCALLRECORDING = "OnDemandCallRecording" + PAGER = "Pager" + PAGERRECEIVING = "PagerReceiving" + PAGING = "Paging" + PASSWORDAUTH = "PasswordAuth" + PROMOMESSAGE = "PromoMessage" + REPORTS = "Reports" + PRESENCE = "Presence" + RCTEAMS = "RCTeams" + RINGOUT = "RingOut" + SALESFORCE = "SalesForce" + SHAREDLINES = "SharedLines" + SINGLEEXTENSIONUI = "SingleExtensionUI" + SITECODES = "SiteCodes" + SMS = "SMS" + SMSRECEIVING = "SMSReceiving" + SOFTPHONEUPDATE = "SoftPhoneUpdate" + TELEPHONYSESSIONS = "TelephonySessions" + USERMANAGEMENT = "UserManagement" + VIDEOCONFERENCING = "VideoConferencing" + VOIPCALLING = "VoipCalling" + VOIPCALLINGONMOBILE = "VoipCallingOnMobile" + VOICEMAIL = "Voicemail" + VOICEMAILTOTEXT = "VoicemailToText" + WEBPHONE = "WebPhone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ExtensionServiceFeatureInfoFeatureName._member_map_.values(), + ) + ) + + +@JsonMap({"feature_name": "featureName"}) +class ExtensionServiceFeatureInfo(BaseModel): + """ExtensionServiceFeatureInfo + + :param enabled: Feature status; shows feature availability for an extension, defaults to None + :type enabled: bool, optional + :param feature_name: Feature name, defaults to None + :type feature_name: ExtensionServiceFeatureInfoFeatureName, optional + :param reason: Reason for limitation of a particular service feature. Returned only if the enabled parameter value is `false`, see Service Feature Limitations and Reasons. When retrieving service features for an extension, the reasons for limitations, if any, are returned in response , defaults to None + :type reason: str, optional + """ + + def __init__( + self, + enabled: bool = None, + feature_name: ExtensionServiceFeatureInfoFeatureName = None, + reason: str = None, + ): + if enabled is not None: + self.enabled = enabled + if feature_name is not None: + self.feature_name = self._enum_matching( + feature_name, + ExtensionServiceFeatureInfoFeatureName.list(), + "feature_name", + ) + if reason is not None: + self.reason = reason diff --git a/src/ring_central/models/extension_short_info_resource.py b/src/ring_central/models/extension_short_info_resource.py new file mode 100644 index 00000000..0fddccd5 --- /dev/null +++ b/src/ring_central/models/extension_short_info_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class ExtensionShortInfoResource(BaseModel): + """ExtensionShortInfoResource + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param name: Extension name, defaults to None + :type name: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: str = None, name: str = None, extension_number: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/extension_status.py b/src/ring_central/models/extension_status.py new file mode 100644 index 00000000..f66bd99e --- /dev/null +++ b/src/ring_central/models/extension_status.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ExtensionStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + FROZEN = "Frozen" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ExtensionStatus._member_map_.values())) diff --git a/src/ring_central/models/extension_status_info.py b/src/ring_central/models/extension_status_info.py new file mode 100644 index 00000000..f648a5a5 --- /dev/null +++ b/src/ring_central/models/extension_status_info.py @@ -0,0 +1,64 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ExtensionStatusInfoReason(Enum): + """An enumeration representing different categories. + + :cvar SUSPENDEDVOLUNTARILY: "SuspendedVoluntarily" + :vartype SUSPENDEDVOLUNTARILY: str + :cvar SUSPENDEDINVOLUNTARILY: "SuspendedInvoluntarily" + :vartype SUSPENDEDINVOLUNTARILY: str + :cvar CANCELLEDVOLUNTARILY: "CancelledVoluntarily" + :vartype CANCELLEDVOLUNTARILY: str + :cvar CANCELLEDINVOLUNTARILY: "CancelledInvoluntarily" + :vartype CANCELLEDINVOLUNTARILY: str + """ + + SUSPENDEDVOLUNTARILY = "SuspendedVoluntarily" + SUSPENDEDINVOLUNTARILY = "SuspendedInvoluntarily" + CANCELLEDVOLUNTARILY = "CancelledVoluntarily" + CANCELLEDINVOLUNTARILY = "CancelledInvoluntarily" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionStatusInfoReason._member_map_.values()) + ) + + +@JsonMap({}) +class ExtensionStatusInfo(BaseModel): + """Status information (reason, comment). Returned for 'Disabled' + status only + + + :param comment: A free-form user comment, describing the status change reason, defaults to None + :type comment: str, optional + :param reason: Type of suspension, defaults to None + :type reason: ExtensionStatusInfoReason, optional + :param till: Date until which an account will get deleted. The default value is 30 days since the current date , defaults to None + :type till: str, optional + """ + + def __init__( + self, + comment: str = None, + reason: ExtensionStatusInfoReason = None, + till: str = None, + ): + if comment is not None: + self.comment = comment + if reason is not None: + self.reason = self._enum_matching( + reason, ExtensionStatusInfoReason.list(), "reason" + ) + if till is not None: + self.till = till diff --git a/src/ring_central/models/extension_timezone_info_request.py b/src/ring_central/models/extension_timezone_info_request.py new file mode 100644 index 00000000..d840aeaf --- /dev/null +++ b/src/ring_central/models/extension_timezone_info_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ExtensionTimezoneInfoRequest(BaseModel): + """ExtensionTimezoneInfoRequest + + :param id_: Internal identifier of a timezone, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/extension_type.py b/src/ring_central/models/extension_type.py new file mode 100644 index 00000000..a399b328 --- /dev/null +++ b/src/ring_central/models/extension_type.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ExtensionType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + """ + + USER = "User" + FAXUSER = "FaxUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + BOT = "Bot" + ROOM = "Room" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ExtensionType._member_map_.values())) diff --git a/src/ring_central/models/extension_update_request.py b/src/ring_central/models/extension_update_request.py new file mode 100644 index 00000000..1bdc67af --- /dev/null +++ b/src/ring_central/models/extension_update_request.py @@ -0,0 +1,257 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_status_info import ExtensionStatusInfo +from .contact_info_update_request import ContactInfoUpdateRequest +from .extension_regional_setting_request import ExtensionRegionalSettingRequest +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .call_queue_info_request import CallQueueInfoRequest +from .user_transition_info import UserTransitionInfo +from .custom_field_info import CustomFieldInfo +from .site_reference import SiteReference +from .reference_info import ReferenceInfo + + +class ExtensionUpdateRequestStatus(Enum): + """An enumeration representing different categories. + + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + """ + + DISABLED = "Disabled" + ENABLED = "Enabled" + NOTACTIVATED = "NotActivated" + FROZEN = "Frozen" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionUpdateRequestStatus._member_map_.values()) + ) + + +class ExtensionUpdateRequestType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + """ + + USER = "User" + FAXUSER = "FaxUser" + FLEXIBLEUSER = "FlexibleUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + GROUPCALLPICKUP = "GroupCallPickup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionUpdateRequestType._member_map_.values()) + ) + + +class ExtensionUpdateRequestSubType(Enum): + """An enumeration representing different categories. + + :cvar VIDEOPRO: "VideoPro" + :vartype VIDEOPRO: str + :cvar VIDEOPROPLUS: "VideoProPlus" + :vartype VIDEOPROPLUS: str + :cvar DIGITALSIGNAGEONLYROOMS: "DigitalSignageOnlyRooms" + :vartype DIGITALSIGNAGEONLYROOMS: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + VIDEOPRO = "VideoPro" + VIDEOPROPLUS = "VideoProPlus" + DIGITALSIGNAGEONLYROOMS = "DigitalSignageOnlyRooms" + UNKNOWN = "Unknown" + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ExtensionUpdateRequestSubType._member_map_.values()) + ) + + +@JsonMap( + { + "status_info": "statusInfo", + "extension_number": "extensionNumber", + "regional_settings": "regionalSettings", + "setup_wizard_state": "setupWizardState", + "partner_id": "partnerId", + "ivr_pin": "ivrPin", + "call_queue_info": "callQueueInfo", + "custom_fields": "customFields", + "type_": "type", + "sub_type": "subType", + } +) +class ExtensionUpdateRequest(BaseModel): + """ExtensionUpdateRequest + + :param status: status, defaults to None + :type status: ExtensionUpdateRequestStatus, optional + :param status_info: Status information (reason, comment). Returned for 'Disabled' status only , defaults to None + :type status_info: ExtensionStatusInfo, optional + :param extension_number: Extension number available, defaults to None + :type extension_number: str, optional + :param contact: contact, defaults to None + :type contact: ContactInfoUpdateRequest, optional + :param regional_settings: regional_settings, defaults to None + :type regional_settings: ExtensionRegionalSettingRequest, optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateForUpdateEnum, optional + :param partner_id: Additional extension identifier, created by partner application and applied on client side , defaults to None + :type partner_id: str, optional + :param ivr_pin: IVR PIN, defaults to None + :type ivr_pin: str, optional + :param password: Password for extension, defaults to None + :type password: str, optional + :param call_queue_info: For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type call_queue_info: CallQueueInfoRequest, optional + :param transition: For NotActivated extensions only. Welcome email settings , defaults to None + :type transition: UserTransitionInfo, optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldInfo], optional + :param site: site, defaults to None + :type site: SiteReference, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: ExtensionUpdateRequestType, optional + :param sub_type: Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned , defaults to None + :type sub_type: ExtensionUpdateRequestSubType, optional + :param references: List of non-RC internal identifiers assigned to an extension , defaults to None + :type references: List[ReferenceInfo], optional + """ + + def __init__( + self, + status: ExtensionUpdateRequestStatus = None, + status_info: ExtensionStatusInfo = None, + extension_number: str = None, + contact: ContactInfoUpdateRequest = None, + regional_settings: ExtensionRegionalSettingRequest = None, + setup_wizard_state: SetupWizardStateForUpdateEnum = None, + partner_id: str = None, + ivr_pin: str = None, + password: str = None, + call_queue_info: CallQueueInfoRequest = None, + transition: UserTransitionInfo = None, + custom_fields: List[CustomFieldInfo] = None, + site: SiteReference = None, + type_: ExtensionUpdateRequestType = None, + sub_type: ExtensionUpdateRequestSubType = None, + references: List[ReferenceInfo] = None, + ): + if status is not None: + self.status = self._enum_matching( + status, ExtensionUpdateRequestStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, ExtensionStatusInfo) + if extension_number is not None: + self.extension_number = extension_number + if contact is not None: + self.contact = self._define_object(contact, ContactInfoUpdateRequest) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, ExtensionRegionalSettingRequest + ) + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, + SetupWizardStateForUpdateEnum.list(), + "setup_wizard_state", + ) + if partner_id is not None: + self.partner_id = partner_id + if ivr_pin is not None: + self.ivr_pin = ivr_pin + if password is not None: + self.password = password + if call_queue_info is not None: + self.call_queue_info = self._define_object( + call_queue_info, CallQueueInfoRequest + ) + if transition is not None: + self.transition = self._define_object(transition, UserTransitionInfo) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldInfo) + if site is not None: + self.site = self._define_object(site, SiteReference) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ExtensionUpdateRequestType.list(), "type_" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, ExtensionUpdateRequestSubType.list(), "sub_type" + ) + if references is not None: + self.references = self._define_list(references, ReferenceInfo) diff --git a/src/ring_central/models/extension_update_short_result.py b/src/ring_central/models/extension_update_short_result.py new file mode 100644 index 00000000..f89f7291 --- /dev/null +++ b/src/ring_central/models/extension_update_short_result.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .error_entity import ErrorEntity + + +class ExtensionUpdateShortResultStatus(Enum): + """An enumeration representing different categories. + + :cvar FAIL: "Fail" + :vartype FAIL: str + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + """ + + FAIL = "Fail" + SUCCESS = "Success" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ExtensionUpdateShortResultStatus._member_map_.values(), + ) + ) + + +@JsonMap({"extension_id": "extensionId"}) +class ExtensionUpdateShortResult(BaseModel): + """ExtensionUpdateShortResult + + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param status: Extension update status, defaults to None + :type status: ExtensionUpdateShortResultStatus, optional + :param errors: errors, defaults to None + :type errors: List[ErrorEntity], optional + """ + + def __init__( + self, + extension_id: str = None, + status: ExtensionUpdateShortResultStatus = None, + errors: List[ErrorEntity] = None, + ): + if extension_id is not None: + self.extension_id = extension_id + if status is not None: + self.status = self._enum_matching( + status, ExtensionUpdateShortResultStatus.list(), "status" + ) + if errors is not None: + self.errors = self._define_list(errors, ErrorEntity) diff --git a/src/ring_central/models/extension_with_roles_collection_resource.py b/src/ring_central/models/extension_with_roles_collection_resource.py new file mode 100644 index 00000000..28ce6f5e --- /dev/null +++ b/src/ring_central/models/extension_with_roles_collection_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_with_roles_resource import ExtensionWithRolesResource +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class ExtensionWithRolesCollectionResource(BaseModel): + """ExtensionWithRolesCollectionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[ExtensionWithRolesResource], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[ExtensionWithRolesResource] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, ExtensionWithRolesResource) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/extension_with_roles_resource.py b/src/ring_central/models/extension_with_roles_resource.py new file mode 100644 index 00000000..341b8c65 --- /dev/null +++ b/src/ring_central/models/extension_with_roles_resource.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .assigned_role_resource import AssignedRoleResource + + +@JsonMap({"extension_id": "extensionId"}) +class ExtensionWithRolesResource(BaseModel): + """ExtensionWithRolesResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param extension_id: extension_id, defaults to None + :type extension_id: str, optional + :param roles: roles, defaults to None + :type roles: List[AssignedRoleResource], optional + """ + + def __init__( + self, + uri: str = None, + extension_id: str = None, + roles: List[AssignedRoleResource] = None, + ): + if uri is not None: + self.uri = uri + if extension_id is not None: + self.extension_id = extension_id + if roles is not None: + self.roles = self._define_list(roles, AssignedRoleResource) diff --git a/src/ring_central/models/external_integration_resource.py b/src/ring_central/models/external_integration_resource.py new file mode 100644 index 00000000..23fc58f8 --- /dev/null +++ b/src/ring_central/models/external_integration_resource.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "type_id": "typeId", + "type_": "type", + "display_name": "displayName", + "routing_type": "routingType", + "outbound_edge_id": "outboundEdgeId", + } +) +class ExternalIntegrationResource(BaseModel): + """ExternalIntegrationResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param type_id: type_id, defaults to None + :type type_id: str, optional + :param type_: type_, defaults to None + :type type_: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + :param routing_type: routing_type, defaults to None + :type routing_type: str, optional + :param outbound_edge_id: outbound_edge_id, defaults to None + :type outbound_edge_id: str, optional + """ + + def __init__( + self, + id_: str = None, + type_id: str = None, + type_: str = None, + display_name: str = None, + routing_type: str = None, + outbound_edge_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_id is not None: + self.type_id = type_id + if type_ is not None: + self.type_ = type_ + if display_name is not None: + self.display_name = display_name + if routing_type is not None: + self.routing_type = routing_type + if outbound_edge_id is not None: + self.outbound_edge_id = outbound_edge_id diff --git a/src/ring_central/models/favorite_collection.py b/src/ring_central/models/favorite_collection.py new file mode 100644 index 00000000..f7f7d5db --- /dev/null +++ b/src/ring_central/models/favorite_collection.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .favorite_contact_resource import FavoriteContactResource + + +@JsonMap({}) +class FavoriteCollection(BaseModel): + """FavoriteCollection + + :param records: records, defaults to None + :type records: List[FavoriteContactResource], optional + """ + + def __init__(self, records: List[FavoriteContactResource] = None): + if records is not None: + self.records = self._define_list(records, FavoriteContactResource) diff --git a/src/ring_central/models/favorite_contact_list.py b/src/ring_central/models/favorite_contact_list.py new file mode 100644 index 00000000..b705ef70 --- /dev/null +++ b/src/ring_central/models/favorite_contact_list.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .favorite_contact_resource import FavoriteContactResource + + +@JsonMap({}) +class FavoriteContactList(BaseModel): + """FavoriteContactList + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[FavoriteContactResource], optional + """ + + def __init__(self, uri: str = None, records: List[FavoriteContactResource] = None): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, FavoriteContactResource) diff --git a/src/ring_central/models/favorite_contact_resource.py b/src/ring_central/models/favorite_contact_resource.py new file mode 100644 index 00000000..31a222ef --- /dev/null +++ b/src/ring_central/models/favorite_contact_resource.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "extension_id": "extensionId", + "account_id": "accountId", + "contact_id": "contactId", + } +) +class FavoriteContactResource(BaseModel): + """FavoriteContactResource + + :param id_: id_, defaults to None + :type id_: int, optional + :param extension_id: extension_id, defaults to None + :type extension_id: str, optional + :param account_id: account_id, defaults to None + :type account_id: str, optional + :param contact_id: contact_id, defaults to None + :type contact_id: str, optional + """ + + def __init__( + self, + id_: int = None, + extension_id: str = None, + account_id: str = None, + contact_id: str = None, + ): + if id_ is not None: + self.id_ = id_ + if extension_id is not None: + self.extension_id = extension_id + if account_id is not None: + self.account_id = account_id + if contact_id is not None: + self.contact_id = contact_id diff --git a/src/ring_central/models/fax_cover_page_info.py b/src/ring_central/models/fax_cover_page_info.py new file mode 100644 index 00000000..d94365e1 --- /dev/null +++ b/src/ring_central/models/fax_cover_page_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class FaxCoverPageInfo(BaseModel): + """FaxCoverPageInfo + + :param id_: Internal identifier of a fax cover page. The supported value range is 0-13 (for language setting en-US) and 0, 15-28 (for all other languages) , defaults to None + :type id_: str, optional + :param name: Name of a fax cover page pattern, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/fax_error_code_enum.py b/src/ring_central/models/fax_error_code_enum.py new file mode 100644 index 00000000..42078a94 --- /dev/null +++ b/src/ring_central/models/fax_error_code_enum.py @@ -0,0 +1,120 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class FaxErrorCodeEnum(Enum): + """An enumeration representing different categories. + + :cvar ALLLINESINUSE: "AllLinesInUse" + :vartype ALLLINESINUSE: str + :cvar UNDEFINED: "Undefined" + :vartype UNDEFINED: str + :cvar NOFAXSENDPERMISSION: "NoFaxSendPermission" + :vartype NOFAXSENDPERMISSION: str + :cvar NOINTERNATIONALPERMISSION: "NoInternationalPermission" + :vartype NOINTERNATIONALPERMISSION: str + :cvar NOFAXMACHINE: "NoFaxMachine" + :vartype NOFAXMACHINE: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + :cvar LINEBUSY: "LineBusy" + :vartype LINEBUSY: str + :cvar CALLERHUNGUP: "CallerHungUp" + :vartype CALLERHUNGUP: str + :cvar NOTENOUGHCREDITS: "NotEnoughCredits" + :vartype NOTENOUGHCREDITS: str + :cvar SENTPARTIALLY: "SentPartially" + :vartype SENTPARTIALLY: str + :cvar INTERNATIONALCALLINGDISABLED: "InternationalCallingDisabled" + :vartype INTERNATIONALCALLINGDISABLED: str + :cvar DESTINATIONCOUNTRYDISABLED: "DestinationCountryDisabled" + :vartype DESTINATIONCOUNTRYDISABLED: str + :cvar UNKNOWNCOUNTRYCODE: "UnknownCountryCode" + :vartype UNKNOWNCOUNTRYCODE: str + :cvar NOTACCEPTED: "NotAccepted" + :vartype NOTACCEPTED: str + :cvar INVALIDNUMBER: "InvalidNumber" + :vartype INVALIDNUMBER: str + :cvar CALLDECLINED: "CallDeclined" + :vartype CALLDECLINED: str + :cvar TOOMANYCALLSPERLINE: "TooManyCallsPerLine" + :vartype TOOMANYCALLSPERLINE: str + :cvar CALLFAILED: "CallFailed" + :vartype CALLFAILED: str + :cvar RENDERINGFAILED: "RenderingFailed" + :vartype RENDERINGFAILED: str + :cvar TOOMANYPAGES: "TooManyPages" + :vartype TOOMANYPAGES: str + :cvar RETURNTODBQUEUE: "ReturnToDBQueue" + :vartype RETURNTODBQUEUE: str + :cvar NOCALLTIME: "NoCallTime" + :vartype NOCALLTIME: str + :cvar WRONGNUMBER: "WrongNumber" + :vartype WRONGNUMBER: str + :cvar PROHIBITEDNUMBER: "ProhibitedNumber" + :vartype PROHIBITEDNUMBER: str + :cvar INTERNALERROR: "InternalError" + :vartype INTERNALERROR: str + :cvar FAXSENDINGPROHIBITED: "FaxSendingProhibited" + :vartype FAXSENDINGPROHIBITED: str + :cvar THEPHONEISBLACKLISTED: "ThePhoneIsBlacklisted" + :vartype THEPHONEISBLACKLISTED: str + :cvar USERNOTFOUND: "UserNotFound" + :vartype USERNOTFOUND: str + :cvar CONVERTERROR: "ConvertError" + :vartype CONVERTERROR: str + :cvar DBGENERALERROR: "DBGeneralError" + :vartype DBGENERALERROR: str + :cvar SKYPEBILLINGFAILED: "SkypeBillingFailed" + :vartype SKYPEBILLINGFAILED: str + :cvar ACCOUNTSUSPENDED: "AccountSuspended" + :vartype ACCOUNTSUSPENDED: str + :cvar PROHIBITEDDESTINATION: "ProhibitedDestination" + :vartype PROHIBITEDDESTINATION: str + :cvar INTERNATIONALDISABLED: "InternationalDisabled" + :vartype INTERNATIONALDISABLED: str + """ + + ALLLINESINUSE = "AllLinesInUse" + UNDEFINED = "Undefined" + NOFAXSENDPERMISSION = "NoFaxSendPermission" + NOINTERNATIONALPERMISSION = "NoInternationalPermission" + NOFAXMACHINE = "NoFaxMachine" + NOANSWER = "NoAnswer" + LINEBUSY = "LineBusy" + CALLERHUNGUP = "CallerHungUp" + NOTENOUGHCREDITS = "NotEnoughCredits" + SENTPARTIALLY = "SentPartially" + INTERNATIONALCALLINGDISABLED = "InternationalCallingDisabled" + DESTINATIONCOUNTRYDISABLED = "DestinationCountryDisabled" + UNKNOWNCOUNTRYCODE = "UnknownCountryCode" + NOTACCEPTED = "NotAccepted" + INVALIDNUMBER = "InvalidNumber" + CALLDECLINED = "CallDeclined" + TOOMANYCALLSPERLINE = "TooManyCallsPerLine" + CALLFAILED = "CallFailed" + RENDERINGFAILED = "RenderingFailed" + TOOMANYPAGES = "TooManyPages" + RETURNTODBQUEUE = "ReturnToDBQueue" + NOCALLTIME = "NoCallTime" + WRONGNUMBER = "WrongNumber" + PROHIBITEDNUMBER = "ProhibitedNumber" + INTERNALERROR = "InternalError" + FAXSENDINGPROHIBITED = "FaxSendingProhibited" + THEPHONEISBLACKLISTED = "ThePhoneIsBlacklisted" + USERNOTFOUND = "UserNotFound" + CONVERTERROR = "ConvertError" + DBGENERALERROR = "DBGeneralError" + SKYPEBILLINGFAILED = "SkypeBillingFailed" + ACCOUNTSUSPENDED = "AccountSuspended" + PROHIBITEDDESTINATION = "ProhibitedDestination" + INTERNATIONALDISABLED = "InternationalDisabled" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FaxErrorCodeEnum._member_map_.values())) diff --git a/src/ring_central/models/fax_request_to.py b/src/ring_central/models/fax_request_to.py new file mode 100644 index 00000000..56409515 --- /dev/null +++ b/src/ring_central/models/fax_request_to.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class FaxRequestTo(BaseModel): + """FaxRequestTo + + :param phone_number: Phone number in E.164 (with '+' sign) format, defaults to None + :type phone_number: str, optional + :param name: Name of a fax recipient that will be listed on a fax cover page, defaults to None + :type name: str, optional + """ + + def __init__(self, phone_number: str = None, name: str = None): + if phone_number is not None: + self.phone_number = phone_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/fax_resolution_enum.py b/src/ring_central/models/fax_resolution_enum.py new file mode 100644 index 00000000..c854bfd5 --- /dev/null +++ b/src/ring_central/models/fax_resolution_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class FaxResolutionEnum(Enum): + """An enumeration representing different categories. + + :cvar HIGH: "High" + :vartype HIGH: str + :cvar LOW: "Low" + :vartype LOW: str + """ + + HIGH = "High" + LOW = "Low" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FaxResolutionEnum._member_map_.values())) diff --git a/src/ring_central/models/fax_response.py b/src/ring_central/models/fax_response.py new file mode 100644 index 00000000..94969936 --- /dev/null +++ b/src/ring_central/models/fax_response.py @@ -0,0 +1,158 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_store_caller_info_response_from import MessageStoreCallerInfoResponseFrom +from .fax_response_to import FaxResponseTo +from .message_read_status_enum import MessageReadStatusEnum +from .message_priority_enum import MessagePriorityEnum +from .message_attachment_info_int_id import MessageAttachmentInfoIntId +from .message_direction_enum import MessageDirectionEnum +from .message_availability_enum import MessageAvailabilityEnum +from .message_status_enum import MessageStatusEnum +from .fax_resolution_enum import FaxResolutionEnum + + +class FaxResponseType(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + """ + + FAX = "Fax" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FaxResponseType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "from_": "from", + "creation_time": "creationTime", + "read_status": "readStatus", + "message_status": "messageStatus", + "fax_resolution": "faxResolution", + "fax_page_count": "faxPageCount", + "last_modified_time": "lastModifiedTime", + "cover_index": "coverIndex", + "cover_page_text": "coverPageText", + } +) +class FaxResponse(BaseModel): + """FaxResponse + + :param id_: Internal identifier of a message, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message, defaults to None + :type uri: str, optional + :param type_: Message type - 'Fax', defaults to None + :type type_: FaxResponseType, optional + :param from_: Sender information, defaults to None + :type from_: MessageStoreCallerInfoResponseFrom, optional + :param to: Recipient information, defaults to None + :type to: List[FaxResponseTo], optional + :param creation_time: Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type creation_time: str, optional + :param read_status: Message read status, defaults to None + :type read_status: MessageReadStatusEnum, optional + :param priority: Message priority, defaults to None + :type priority: MessagePriorityEnum, optional + :param attachments: List of message attachments, defaults to None + :type attachments: List[MessageAttachmentInfoIntId], optional + :param direction: Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound , defaults to None + :type direction: MessageDirectionEnum, optional + :param availability: Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly , defaults to None + :type availability: MessageAvailabilityEnum, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param fax_resolution: Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi , defaults to None + :type fax_resolution: FaxResolutionEnum, optional + :param fax_page_count: Page count in a fax message, defaults to None + :type fax_page_count: int, optional + :param last_modified_time: Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type last_modified_time: str, optional + :param cover_index: Cover page identifier. If `coverIndex` is set to '0' (zero), a cover page is not attached. For a list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') , defaults to None + :type cover_index: int, optional + :param cover_page_text: Cover page text, entered by a fax sender and printed on a cover page. Maximum length is limited to 1024 symbols , defaults to None + :type cover_page_text: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + type_: FaxResponseType = None, + from_: MessageStoreCallerInfoResponseFrom = None, + to: List[FaxResponseTo] = None, + creation_time: str = None, + read_status: MessageReadStatusEnum = None, + priority: MessagePriorityEnum = None, + attachments: List[MessageAttachmentInfoIntId] = None, + direction: MessageDirectionEnum = None, + availability: MessageAvailabilityEnum = None, + message_status: MessageStatusEnum = None, + fax_resolution: FaxResolutionEnum = None, + fax_page_count: int = None, + last_modified_time: str = None, + cover_index: int = None, + cover_page_text: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if type_ is not None: + self.type_ = self._enum_matching(type_, FaxResponseType.list(), "type_") + if from_ is not None: + self.from_ = self._define_object(from_, MessageStoreCallerInfoResponseFrom) + if to is not None: + self.to = self._define_list(to, FaxResponseTo) + if creation_time is not None: + self.creation_time = creation_time + if read_status is not None: + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) + if priority is not None: + self.priority = self._enum_matching( + priority, MessagePriorityEnum.list(), "priority" + ) + if attachments is not None: + self.attachments = self._define_list( + attachments, MessageAttachmentInfoIntId + ) + if direction is not None: + self.direction = self._enum_matching( + direction, MessageDirectionEnum.list(), "direction" + ) + if availability is not None: + self.availability = self._enum_matching( + availability, MessageAvailabilityEnum.list(), "availability" + ) + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if fax_resolution is not None: + self.fax_resolution = self._enum_matching( + fax_resolution, FaxResolutionEnum.list(), "fax_resolution" + ) + if fax_page_count is not None: + self.fax_page_count = fax_page_count + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if cover_index is not None: + self.cover_index = cover_index + if cover_page_text is not None: + self.cover_page_text = cover_page_text diff --git a/src/ring_central/models/fax_response_to.py b/src/ring_central/models/fax_response_to.py new file mode 100644 index 00000000..b1697b29 --- /dev/null +++ b/src/ring_central/models/fax_response_to.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_status_enum import MessageStatusEnum + + +@JsonMap( + { + "recipient_id": "recipientId", + "phone_number": "phoneNumber", + "message_status": "messageStatus", + } +) +class FaxResponseTo(BaseModel): + """FaxResponseTo + + :param recipient_id: Internal identifier of a fax recipient, defaults to None + :type recipient_id: str, optional + :param phone_number: Phone number in E.164 (with '+' sign) format, defaults to None + :type phone_number: str, optional + :param name: Name of a fax recipient listed on a fax cover page, defaults to None + :type name: str, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param location: Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) , defaults to None + :type location: str, optional + """ + + def __init__( + self, + recipient_id: str = None, + phone_number: str = None, + name: str = None, + message_status: MessageStatusEnum = None, + location: str = None, + ): + if recipient_id is not None: + self.recipient_id = recipient_id + if phone_number is not None: + self.phone_number = phone_number + if name is not None: + self.name = name + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if location is not None: + self.location = location diff --git a/src/ring_central/models/feature_info.py b/src/ring_central/models/feature_info.py new file mode 100644 index 00000000..d0b13786 --- /dev/null +++ b/src/ring_central/models/feature_info.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .params_info import ParamsInfo +from .reason_info import ReasonInfo + + +@JsonMap({"id_": "id"}) +class FeatureInfo(BaseModel): + """FeatureInfo + + :param id_: Internal identifier of a feature, defaults to None + :type id_: str, optional + :param available: Specifies if the feature is available for the current user according to services enabled for the account, type, entitlements and permissions of the extension. If the authorized user gets features of the other extension, only features that can be delegated are returned (such as configuration by administrators). , defaults to None + :type available: bool, optional + :param params: params, defaults to None + :type params: List[ParamsInfo], optional + :param reason: Reason for the feature unavailability. Returned only if `available` is set to `false` , defaults to None + :type reason: ReasonInfo, optional + """ + + def __init__( + self, + id_: str = None, + available: bool = None, + params: List[ParamsInfo] = None, + reason: ReasonInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if available is not None: + self.available = available + if params is not None: + self.params = self._define_list(params, ParamsInfo) + if reason is not None: + self.reason = self._define_object(reason, ReasonInfo) diff --git a/src/ring_central/models/feature_list.py b/src/ring_central/models/feature_list.py new file mode 100644 index 00000000..cd97a8f4 --- /dev/null +++ b/src/ring_central/models/feature_list.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .feature_info import FeatureInfo + + +@JsonMap({}) +class FeatureList(BaseModel): + """FeatureList + + :param records: records, defaults to None + :type records: List[FeatureInfo], optional + """ + + def __init__(self, records: List[FeatureInfo] = None): + if records is not None: + self.records = self._define_list(records, FeatureInfo) diff --git a/src/ring_central/models/federated_account_resource.py b/src/ring_central/models/federated_account_resource.py new file mode 100644 index 00000000..81117a41 --- /dev/null +++ b/src/ring_central/models/federated_account_resource.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_resource import PhoneNumberResource + + +@JsonMap( + { + "company_name": "companyName", + "conflict_count": "conflictCount", + "federated_name": "federatedName", + "id_": "id", + "link_creation_time": "linkCreationTime", + "main_number": "mainNumber", + } +) +class FederatedAccountResource(BaseModel): + """FederatedAccountResource + + :param company_name: company_name, defaults to None + :type company_name: str, optional + :param conflict_count: conflict_count, defaults to None + :type conflict_count: int, optional + :param federated_name: federated_name, defaults to None + :type federated_name: str, optional + :param id_: id_ + :type id_: str + :param link_creation_time: link_creation_time, defaults to None + :type link_creation_time: str, optional + :param main_number: main_number, defaults to None + :type main_number: PhoneNumberResource, optional + """ + + def __init__( + self, + id_: str, + company_name: str = None, + conflict_count: int = None, + federated_name: str = None, + link_creation_time: str = None, + main_number: PhoneNumberResource = None, + ): + if company_name is not None: + self.company_name = company_name + if conflict_count is not None: + self.conflict_count = conflict_count + if federated_name is not None: + self.federated_name = federated_name + self.id_ = id_ + if link_creation_time is not None: + self.link_creation_time = link_creation_time + if main_number is not None: + self.main_number = self._define_object(main_number, PhoneNumberResource) diff --git a/src/ring_central/models/federation_resource.py b/src/ring_central/models/federation_resource.py new file mode 100644 index 00000000..a379cb17 --- /dev/null +++ b/src/ring_central/models/federation_resource.py @@ -0,0 +1,57 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .federated_account_resource import FederatedAccountResource +from .federation_type import FederationType + + +@JsonMap( + { + "creation_time": "creationTime", + "display_name": "displayName", + "id_": "id", + "last_modified_time": "lastModifiedTime", + "type_": "type", + } +) +class FederationResource(BaseModel): + """FederationResource + + :param accounts: accounts, defaults to None + :type accounts: List[FederatedAccountResource], optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param last_modified_time: last_modified_time, defaults to None + :type last_modified_time: str, optional + :param type_: Federation type, defaults to None + :type type_: FederationType, optional + """ + + def __init__( + self, + accounts: List[FederatedAccountResource] = None, + creation_time: str = None, + display_name: str = None, + id_: str = None, + last_modified_time: str = None, + type_: FederationType = None, + ): + if accounts is not None: + self.accounts = self._define_list(accounts, FederatedAccountResource) + if creation_time is not None: + self.creation_time = creation_time + if display_name is not None: + self.display_name = display_name + if id_ is not None: + self.id_ = id_ + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if type_ is not None: + self.type_ = self._enum_matching(type_, FederationType.list(), "type_") diff --git a/src/ring_central/models/federation_type.py b/src/ring_central/models/federation_type.py new file mode 100644 index 00000000..409e5a5d --- /dev/null +++ b/src/ring_central/models/federation_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class FederationType(Enum): + """An enumeration representing different categories. + + :cvar REGULAR: "Regular" + :vartype REGULAR: str + :cvar ADMINONLY: "AdminOnly" + :vartype ADMINONLY: str + """ + + REGULAR = "Regular" + ADMINONLY = "AdminOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FederationType._member_map_.values())) diff --git a/src/ring_central/models/federation_types.py b/src/ring_central/models/federation_types.py new file mode 100644 index 00000000..b7ced794 --- /dev/null +++ b/src/ring_central/models/federation_types.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class FederationTypes(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar REGULAR: "Regular" + :vartype REGULAR: str + :cvar ADMINONLY: "AdminOnly" + :vartype ADMINONLY: str + """ + + ALL = "All" + REGULAR = "Regular" + ADMINONLY = "AdminOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FederationTypes._member_map_.values())) diff --git a/src/ring_central/models/fixed_answer_model.py b/src/ring_central/models/fixed_answer_model.py new file mode 100644 index 00000000..bcc0ed24 --- /dev/null +++ b/src/ring_central/models/fixed_answer_model.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"question_id": "questionId", "answer_ids": "answerIds"}) +class FixedAnswerModel(BaseModel): + """FixedAnswerModel + + :param question_id: ID of the custom question + :type question_id: str + :param answer_ids: The list of answer IDs + :type answer_ids: List[str] + """ + + def __init__(self, question_id: str, answer_ids: List[str]): + self.question_id = question_id + self.answer_ids = answer_ids diff --git a/src/ring_central/models/fixed_order_agents.py b/src/ring_central/models/fixed_order_agents.py new file mode 100644 index 00000000..1069a487 --- /dev/null +++ b/src/ring_central/models/fixed_order_agents.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .fixed_order_agents_extension_info import FixedOrderAgentsExtensionInfo + + +@JsonMap({}) +class FixedOrderAgents(BaseModel): + """FixedOrderAgents + + :param extension: extension, defaults to None + :type extension: FixedOrderAgentsExtensionInfo, optional + :param index: Ordinal of an agent (call queue member), defaults to None + :type index: int, optional + """ + + def __init__( + self, extension: FixedOrderAgentsExtensionInfo = None, index: int = None + ): + if extension is not None: + self.extension = self._define_object( + extension, FixedOrderAgentsExtensionInfo + ) + if index is not None: + self.index = index diff --git a/src/ring_central/models/fixed_order_agents_extension_info.py b/src/ring_central/models/fixed_order_agents_extension_info.py new file mode 100644 index 00000000..f2995f5b --- /dev/null +++ b/src/ring_central/models/fixed_order_agents_extension_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class FixedOrderAgentsExtensionInfo(BaseModel): + """FixedOrderAgentsExtensionInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Number of extension, defaults to None + :type extension_number: str, optional + :param name: Name of agent extension, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/formatting_locale_info.py b/src/ring_central/models/formatting_locale_info.py new file mode 100644 index 00000000..edebd645 --- /dev/null +++ b/src/ring_central/models/formatting_locale_info.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class FormattingLocaleInfo(BaseModel): + """Formatting language preferences for numbers, dates and currencies + + + :param id_: Internal identifier of a formatting language, defaults to None + :type id_: str, optional + :param locale_code: Localization code of a formatting language, defaults to None + :type locale_code: str, optional + :param name: Official name of a formatting language, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, locale_code: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if locale_code is not None: + self.locale_code = locale_code + if name is not None: + self.name = name diff --git a/src/ring_central/models/forward_all_calls_reason.py b/src/ring_central/models/forward_all_calls_reason.py new file mode 100644 index 00000000..360ced0d --- /dev/null +++ b/src/ring_central/models/forward_all_calls_reason.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ForwardAllCallsReasonCode(Enum): + """An enumeration representing different categories. + + :cvar EXTENSIONLIMITATION: "ExtensionLimitation" + :vartype EXTENSIONLIMITATION: str + :cvar FEATURELIMITATION: "FeatureLimitation" + :vartype FEATURELIMITATION: str + """ + + EXTENSIONLIMITATION = "ExtensionLimitation" + FEATURELIMITATION = "FeatureLimitation" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ForwardAllCallsReasonCode._member_map_.values()) + ) + + +@JsonMap({}) +class ForwardAllCallsReason(BaseModel): + """ForwardAllCallsReason + + :param code: Specifies the type of limitation. `ExtensionLimitation` means that the feature is turned off for this particular extension. `FeatureLimitation` means that the user may enable this feature and setup the rule via the Service Web UI , defaults to None + :type code: ForwardAllCallsReasonCode, optional + :param message: Error message depending on the type of limitation, defaults to None + :type message: str, optional + """ + + def __init__(self, code: ForwardAllCallsReasonCode = None, message: str = None): + if code is not None: + self.code = self._enum_matching( + code, ForwardAllCallsReasonCode.list(), "code" + ) + if message is not None: + self.message = message diff --git a/src/ring_central/models/forward_all_company_calls_info.py b/src/ring_central/models/forward_all_company_calls_info.py new file mode 100644 index 00000000..6bee243c --- /dev/null +++ b/src/ring_central/models/forward_all_company_calls_info.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .ranges_info import RangesInfo +from .ivr_call_handling_action_enum import IvrCallHandlingActionEnum +from .extension_short_info_resource import ExtensionShortInfoResource +from .forward_all_calls_reason import ForwardAllCallsReason + + +@JsonMap({"call_handling_action": "callHandlingAction"}) +class ForwardAllCompanyCallsInfo(BaseModel): + """ForwardAllCompanyCallsInfo + + :param enabled: Indicates whether the *Forward All Company Calls* feature is enabled or disabled for an account, defaults to None + :type enabled: bool, optional + :param ranges: Specific data ranges. If specified, weeklyRanges cannot be specified, defaults to None + :type ranges: List[RangesInfo], optional + :param call_handling_action: Specifies how incoming calls are forwarded. The default value is 'Operator' 'Operator' - play company greeting and forward to operator extension 'Disconnect' - play company greeting and disconnect 'Bypass' - bypass greeting to go to selected extension = ['Operator', 'Disconnect', 'Bypass'] , defaults to None + :type call_handling_action: IvrCallHandlingActionEnum, optional + :param extension: extension, defaults to None + :type extension: ExtensionShortInfoResource, optional + :param reason: reason, defaults to None + :type reason: ForwardAllCallsReason, optional + """ + + def __init__( + self, + enabled: bool = None, + ranges: List[RangesInfo] = None, + call_handling_action: IvrCallHandlingActionEnum = None, + extension: ExtensionShortInfoResource = None, + reason: ForwardAllCallsReason = None, + ): + if enabled is not None: + self.enabled = enabled + if ranges is not None: + self.ranges = self._define_list(ranges, RangesInfo) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + IvrCallHandlingActionEnum.list(), + "call_handling_action", + ) + if extension is not None: + self.extension = self._define_object(extension, ExtensionShortInfoResource) + if reason is not None: + self.reason = self._define_object(reason, ForwardAllCallsReason) diff --git a/src/ring_central/models/forward_all_company_calls_request.py b/src/ring_central/models/forward_all_company_calls_request.py new file mode 100644 index 00000000..8950d384 --- /dev/null +++ b/src/ring_central/models/forward_all_company_calls_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ForwardAllCompanyCallsRequest(BaseModel): + """ForwardAllCompanyCallsRequest + + :param enabled: Indicates whether the *Forward All Company Calls* feature is enabled or disabled for an account + :type enabled: bool + """ + + def __init__(self, enabled: bool): + self.enabled = enabled diff --git a/src/ring_central/models/forward_call_party_response.py b/src/ring_central/models/forward_call_party_response.py new file mode 100644 index 00000000..c0552d97 --- /dev/null +++ b/src/ring_central/models/forward_call_party_response.py @@ -0,0 +1,213 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_status_info import CallStatusInfo +from .park_info import ParkInfo +from .party_info import PartyInfo +from .owner_info import OwnerInfo +from .recording_info import RecordingInfo + + +class ForwardCallPartyResponseDirection(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardCallPartyResponseDirection._member_map_.values(), + ) + ) + + +class ForwardCallPartyResponseConferenceRole(Enum): + """An enumeration representing different categories. + + :cvar HOST: "Host" + :vartype HOST: str + :cvar PARTICIPANT: "Participant" + :vartype PARTICIPANT: str + """ + + HOST = "Host" + PARTICIPANT = "Participant" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardCallPartyResponseConferenceRole._member_map_.values(), + ) + ) + + +class ForwardCallPartyResponseRingOutRole(Enum): + """An enumeration representing different categories. + + :cvar INITIATOR: "Initiator" + :vartype INITIATOR: str + :cvar TARGET: "Target" + :vartype TARGET: str + """ + + INITIATOR = "Initiator" + TARGET = "Target" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardCallPartyResponseRingOutRole._member_map_.values(), + ) + ) + + +class ForwardCallPartyResponseRingMeRole(Enum): + """An enumeration representing different categories. + + :cvar INITIATOR: "Initiator" + :vartype INITIATOR: str + :cvar TARGET: "Target" + :vartype TARGET: str + """ + + INITIATOR = "Initiator" + TARGET = "Target" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardCallPartyResponseRingMeRole._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "stand_alone": "standAlone", + "from_": "from", + "conference_role": "conferenceRole", + "ring_out_role": "ringOutRole", + "ring_me_role": "ringMeRole", + } +) +class ForwardCallPartyResponse(BaseModel): + """Information on a party of a call session + + :param id_: Internal identifier of a party, defaults to None + :type id_: str, optional + :param status: Status data of a call session, defaults to None + :type status: CallStatusInfo, optional + :param muted: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces , defaults to None + :type muted: bool, optional + :param stand_alone: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session , defaults to None + :type stand_alone: bool, optional + :param park: Call park information, defaults to None + :type park: ParkInfo, optional + :param from_: from_, defaults to None + :type from_: PartyInfo, optional + :param to: to, defaults to None + :type to: PartyInfo, optional + :param owner: Deprecated. Information on a call owner, defaults to None + :type owner: OwnerInfo, optional + :param direction: Direction of a call, defaults to None + :type direction: ForwardCallPartyResponseDirection, optional + :param conference_role: A party's role in the conference scenarios. For calls of 'Conference' type only, defaults to None + :type conference_role: ForwardCallPartyResponseConferenceRole, optional + :param ring_out_role: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only, defaults to None + :type ring_out_role: ForwardCallPartyResponseRingOutRole, optional + :param ring_me_role: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only, defaults to None + :type ring_me_role: ForwardCallPartyResponseRingMeRole, optional + :param recordings: Active recordings list, defaults to None + :type recordings: List[RecordingInfo], optional + """ + + def __init__( + self, + id_: str = None, + status: CallStatusInfo = None, + muted: bool = None, + stand_alone: bool = None, + park: ParkInfo = None, + from_: PartyInfo = None, + to: PartyInfo = None, + owner: OwnerInfo = None, + direction: ForwardCallPartyResponseDirection = None, + conference_role: ForwardCallPartyResponseConferenceRole = None, + ring_out_role: ForwardCallPartyResponseRingOutRole = None, + ring_me_role: ForwardCallPartyResponseRingMeRole = None, + recordings: List[RecordingInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._define_object(status, CallStatusInfo) + if muted is not None: + self.muted = muted + if stand_alone is not None: + self.stand_alone = stand_alone + if park is not None: + self.park = self._define_object(park, ParkInfo) + if from_ is not None: + self.from_ = self._define_object(from_, PartyInfo) + if to is not None: + self.to = self._define_object(to, PartyInfo) + if owner is not None: + self.owner = self._define_object(owner, OwnerInfo) + if direction is not None: + self.direction = self._enum_matching( + direction, ForwardCallPartyResponseDirection.list(), "direction" + ) + if conference_role is not None: + self.conference_role = self._enum_matching( + conference_role, + ForwardCallPartyResponseConferenceRole.list(), + "conference_role", + ) + if ring_out_role is not None: + self.ring_out_role = self._enum_matching( + ring_out_role, + ForwardCallPartyResponseRingOutRole.list(), + "ring_out_role", + ) + if ring_me_role is not None: + self.ring_me_role = self._enum_matching( + ring_me_role, ForwardCallPartyResponseRingMeRole.list(), "ring_me_role" + ) + if recordings is not None: + self.recordings = self._define_list(recordings, RecordingInfo) diff --git a/src/ring_central/models/forward_target.py b/src/ring_central/models/forward_target.py new file mode 100644 index 00000000..8bad9cdf --- /dev/null +++ b/src/ring_central/models/forward_target.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber", "extension_number": "extensionNumber"}) +class ForwardTarget(BaseModel): + """Identifier of a call party the call will be forwarded to. Only **one of** these parameters: + `phoneNumber`, `voicemail` or `extensionNumber` must be specified, otherwise an error is returned. + + + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param voicemail: Voicemail owner extension identifier, defaults to None + :type voicemail: str, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + """ + + def __init__( + self, + phone_number: str = None, + voicemail: str = None, + extension_number: str = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if voicemail is not None: + self.voicemail = voicemail + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/forwarding_info.py b/src/ring_central/models/forwarding_info.py new file mode 100644 index 00000000..5194fa62 --- /dev/null +++ b/src/ring_central/models/forwarding_info.py @@ -0,0 +1,94 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_rule_info import ForwardingRuleInfo + + +class ForwardingInfoRingingMode(Enum): + """An enumeration representing different categories. + + :cvar SEQUENTIALLY: "Sequentially" + :vartype SEQUENTIALLY: str + :cvar SIMULTANEOUSLY: "Simultaneously" + :vartype SIMULTANEOUSLY: str + """ + + SEQUENTIALLY = "Sequentially" + SIMULTANEOUSLY = "Simultaneously" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ForwardingInfoRingingMode._member_map_.values()) + ) + + +@JsonMap( + { + "notify_my_soft_phones": "notifyMySoftPhones", + "notify_admin_soft_phones": "notifyAdminSoftPhones", + "soft_phones_ring_count": "softPhonesRingCount", + "soft_phones_always_ring": "softPhonesAlwaysRing", + "ringing_mode": "ringingMode", + "soft_phones_position_top": "softPhonesPositionTop", + "mobile_timeout": "mobileTimeout", + } +) +class ForwardingInfo(BaseModel): + """Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded + + :param notify_my_soft_phones: Specifies if the user's softphone(s) are notified before forwarding the incoming call to desk phones and forwarding numbers, defaults to None + :type notify_my_soft_phones: bool, optional + :param notify_admin_soft_phones: Deprecated parameter. Specifies if the administrator's softphone is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is `false`, defaults to None + :type notify_admin_soft_phones: bool, optional + :param soft_phones_ring_count: Number of rings before forwarding starts, defaults to None + :type soft_phones_ring_count: int, optional + :param soft_phones_always_ring: Specifies that desktop and mobile applications of the user will ring till the end of their forwarding list. If set to `true` then `softPhonesRingCount` is ignored, defaults to None + :type soft_phones_always_ring: bool, optional + :param ringing_mode: Specifies the order in which the forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ring all at the same time, defaults to None + :type ringing_mode: ForwardingInfoRingingMode, optional + :param rules: Information on a call forwarding rule, defaults to None + :type rules: List[ForwardingRuleInfo], optional + :param soft_phones_position_top: Specifies if desktop and mobile applications of the user are notified before (true) or after (false) forwarding the incoming call to desk phones and forwarding numbers. Applicable only if `notifyMySoftPhones` parameter is set to `true`, defaults to None + :type soft_phones_position_top: bool, optional + :param mobile_timeout: Deprecated parameter. Specifies if mobile timeout is activated for the rule, defaults to None + :type mobile_timeout: bool, optional + """ + + def __init__( + self, + notify_my_soft_phones: bool = None, + notify_admin_soft_phones: bool = None, + soft_phones_ring_count: int = None, + soft_phones_always_ring: bool = None, + ringing_mode: ForwardingInfoRingingMode = None, + rules: List[ForwardingRuleInfo] = None, + soft_phones_position_top: bool = None, + mobile_timeout: bool = None, + ): + if notify_my_soft_phones is not None: + self.notify_my_soft_phones = notify_my_soft_phones + if notify_admin_soft_phones is not None: + self.notify_admin_soft_phones = notify_admin_soft_phones + if soft_phones_ring_count is not None: + self.soft_phones_ring_count = soft_phones_ring_count + if soft_phones_always_ring is not None: + self.soft_phones_always_ring = soft_phones_always_ring + if ringing_mode is not None: + self.ringing_mode = self._enum_matching( + ringing_mode, ForwardingInfoRingingMode.list(), "ringing_mode" + ) + if rules is not None: + self.rules = self._define_list(rules, ForwardingRuleInfo) + if soft_phones_position_top is not None: + self.soft_phones_position_top = soft_phones_position_top + if mobile_timeout is not None: + self.mobile_timeout = mobile_timeout diff --git a/src/ring_central/models/forwarding_info_create_rule_request.py b/src/ring_central/models/forwarding_info_create_rule_request.py new file mode 100644 index 00000000..85b91471 --- /dev/null +++ b/src/ring_central/models/forwarding_info_create_rule_request.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_rule_create_request import ForwardingRuleCreateRequest + + +class ForwardingInfoCreateRuleRequestRingingMode(Enum): + """An enumeration representing different categories. + + :cvar SEQUENTIALLY: "Sequentially" + :vartype SEQUENTIALLY: str + :cvar SIMULTANEOUSLY: "Simultaneously" + :vartype SIMULTANEOUSLY: str + """ + + SEQUENTIALLY = "Sequentially" + SIMULTANEOUSLY = "Simultaneously" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardingInfoCreateRuleRequestRingingMode._member_map_.values(), + ) + ) + + +@JsonMap( + { + "notify_my_soft_phones": "notifyMySoftPhones", + "notify_admin_soft_phones": "notifyAdminSoftPhones", + "soft_phones_ring_count": "softPhonesRingCount", + "soft_phones_always_ring": "softPhonesAlwaysRing", + "ringing_mode": "ringingMode", + "mobile_timeout": "mobileTimeout", + } +) +class ForwardingInfoCreateRuleRequest(BaseModel): + """Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded + + :param notify_my_soft_phones: Specifies if the first ring on desktop/mobile apps is enabled. The default value is `true`, defaults to None + :type notify_my_soft_phones: bool, optional + :param notify_admin_soft_phones: Deprecated parameter. Specifies if the administrator's softphone (desktop application) is notified before forwarding the incoming call to desk phones and forwarding numbers. The default value is `true`., defaults to None + :type notify_admin_soft_phones: bool, optional + :param soft_phones_ring_count: Specifies delay between ring on apps and starting of a call forwarding. To activate this parameter use the value > 0, and turn off the `softPhonesAlwaysRing` setting. If the value is 1 or 0, the `softPhonesAlwaysRing` setting cannot be turned off, defaults to None + :type soft_phones_ring_count: int, optional + :param soft_phones_always_ring: Specifies that desktop and mobile applications of the user will ring till the end of their forwarding list. If set to `true` then `softPhonesRingCount` is ignored, defaults to None + :type soft_phones_always_ring: bool, optional + :param ringing_mode: Specifies the order in which forwarding numbers ring. 'Sequentially' means that forwarding numbers are ringing one at a time, in order of priority. 'Simultaneously' means that forwarding numbers are ringing all at the same time. The default value is 'Sequentially', defaults to None + :type ringing_mode: ForwardingInfoCreateRuleRequestRingingMode, optional + :param rules: Information on a call forwarding rule, defaults to None + :type rules: List[ForwardingRuleCreateRequest], optional + :param mobile_timeout: Deprecated parameter. Specifies if mobile timeout is activated for the rule, defaults to None + :type mobile_timeout: bool, optional + """ + + def __init__( + self, + notify_my_soft_phones: bool = None, + notify_admin_soft_phones: bool = None, + soft_phones_ring_count: int = None, + soft_phones_always_ring: bool = None, + ringing_mode: ForwardingInfoCreateRuleRequestRingingMode = None, + rules: List[ForwardingRuleCreateRequest] = None, + mobile_timeout: bool = None, + ): + if notify_my_soft_phones is not None: + self.notify_my_soft_phones = notify_my_soft_phones + if notify_admin_soft_phones is not None: + self.notify_admin_soft_phones = notify_admin_soft_phones + if soft_phones_ring_count is not None: + self.soft_phones_ring_count = soft_phones_ring_count + if soft_phones_always_ring is not None: + self.soft_phones_always_ring = soft_phones_always_ring + if ringing_mode is not None: + self.ringing_mode = self._enum_matching( + ringing_mode, + ForwardingInfoCreateRuleRequestRingingMode.list(), + "ringing_mode", + ) + if rules is not None: + self.rules = self._define_list(rules, ForwardingRuleCreateRequest) + if mobile_timeout is not None: + self.mobile_timeout = mobile_timeout diff --git a/src/ring_central/models/forwarding_number_id.py b/src/ring_central/models/forwarding_number_id.py new file mode 100644 index 00000000..67940bf8 --- /dev/null +++ b/src/ring_central/models/forwarding_number_id.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"forwarding_number_id": "forwardingNumberId"}) +class ForwardingNumberId(BaseModel): + """ForwardingNumberId + + :param forwarding_number_id: Forwarding number id, defaults to None + :type forwarding_number_id: str, optional + """ + + def __init__(self, forwarding_number_id: str = None): + if forwarding_number_id is not None: + self.forwarding_number_id = forwarding_number_id diff --git a/src/ring_central/models/forwarding_number_info.py b/src/ring_central/models/forwarding_number_info.py new file mode 100644 index 00000000..83d523fc --- /dev/null +++ b/src/ring_central/models/forwarding_number_info.py @@ -0,0 +1,163 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .create_forwarding_number_device_info import CreateForwardingNumberDeviceInfo + + +class ForwardingNumberInfoFeatures(Enum): + """An enumeration representing different categories. + + :cvar CALLFLIP: "CallFlip" + :vartype CALLFLIP: str + :cvar CALLFORWARDING: "CallForwarding" + :vartype CALLFORWARDING: str + """ + + CALLFLIP = "CallFlip" + CALLFORWARDING = "CallForwarding" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ForwardingNumberInfoFeatures._member_map_.values()) + ) + + +class ForwardingNumberInfoType(Enum): + """An enumeration representing different categories. + + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar OUTAGE: "Outage" + :vartype OUTAGE: str + :cvar OTHER: "Other" + :vartype OTHER: str + :cvar BUSINESSMOBILEPHONE: "BusinessMobilePhone" + :vartype BUSINESSMOBILEPHONE: str + :cvar EXTERNALCARRIER: "ExternalCarrier" + :vartype EXTERNALCARRIER: str + :cvar EXTENSIONAPPS: "ExtensionApps" + :vartype EXTENSIONAPPS: str + """ + + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + PHONELINE = "PhoneLine" + OUTAGE = "Outage" + OTHER = "Other" + BUSINESSMOBILEPHONE = "BusinessMobilePhone" + EXTERNALCARRIER = "ExternalCarrier" + EXTENSIONAPPS = "ExtensionApps" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ForwardingNumberInfoType._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class ForwardingNumberInfoExtension(BaseModel): + """Extension information. Returned only if extension type is 'ExtensionApps' + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param extension_number: Number of an extension, defaults to None + :type extension_number: str, optional + :param name: Extension name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, extension_number: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + + +@JsonMap( + { + "id_": "id", + "phone_number": "phoneNumber", + "flip_number": "flipNumber", + "type_": "type", + } +) +class ForwardingNumberInfo(BaseModel): + """ForwardingNumberInfo + + :param id_: Internal identifier of a forwarding/call flip phone number, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a forwarding/call flip phone number, defaults to None + :type uri: str, optional + :param phone_number: Forwarding/Call flip phone number, defaults to None + :type phone_number: str, optional + :param label: Forwarding/Call flip number title, defaults to None + :type label: str, optional + :param features: Type of option this phone number is used for. Multiple values are accepted, defaults to None + :type features: List[ForwardingNumberInfoFeatures], optional + :param flip_number: Number assigned to the call flip phone number, corresponds to the shortcut dial number, defaults to None + :type flip_number: str, optional + :param device: Forwarding device information. Applicable for 'PhoneLine' type only. Cannot be specified together with 'phoneNumber' parameter , defaults to None + :type device: CreateForwardingNumberDeviceInfo, optional + :param type_: Forwarding phone number type, defaults to None + :type type_: ForwardingNumberInfoType, optional + :param extension: Extension information. Returned only if extension type is 'ExtensionApps', defaults to None + :type extension: ForwardingNumberInfoExtension, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + phone_number: str = None, + label: str = None, + features: List[ForwardingNumberInfoFeatures] = None, + flip_number: str = None, + device: CreateForwardingNumberDeviceInfo = None, + type_: ForwardingNumberInfoType = None, + extension: ForwardingNumberInfoExtension = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if features is not None: + self.features = self._define_list(features, ForwardingNumberInfoFeatures) + if flip_number is not None: + self.flip_number = flip_number + if device is not None: + self.device = self._define_object(device, CreateForwardingNumberDeviceInfo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ForwardingNumberInfoType.list(), "type_" + ) + if extension is not None: + self.extension = self._define_object( + extension, ForwardingNumberInfoExtension + ) diff --git a/src/ring_central/models/forwarding_number_info_rules_create_rule_request.py b/src/ring_central/models/forwarding_number_info_rules_create_rule_request.py new file mode 100644 index 00000000..41185c6a --- /dev/null +++ b/src/ring_central/models/forwarding_number_info_rules_create_rule_request.py @@ -0,0 +1,85 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ForwardingNumberInfoRulesCreateRuleRequestType(Enum): + """An enumeration representing different categories. + + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar OUTAGE: "Outage" + :vartype OUTAGE: str + :cvar OTHER: "Other" + :vartype OTHER: str + :cvar BUSINESSMOBILEPHONE: "BusinessMobilePhone" + :vartype BUSINESSMOBILEPHONE: str + :cvar EXTERNALCARRIER: "ExternalCarrier" + :vartype EXTERNALCARRIER: str + :cvar EXTENSIONAPPS: "ExtensionApps" + :vartype EXTENSIONAPPS: str + """ + + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + PHONELINE = "PhoneLine" + OUTAGE = "Outage" + OTHER = "Other" + BUSINESSMOBILEPHONE = "BusinessMobilePhone" + EXTERNALCARRIER = "ExternalCarrier" + EXTENSIONAPPS = "ExtensionApps" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardingNumberInfoRulesCreateRuleRequestType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "type_": "type", "phone_number": "phoneNumber"}) +class ForwardingNumberInfoRulesCreateRuleRequest(BaseModel): + """ForwardingNumberInfoRulesCreateRuleRequest + + :param id_: Internal identifier of a forwarding number, defaults to None + :type id_: str, optional + :param type_: Forwarding phone number type, defaults to None + :type type_: ForwardingNumberInfoRulesCreateRuleRequestType, optional + :param phone_number: Forwarding/Call flip phone number, defaults to None + :type phone_number: str, optional + :param label: Forwarding/Call flip number title, defaults to None + :type label: str, optional + """ + + def __init__( + self, + id_: str = None, + type_: ForwardingNumberInfoRulesCreateRuleRequestType = None, + phone_number: str = None, + label: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, ForwardingNumberInfoRulesCreateRuleRequestType.list(), "type_" + ) + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label diff --git a/src/ring_central/models/forwarding_number_resource.py b/src/ring_central/models/forwarding_number_resource.py new file mode 100644 index 00000000..27b89142 --- /dev/null +++ b/src/ring_central/models/forwarding_number_resource.py @@ -0,0 +1,126 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ForwardingNumberResourceFeatures(Enum): + """An enumeration representing different categories. + + :cvar CALLFLIP: "CallFlip" + :vartype CALLFLIP: str + :cvar CALLFORWARDING: "CallForwarding" + :vartype CALLFORWARDING: str + """ + + CALLFLIP = "CallFlip" + CALLFORWARDING = "CallForwarding" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ForwardingNumberResourceFeatures._member_map_.values(), + ) + ) + + +class ForwardingNumberResourceType(Enum): + """An enumeration representing different categories. + + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar OUTAGE: "Outage" + :vartype OUTAGE: str + :cvar OTHER: "Other" + :vartype OTHER: str + """ + + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + PHONELINE = "PhoneLine" + OUTAGE = "Outage" + OTHER = "Other" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ForwardingNumberResourceType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "phone_number": "phoneNumber", + "flip_number": "flipNumber", + "type_": "type", + } +) +class ForwardingNumberResource(BaseModel): + """ForwardingNumberResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param phone_number: phone_number, defaults to None + :type phone_number: str, optional + :param label: label, defaults to None + :type label: str, optional + :param features: features, defaults to None + :type features: List[ForwardingNumberResourceFeatures], optional + :param flip_number: flip_number, defaults to None + :type flip_number: str, optional + :param type_: Forwarding phone number type, defaults to None + :type type_: ForwardingNumberResourceType, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + phone_number: str = None, + label: str = None, + features: List[ForwardingNumberResourceFeatures] = None, + flip_number: str = None, + type_: ForwardingNumberResourceType = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if features is not None: + self.features = self._define_list( + features, ForwardingNumberResourceFeatures + ) + if flip_number is not None: + self.flip_number = self._pattern_matching( + flip_number, "[1-8]", "flip_number" + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, ForwardingNumberResourceType.list(), "type_" + ) diff --git a/src/ring_central/models/forwarding_rule_create_request.py b/src/ring_central/models/forwarding_rule_create_request.py new file mode 100644 index 00000000..c4d7bd6f --- /dev/null +++ b/src/ring_central/models/forwarding_rule_create_request.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_number_info_rules_create_rule_request import ( + ForwardingNumberInfoRulesCreateRuleRequest, +) + + +@JsonMap({"ring_count": "ringCount", "forwarding_numbers": "forwardingNumbers"}) +class ForwardingRuleCreateRequest(BaseModel): + """ForwardingRuleCreateRequest + + :param index: Forwarding number (or group) ordinal. Not returned for inactive numbers, defaults to None + :type index: int, optional + :param ring_count: Number of rings for a forwarding number (or group). For inactive numbers the default value ('4') is returned , defaults to None + :type ring_count: int, optional + :param enabled: Phone number status, defaults to None + :type enabled: bool, optional + :param forwarding_numbers: Forwarding number (or group) data, defaults to None + :type forwarding_numbers: List[ForwardingNumberInfoRulesCreateRuleRequest], optional + """ + + def __init__( + self, + index: int = None, + ring_count: int = None, + enabled: bool = None, + forwarding_numbers: List[ForwardingNumberInfoRulesCreateRuleRequest] = None, + ): + if index is not None: + self.index = index + if ring_count is not None: + self.ring_count = ring_count + if enabled is not None: + self.enabled = enabled + if forwarding_numbers is not None: + self.forwarding_numbers = self._define_list( + forwarding_numbers, ForwardingNumberInfoRulesCreateRuleRequest + ) diff --git a/src/ring_central/models/forwarding_rule_info.py b/src/ring_central/models/forwarding_rule_info.py new file mode 100644 index 00000000..131e6129 --- /dev/null +++ b/src/ring_central/models/forwarding_rule_info.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .create_answering_rule_forwarding_number_info import ( + CreateAnsweringRuleForwardingNumberInfo, +) + + +@JsonMap({"ring_count": "ringCount", "forwarding_numbers": "forwardingNumbers"}) +class ForwardingRuleInfo(BaseModel): + """ForwardingRuleInfo + + :param index: Forwarding number (or group) ordinal, defaults to None + :type index: int, optional + :param ring_count: Number of rings for a forwarding number (or group), defaults to None + :type ring_count: int, optional + :param enabled: Forwarding number status. Returned only if `showInactiveNumbers` is set to `true`, defaults to None + :type enabled: bool, optional + :param forwarding_numbers: Forwarding number (or group) data, defaults to None + :type forwarding_numbers: List[CreateAnsweringRuleForwardingNumberInfo], optional + """ + + def __init__( + self, + index: int = None, + ring_count: int = None, + enabled: bool = None, + forwarding_numbers: List[CreateAnsweringRuleForwardingNumberInfo] = None, + ): + if index is not None: + self.index = index + if ring_count is not None: + self.ring_count = ring_count + if enabled is not None: + self.enabled = enabled + if forwarding_numbers is not None: + self.forwarding_numbers = self._define_list( + forwarding_numbers, CreateAnsweringRuleForwardingNumberInfo + ) diff --git a/src/ring_central/models/get_account_info_response.py b/src/ring_central/models/get_account_info_response.py new file mode 100644 index 00000000..cabca471 --- /dev/null +++ b/src/ring_central/models/get_account_info_response.py @@ -0,0 +1,151 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .account_operator_info import AccountOperatorInfo +from .service_info import ServiceInfo +from .setup_wizard_state_enum import SetupWizardStateEnum +from .signup_info_resource import SignupInfoResource +from .account_status_info import AccountStatusInfo +from .account_regional_settings import AccountRegionalSettings +from .account_limits import AccountLimits + + +class GetAccountInfoResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar INITIAL: "Initial" + :vartype INITIAL: str + :cvar CONFIRMED: "Confirmed" + :vartype CONFIRMED: str + :cvar UNCONFIRMED: "Unconfirmed" + :vartype UNCONFIRMED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + """ + + INITIAL = "Initial" + CONFIRMED = "Confirmed" + UNCONFIRMED = "Unconfirmed" + DISABLED = "Disabled" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetAccountInfoResponseStatus._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "main_number": "mainNumber", + "partner_id": "partnerId", + "service_info": "serviceInfo", + "setup_wizard_state": "setupWizardState", + "signup_info": "signupInfo", + "status_info": "statusInfo", + "regional_settings": "regionalSettings", + "outbound_call_prefix": "outboundCallPrefix", + } +) +class GetAccountInfoResponse(BaseModel): + """GetAccountInfoResponse + + :param id_: Internal identifier of an account, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an account, defaults to None + :type uri: str, optional + :param bsid: Internal identifier of an account in the billing system , defaults to None + :type bsid: str, optional + :param main_number: Main phone number of the current account , defaults to None + :type main_number: str, optional + :param operator: Operator extension information. This extension will receive all calls and messages addressed to an operator. , defaults to None + :type operator: AccountOperatorInfo, optional + :param partner_id: Additional account identifier, created by partner application and applied on client side , defaults to None + :type partner_id: str, optional + :param service_info: Account service information, including brand, sub-brand, service plan and billing plan , defaults to None + :type service_info: ServiceInfo, optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateEnum, optional + :param signup_info: Account sign up data, defaults to None + :type signup_info: SignupInfoResource, optional + :param status: Status of the current account, defaults to None + :type status: GetAccountInfoResponseStatus, optional + :param status_info: Optional information to be used when account is moved to "Disabled" status, defaults to None + :type status_info: AccountStatusInfo, optional + :param regional_settings: Account level region data (web service Auto-Receptionist settings) , defaults to None + :type regional_settings: AccountRegionalSettings, optional + :param federated: Specifies whether an account is included into any federation of accounts or not , defaults to None + :type federated: bool, optional + :param outbound_call_prefix: If outbound call prefix is not specified, or set to null (0), then the parameter is not returned; the supported value range is 2-9 , defaults to None + :type outbound_call_prefix: int, optional + :param cfid: Customer facing identifier. Returned for accounts with the turned off PBX features. Equals to main company number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (without "+" sign)format , defaults to None + :type cfid: str, optional + :param limits: Limits which are effective for the account, defaults to None + :type limits: AccountLimits, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + bsid: str = None, + main_number: str = None, + operator: AccountOperatorInfo = None, + partner_id: str = None, + service_info: ServiceInfo = None, + setup_wizard_state: SetupWizardStateEnum = None, + signup_info: SignupInfoResource = None, + status: GetAccountInfoResponseStatus = None, + status_info: AccountStatusInfo = None, + regional_settings: AccountRegionalSettings = None, + federated: bool = None, + outbound_call_prefix: int = None, + cfid: str = None, + limits: AccountLimits = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if bsid is not None: + self.bsid = bsid + if main_number is not None: + self.main_number = main_number + if operator is not None: + self.operator = self._define_object(operator, AccountOperatorInfo) + if partner_id is not None: + self.partner_id = partner_id + if service_info is not None: + self.service_info = self._define_object(service_info, ServiceInfo) + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, SetupWizardStateEnum.list(), "setup_wizard_state" + ) + if signup_info is not None: + self.signup_info = self._define_object(signup_info, SignupInfoResource) + if status is not None: + self.status = self._enum_matching( + status, GetAccountInfoResponseStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, AccountStatusInfo) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, AccountRegionalSettings + ) + if federated is not None: + self.federated = federated + if outbound_call_prefix is not None: + self.outbound_call_prefix = outbound_call_prefix + if cfid is not None: + self.cfid = cfid + if limits is not None: + self.limits = self._define_object(limits, AccountLimits) diff --git a/src/ring_central/models/get_bulk_add_task_results_v2_ok_response.py b/src/ring_central/models/get_bulk_add_task_results_v2_ok_response.py new file mode 100644 index 00000000..1024ec27 --- /dev/null +++ b/src/ring_central/models/get_bulk_add_task_results_v2_ok_response.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .add_phone_numbers_response import AddPhoneNumbersResponse +from .add_phone_numbers_task import AddPhoneNumbersTask + + +class GetBulkAddTaskResultsV2OkResponseGuard(OneOfBaseModel): + class_list = { + "AddPhoneNumbersResponse": AddPhoneNumbersResponse, + "AddPhoneNumbersTask": AddPhoneNumbersTask, + } + + +GetBulkAddTaskResultsV2OkResponse = Union[AddPhoneNumbersResponse, AddPhoneNumbersTask] diff --git a/src/ring_central/models/get_call_recording_response.py b/src/ring_central/models/get_call_recording_response.py new file mode 100644 index 00000000..76f7e719 --- /dev/null +++ b/src/ring_central/models/get_call_recording_response.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "content_uri": "contentUri", "content_type": "contentType"}) +class GetCallRecordingResponse(BaseModel): + """GetCallRecordingResponse + + :param id_: Internal identifier of a call recording + :type id_: str + :param content_uri: Link to a call recording binary content. Has to be retrieved with proper authorization (access token must be passed via `Authorization` header or query parameter) + :type content_uri: str + :param content_type: Call recording file MIME format. Supported format is `audio/wav` and `audio/mpeg` + :type content_type: str + :param duration: Recorded call duration + :type duration: int + """ + + def __init__(self, id_: str, content_uri: str, content_type: str, duration: int): + self.id_ = id_ + self.content_uri = content_uri + self.content_type = content_type + self.duration = duration diff --git a/src/ring_central/models/get_conferencing_info_response.py b/src/ring_central/models/get_conferencing_info_response.py new file mode 100644 index 00000000..9eb875f3 --- /dev/null +++ b/src/ring_central/models/get_conferencing_info_response.py @@ -0,0 +1,75 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_info_conferencing import PhoneNumberInfoConferencing + + +@JsonMap( + { + "allow_join_before_host": "allowJoinBeforeHost", + "host_code": "hostCode", + "participant_code": "participantCode", + "phone_number": "phoneNumber", + "support_uri": "supportUri", + "tap_to_join_uri": "tapToJoinUri", + "phone_numbers": "phoneNumbers", + } +) +class GetConferencingInfoResponse(BaseModel): + """GetConferencingInfoResponse + + :param uri: Canonical URI of a conferencing, defaults to None + :type uri: str, optional + :param allow_join_before_host: Determines if host user allows conference participants to join before the host , defaults to None + :type allow_join_before_host: bool, optional + :param host_code: Access code for a host user, defaults to None + :type host_code: str, optional + :param mode: Internal parameter specifying a conferencing engine , defaults to None + :type mode: str, optional + :param participant_code: Access code for any participant, defaults to None + :type participant_code: str, optional + :param phone_number: Primary conference phone number for user's home country returned in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format , defaults to None + :type phone_number: str, optional + :param support_uri: Link to a branded support page, defaults to None + :type support_uri: str, optional + :param tap_to_join_uri: Short URL leading to the service web page Tap to Join for audio conference bridge , defaults to None + :type tap_to_join_uri: str, optional + :param phone_numbers: List of multiple dial-in phone numbers to connect to audio conference service, relevant for the user's brand. Each number is given with the country and location information, in order to let the user choose less expensive way to connect to a conference. The first number in the list is a primary conference number, that is default and domestic , defaults to None + :type phone_numbers: List[PhoneNumberInfoConferencing], optional + """ + + def __init__( + self, + uri: str = None, + allow_join_before_host: bool = None, + host_code: str = None, + mode: str = None, + participant_code: str = None, + phone_number: str = None, + support_uri: str = None, + tap_to_join_uri: str = None, + phone_numbers: List[PhoneNumberInfoConferencing] = None, + ): + if uri is not None: + self.uri = uri + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host + if host_code is not None: + self.host_code = host_code + if mode is not None: + self.mode = mode + if participant_code is not None: + self.participant_code = participant_code + if phone_number is not None: + self.phone_number = phone_number + if support_uri is not None: + self.support_uri = support_uri + if tap_to_join_uri is not None: + self.tap_to_join_uri = tap_to_join_uri + if phone_numbers is not None: + self.phone_numbers = self._define_list( + phone_numbers, PhoneNumberInfoConferencing + ) diff --git a/src/ring_central/models/get_country_info_number_parser.py b/src/ring_central/models/get_country_info_number_parser.py new file mode 100644 index 00000000..d233c334 --- /dev/null +++ b/src/ring_central/models/get_country_info_number_parser.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "calling_code": "callingCode", "iso_code": "isoCode"}) +class GetCountryInfoNumberParser(BaseModel): + """GetCountryInfoNumberParser + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + :param calling_code: Country calling code defined by ITU-T recommendations `E.123` and `E.164`, see Calling Codes , defaults to None + :type calling_code: str, optional + :param iso_code: Country code in `ISO 3166` alpha-2 format, defaults to None + :type iso_code: str, optional + :param name: The official name of the country., defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + calling_code: str = None, + iso_code: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if calling_code is not None: + self.calling_code = calling_code + if iso_code is not None: + self.iso_code = self._pattern_matching( + iso_code, "^[A-Za-z]{2}$", "iso_code" + ) + if name is not None: + self.name = name diff --git a/src/ring_central/models/get_extension_account_info.py b/src/ring_central/models/get_extension_account_info.py new file mode 100644 index 00000000..633100fa --- /dev/null +++ b/src/ring_central/models/get_extension_account_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class GetExtensionAccountInfo(BaseModel): + """Account information + + :param id_: Internal identifier of an account, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an account resource, defaults to None + :type uri: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/get_extension_devices_response.py b/src/ring_central/models/get_extension_devices_response.py new file mode 100644 index 00000000..7c0fa1eb --- /dev/null +++ b/src/ring_central/models/get_extension_devices_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_resource import DeviceResource +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetExtensionDevicesResponse(BaseModel): + """GetExtensionDevicesResponse + + :param uri: Link to a list of extension devices, defaults to None + :type uri: str, optional + :param records: List of extension devices + :type records: List[DeviceResource] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[DeviceResource], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, DeviceResource) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_extension_emergency_locations_order_by.py b/src/ring_central/models/get_extension_emergency_locations_order_by.py new file mode 100644 index 00000000..e2045dc6 --- /dev/null +++ b/src/ring_central/models/get_extension_emergency_locations_order_by.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class GetExtensionEmergencyLocationsOrderBy(Enum): + """An enumeration representing different categories. + + :cvar _NAME: "+name" + :vartype _NAME: str + :cvar _SITENAME: "+siteName" + :vartype _SITENAME: str + :cvar _ADDRESS: "+address" + :vartype _ADDRESS: str + :cvar _ADDRESSSTATUS: "+addressStatus" + :vartype _ADDRESSSTATUS: str + :cvar _USAGESTATUS: "+usageStatus" + :vartype _USAGESTATUS: str + :cvar _VISIBILITY: "+visibility" + :vartype _VISIBILITY: str + :cvar _NAME: "-name" + :vartype _NAME: str + :cvar _SITENAME: "-siteName" + :vartype _SITENAME: str + :cvar _ADDRESS: "-address" + :vartype _ADDRESS: str + :cvar _ADDRESSSTATUS: "-addressStatus" + :vartype _ADDRESSSTATUS: str + :cvar _USAGESTATUS: "-usageStatus" + :vartype _USAGESTATUS: str + :cvar _VISIBILITY: "-visibility" + :vartype _VISIBILITY: str + """ + + _NAME = "+name" + _SITENAME = "+siteName" + _ADDRESS = "+address" + _ADDRESSSTATUS = "+addressStatus" + _USAGESTATUS = "+usageStatus" + _VISIBILITY = "+visibility" + _NAME = "-name" + _SITENAME = "-siteName" + _ADDRESS = "-address" + _ADDRESSSTATUS = "-addressStatus" + _USAGESTATUS = "-usageStatus" + _VISIBILITY = "-visibility" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetExtensionEmergencyLocationsOrderBy._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/get_extension_forwarding_number_list_response.py b/src/ring_central/models/get_extension_forwarding_number_list_response.py new file mode 100644 index 00000000..83e280d0 --- /dev/null +++ b/src/ring_central/models/get_extension_forwarding_number_list_response.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_number_info import ForwardingNumberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetExtensionForwardingNumberListResponse(BaseModel): + """GetExtensionForwardingNumberListResponse + + :param uri: Link to the forwarding number list resource, defaults to None + :type uri: str, optional + :param records: List of forwarding phone numbers, defaults to None + :type records: List[ForwardingNumberInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[ForwardingNumberInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, ForwardingNumberInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_extension_grant_list_response.py b/src/ring_central/models/get_extension_grant_list_response.py new file mode 100644 index 00000000..f5a98d67 --- /dev/null +++ b/src/ring_central/models/get_extension_grant_list_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .grant_info import GrantInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetExtensionGrantListResponse(BaseModel): + """GetExtensionGrantListResponse + + :param uri: Link to the list of extension grants, defaults to None + :type uri: str, optional + :param records: List of extension grants with details + :type records: List[GrantInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[GrantInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, GrantInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_extension_info_response.py b/src/ring_central/models/get_extension_info_response.py new file mode 100644 index 00000000..75412e9a --- /dev/null +++ b/src/ring_central/models/get_extension_info_response.py @@ -0,0 +1,346 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_extension_account_info import GetExtensionAccountInfo +from .contact_info import ContactInfo +from .cost_center_info import CostCenterInfo +from .custom_field_info import CustomFieldInfo +from .department_info import DepartmentInfo +from .extension_permissions import ExtensionPermissions +from .profile_image_info import ProfileImageInfo +from .reference_info import ReferenceInfo +from .roles import Roles +from .regional_settings import RegionalSettings +from .extension_service_feature_info import ExtensionServiceFeatureInfo +from .setup_wizard_state_for_update_enum import SetupWizardStateForUpdateEnum +from .extension_status_info import ExtensionStatusInfo +from .call_queue_extension_info import CallQueueExtensionInfo +from .provisioning_site_info import ProvisioningSiteInfo +from .assigned_country_info import AssignedCountryInfo + + +class GetExtensionInfoResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + FROZEN = "Frozen" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetExtensionInfoResponseStatus._member_map_.values()) + ) + + +class GetExtensionInfoResponseType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar ROOMCONNECTOR: "RoomConnector" + :vartype ROOMCONNECTOR: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar SITE: "Site" + :vartype SITE: str + :cvar PROXYADMIN: "ProxyAdmin" + :vartype PROXYADMIN: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + """ + + USER = "User" + FAXUSER = "FaxUser" + FLEXIBLEUSER = "FlexibleUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + BOT = "Bot" + ROOM = "Room" + ROOMCONNECTOR = "RoomConnector" + LIMITED = "Limited" + SITE = "Site" + PROXYADMIN = "ProxyAdmin" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + GROUPCALLPICKUP = "GroupCallPickup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetExtensionInfoResponseType._member_map_.values()) + ) + + +class GetExtensionInfoResponseSubType(Enum): + """An enumeration representing different categories. + + :cvar VIDEOPRO: "VideoPro" + :vartype VIDEOPRO: str + :cvar VIDEOPROPLUS: "VideoProPlus" + :vartype VIDEOPROPLUS: str + :cvar DIGITALSIGNAGE: "DigitalSignage" + :vartype DIGITALSIGNAGE: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + VIDEOPRO = "VideoPro" + VIDEOPROPLUS = "VideoProPlus" + DIGITALSIGNAGE = "DigitalSignage" + UNKNOWN = "Unknown" + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, GetExtensionInfoResponseSubType._member_map_.values() + ) + ) + + +@JsonMap( + { + "id_": "id", + "cost_center": "costCenter", + "custom_fields": "customFields", + "extension_number": "extensionNumber", + "extension_numbers": "extensionNumbers", + "partner_id": "partnerId", + "profile_image": "profileImage", + "regional_settings": "regionalSettings", + "service_features": "serviceFeatures", + "setup_wizard_state": "setupWizardState", + "status_info": "statusInfo", + "type_": "type", + "sub_type": "subType", + "call_queue_info": "callQueueInfo", + "assigned_country": "assignedCountry", + } +) +class GetExtensionInfoResponse(BaseModel): + """GetExtensionInfoResponse + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param account: Account information, defaults to None + :type account: GetExtensionAccountInfo, optional + :param contact: Detailed contact information, defaults to None + :type contact: ContactInfo, optional + :param cost_center: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value, defaults to None + :type cost_center: CostCenterInfo, optional + :param custom_fields: custom_fields, defaults to None + :type custom_fields: List[CustomFieldInfo], optional + :param departments: Information on department extension(s), to which the requested extension belongs. Returned only for user extensions, members of department, requested by single extensionId. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type departments: List[DepartmentInfo], optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + :param extension_numbers: extension_numbers, defaults to None + :type extension_numbers: List[str], optional + :param name: Extension name. For user extension types the value is a combination of the specified first name and last name , defaults to None + :type name: str, optional + :param partner_id: For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + :param permissions: Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' , defaults to None + :type permissions: ExtensionPermissions, optional + :param profile_image: Information on profile image, defaults to None + :type profile_image: ProfileImageInfo, optional + :param references: List of non-RC internal identifiers assigned to an extension , defaults to None + :type references: List[ReferenceInfo], optional + :param roles: roles, defaults to None + :type roles: List[Roles], optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param service_features: Extension service features is returned in response only when the logged-in user requests their own extension info, see also Extension Service Features , defaults to None + :type service_features: List[ExtensionServiceFeatureInfo], optional + :param setup_wizard_state: Initial configuration wizard state, defaults to None + :type setup_wizard_state: SetupWizardStateForUpdateEnum, optional + :param status: Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned , defaults to None + :type status: GetExtensionInfoResponseStatus, optional + :param status_info: Status information (reason, comment). Returned for 'Disabled' status only , defaults to None + :type status_info: ExtensionStatusInfo, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: GetExtensionInfoResponseType, optional + :param sub_type: Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned , defaults to None + :type sub_type: GetExtensionInfoResponseSubType, optional + :param call_queue_info: For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type call_queue_info: CallQueueExtensionInfo, optional + :param hidden: Hides extension from showing in company directory. Supported for extensions of User type only , defaults to None + :type hidden: bool, optional + :param site: Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` , defaults to None + :type site: ProvisioningSiteInfo, optional + :param assigned_country: Information on a country assigned to an extension user. Returned for the User extension type only, defaults to None + :type assigned_country: AssignedCountryInfo, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + account: GetExtensionAccountInfo = None, + contact: ContactInfo = None, + cost_center: CostCenterInfo = None, + custom_fields: List[CustomFieldInfo] = None, + departments: List[DepartmentInfo] = None, + extension_number: str = None, + extension_numbers: List[str] = None, + name: str = None, + partner_id: str = None, + permissions: ExtensionPermissions = None, + profile_image: ProfileImageInfo = None, + references: List[ReferenceInfo] = None, + roles: List[Roles] = None, + regional_settings: RegionalSettings = None, + service_features: List[ExtensionServiceFeatureInfo] = None, + setup_wizard_state: SetupWizardStateForUpdateEnum = None, + status: GetExtensionInfoResponseStatus = None, + status_info: ExtensionStatusInfo = None, + type_: GetExtensionInfoResponseType = None, + sub_type: GetExtensionInfoResponseSubType = None, + call_queue_info: CallQueueExtensionInfo = None, + hidden: bool = None, + site: ProvisioningSiteInfo = None, + assigned_country: AssignedCountryInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if account is not None: + self.account = self._define_object(account, GetExtensionAccountInfo) + if contact is not None: + self.contact = self._define_object(contact, ContactInfo) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterInfo) + if custom_fields is not None: + self.custom_fields = self._define_list(custom_fields, CustomFieldInfo) + if departments is not None: + self.departments = self._define_list(departments, DepartmentInfo) + if extension_number is not None: + self.extension_number = extension_number + if extension_numbers is not None: + self.extension_numbers = extension_numbers + if name is not None: + self.name = name + if partner_id is not None: + self.partner_id = partner_id + if permissions is not None: + self.permissions = self._define_object(permissions, ExtensionPermissions) + if profile_image is not None: + self.profile_image = self._define_object(profile_image, ProfileImageInfo) + if references is not None: + self.references = self._define_list(references, ReferenceInfo) + if roles is not None: + self.roles = self._define_list(roles, Roles) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if service_features is not None: + self.service_features = self._define_list( + service_features, ExtensionServiceFeatureInfo + ) + if setup_wizard_state is not None: + self.setup_wizard_state = self._enum_matching( + setup_wizard_state, + SetupWizardStateForUpdateEnum.list(), + "setup_wizard_state", + ) + if status is not None: + self.status = self._enum_matching( + status, GetExtensionInfoResponseStatus.list(), "status" + ) + if status_info is not None: + self.status_info = self._define_object(status_info, ExtensionStatusInfo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, GetExtensionInfoResponseType.list(), "type_" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, GetExtensionInfoResponseSubType.list(), "sub_type" + ) + if call_queue_info is not None: + self.call_queue_info = self._define_object( + call_queue_info, CallQueueExtensionInfo + ) + if hidden is not None: + self.hidden = hidden + if site is not None: + self.site = self._define_object(site, ProvisioningSiteInfo) + if assigned_country is not None: + self.assigned_country = self._define_object( + assigned_country, AssignedCountryInfo + ) diff --git a/src/ring_central/models/get_extension_list_info_response.py b/src/ring_central/models/get_extension_list_info_response.py new file mode 100644 index 00000000..184a2ef1 --- /dev/null +++ b/src/ring_central/models/get_extension_list_info_response.py @@ -0,0 +1,270 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_info import ContactInfo +from .extension_permissions import ExtensionPermissions +from .profile_image_info import ProfileImageInfo +from .call_queue_extension_info import CallQueueExtensionInfo +from .provisioning_site_info import ProvisioningSiteInfo +from .assigned_country_info import AssignedCountryInfo +from .cost_center_info import CostCenterInfo + + +class GetExtensionListInfoResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar FROZEN: "Frozen" + :vartype FROZEN: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + FROZEN = "Frozen" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetExtensionListInfoResponseStatus._member_map_.values(), + ) + ) + + +class GetExtensionListInfoResponseType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar SITE: "Site" + :vartype SITE: str + :cvar PROXYADMIN: "ProxyAdmin" + :vartype PROXYADMIN: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + """ + + USER = "User" + FAXUSER = "FaxUser" + FLEXIBLEUSER = "FlexibleUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + BOT = "Bot" + ROOM = "Room" + LIMITED = "Limited" + SITE = "Site" + PROXYADMIN = "ProxyAdmin" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + GROUPCALLPICKUP = "GroupCallPickup" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetExtensionListInfoResponseType._member_map_.values(), + ) + ) + + +class GetExtensionListInfoResponseSubType(Enum): + """An enumeration representing different categories. + + :cvar VIDEOPRO: "VideoPro" + :vartype VIDEOPRO: str + :cvar VIDEOPROPLUS: "VideoProPlus" + :vartype VIDEOPROPLUS: str + :cvar DIGITALSIGNAGE: "DigitalSignage" + :vartype DIGITALSIGNAGE: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + VIDEOPRO = "VideoPro" + VIDEOPROPLUS = "VideoProPlus" + DIGITALSIGNAGE = "DigitalSignage" + UNKNOWN = "Unknown" + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetExtensionListInfoResponseSubType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "profile_image": "profileImage", + "type_": "type", + "sub_type": "subType", + "call_queue_info": "callQueueInfo", + "assigned_country": "assignedCountry", + "cost_center": "costCenter", + } +) +class GetExtensionListInfoResponse(BaseModel): + """GetExtensionListInfoResponse + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param contact: Detailed contact information, defaults to None + :type contact: ContactInfo, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + :param name: Extension name. For user extension types the value is a combination of the specified first name and last name , defaults to None + :type name: str, optional + :param permissions: Extension permissions, corresponding to the Service Web permissions 'Admin' and 'InternationalCalling' , defaults to None + :type permissions: ExtensionPermissions, optional + :param profile_image: Information on profile image, defaults to None + :type profile_image: ProfileImageInfo, optional + :param status: Extension current state. If 'Unassigned' is specified, then extensions without `extensionNumber` are returned. If not specified, then all extensions are returned , defaults to None + :type status: GetExtensionListInfoResponseStatus, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: GetExtensionListInfoResponseType, optional + :param sub_type: Extension subtype, if applicable. For any unsupported subtypes the `Unknown` value will be returned , defaults to None + :type sub_type: GetExtensionListInfoResponseSubType, optional + :param call_queue_info: For Call Queue extension type only. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type call_queue_info: CallQueueExtensionInfo, optional + :param hidden: Hides extension from showing in company directory. Supported for extensions of User type only , defaults to None + :type hidden: bool, optional + :param site: Site data. If multi-site feature is turned on for an account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) the site ID should be set to `main-site` , defaults to None + :type site: ProvisioningSiteInfo, optional + :param assigned_country: Information on a country assigned to an extension user. Returned for the User extension type only, defaults to None + :type assigned_country: AssignedCountryInfo, optional + :param cost_center: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value, defaults to None + :type cost_center: CostCenterInfo, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + contact: ContactInfo = None, + extension_number: str = None, + name: str = None, + permissions: ExtensionPermissions = None, + profile_image: ProfileImageInfo = None, + status: GetExtensionListInfoResponseStatus = None, + type_: GetExtensionListInfoResponseType = None, + sub_type: GetExtensionListInfoResponseSubType = None, + call_queue_info: CallQueueExtensionInfo = None, + hidden: bool = None, + site: ProvisioningSiteInfo = None, + assigned_country: AssignedCountryInfo = None, + cost_center: CostCenterInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if contact is not None: + self.contact = self._define_object(contact, ContactInfo) + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name + if permissions is not None: + self.permissions = self._define_object(permissions, ExtensionPermissions) + if profile_image is not None: + self.profile_image = self._define_object(profile_image, ProfileImageInfo) + if status is not None: + self.status = self._enum_matching( + status, GetExtensionListInfoResponseStatus.list(), "status" + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, GetExtensionListInfoResponseType.list(), "type_" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, GetExtensionListInfoResponseSubType.list(), "sub_type" + ) + if call_queue_info is not None: + self.call_queue_info = self._define_object( + call_queue_info, CallQueueExtensionInfo + ) + if hidden is not None: + self.hidden = hidden + if site is not None: + self.site = self._define_object(site, ProvisioningSiteInfo) + if assigned_country is not None: + self.assigned_country = self._define_object( + assigned_country, AssignedCountryInfo + ) + if cost_center is not None: + self.cost_center = self._define_object(cost_center, CostCenterInfo) diff --git a/src/ring_central/models/get_extension_list_response.py b/src/ring_central/models/get_extension_list_response.py new file mode 100644 index 00000000..9f19d27d --- /dev/null +++ b/src/ring_central/models/get_extension_list_response.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_extension_list_info_response import GetExtensionListInfoResponse +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetExtensionListResponse(BaseModel): + """GetExtensionListResponse + + :param uri: Link to an extension list resource, defaults to None + :type uri: str, optional + :param records: List of extensions with extension information + :type records: List[GetExtensionListInfoResponse] + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + records: List[GetExtensionListInfoResponse], + uri: str = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, GetExtensionListInfoResponse) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_extension_phone_numbers_response.py b/src/ring_central/models/get_extension_phone_numbers_response.py new file mode 100644 index 00000000..2971fbe2 --- /dev/null +++ b/src/ring_central/models/get_extension_phone_numbers_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .user_phone_number_info import UserPhoneNumberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetExtensionPhoneNumbersResponse(BaseModel): + """GetExtensionPhoneNumbersResponse + + :param uri: Link to the user phone number list resource, defaults to None + :type uri: str, optional + :param records: List of phone numbers + :type records: List[UserPhoneNumberInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[UserPhoneNumberInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, UserPhoneNumberInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_internal_text_message_info_response.py b/src/ring_central/models/get_internal_text_message_info_response.py new file mode 100644 index 00000000..99860231 --- /dev/null +++ b/src/ring_central/models/get_internal_text_message_info_response.py @@ -0,0 +1,171 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_attachment_info import MessageAttachmentInfo +from .message_availability_enum import MessageAvailabilityEnum +from .conversation_info import ConversationInfo +from .message_direction_enum import MessageDirectionEnum +from .message_store_caller_info_response_from import MessageStoreCallerInfoResponseFrom +from .message_status_enum import MessageStatusEnum +from .message_priority_enum import MessagePriorityEnum +from .message_read_status_enum import MessageReadStatusEnum +from .message_store_caller_info_response_to import MessageStoreCallerInfoResponseTo + + +class GetInternalTextMessageInfoResponseType(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar TEXT: "Text" + :vartype TEXT: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + TEXT = "Text" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetInternalTextMessageInfoResponseType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "conversation_id": "conversationId", + "creation_time": "creationTime", + "from_": "from", + "last_modified_time": "lastModifiedTime", + "message_status": "messageStatus", + "pg_to_department": "pgToDepartment", + "read_status": "readStatus", + "type_": "type", + } +) +class GetInternalTextMessageInfoResponse(BaseModel): + """GetInternalTextMessageInfoResponse + + :param id_: Internal identifier of a message, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message, defaults to None + :type uri: str, optional + :param attachments: The list of message attachments, defaults to None + :type attachments: List[MessageAttachmentInfo], optional + :param availability: Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly , defaults to None + :type availability: MessageAvailabilityEnum, optional + :param conversation_id: SMS and Pager only. Identifier of a conversation that the message belongs to , defaults to None + :type conversation_id: int, optional + :param conversation: SMS and Pager only. Information about a conversation the message belongs to, defaults to None + :type conversation: ConversationInfo, optional + :param creation_time: Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type creation_time: str, optional + :param direction: Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound , defaults to None + :type direction: MessageDirectionEnum, optional + :param from_: Sender information, defaults to None + :type from_: MessageStoreCallerInfoResponseFrom, optional + :param last_modified_time: Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type last_modified_time: str, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param pg_to_department: Pager only. `true` if at least one of a message recipients is 'Department' extension , defaults to None + :type pg_to_department: bool, optional + :param priority: Message priority, defaults to None + :type priority: MessagePriorityEnum, optional + :param read_status: Message read status, defaults to None + :type read_status: MessageReadStatusEnum, optional + :param subject: Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment , defaults to None + :type subject: str, optional + :param to: Recipient information, defaults to None + :type to: List[MessageStoreCallerInfoResponseTo], optional + :param type_: Message type, defaults to None + :type type_: GetInternalTextMessageInfoResponseType, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + attachments: List[MessageAttachmentInfo] = None, + availability: MessageAvailabilityEnum = None, + conversation_id: int = None, + conversation: ConversationInfo = None, + creation_time: str = None, + direction: MessageDirectionEnum = None, + from_: MessageStoreCallerInfoResponseFrom = None, + last_modified_time: str = None, + message_status: MessageStatusEnum = None, + pg_to_department: bool = None, + priority: MessagePriorityEnum = None, + read_status: MessageReadStatusEnum = None, + subject: str = None, + to: List[MessageStoreCallerInfoResponseTo] = None, + type_: GetInternalTextMessageInfoResponseType = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if attachments is not None: + self.attachments = self._define_list(attachments, MessageAttachmentInfo) + if availability is not None: + self.availability = self._enum_matching( + availability, MessageAvailabilityEnum.list(), "availability" + ) + if conversation_id is not None: + self.conversation_id = conversation_id + if conversation is not None: + self.conversation = self._define_object(conversation, ConversationInfo) + if creation_time is not None: + self.creation_time = creation_time + if direction is not None: + self.direction = self._enum_matching( + direction, MessageDirectionEnum.list(), "direction" + ) + if from_ is not None: + self.from_ = self._define_object(from_, MessageStoreCallerInfoResponseFrom) + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if pg_to_department is not None: + self.pg_to_department = pg_to_department + if priority is not None: + self.priority = self._enum_matching( + priority, MessagePriorityEnum.list(), "priority" + ) + if read_status is not None: + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) + if subject is not None: + self.subject = subject + if to is not None: + self.to = self._define_list(to, MessageStoreCallerInfoResponseTo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, GetInternalTextMessageInfoResponseType.list(), "type_" + ) diff --git a/src/ring_central/models/get_location_deletion_multi_response.py b/src/ring_central/models/get_location_deletion_multi_response.py new file mode 100644 index 00000000..f67ddb3f --- /dev/null +++ b/src/ring_central/models/get_location_deletion_multi_response.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .location_deletion_info import LocationDeletionInfo + + +class GetLocationDeletionMultiResponseDeletion(Enum): + """An enumeration representing different categories. + + :cvar FORBIDDEN: "Forbidden" + :vartype FORBIDDEN: str + :cvar RESTRICTED: "Restricted" + :vartype RESTRICTED: str + :cvar ALLOWED: "Allowed" + :vartype ALLOWED: str + """ + + FORBIDDEN = "Forbidden" + RESTRICTED = "Restricted" + ALLOWED = "Allowed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetLocationDeletionMultiResponseDeletion._member_map_.values(), + ) + ) + + +class Reassignment(Enum): + """An enumeration representing different categories. + + :cvar FORBIDDEN: "Forbidden" + :vartype FORBIDDEN: str + :cvar ALLOWED: "Allowed" + :vartype ALLOWED: str + """ + + FORBIDDEN = "Forbidden" + ALLOWED = "Allowed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Reassignment._member_map_.values())) + + +@JsonMap({"emergency_locations": "emergencyLocations"}) +class GetLocationDeletionMultiResponse(BaseModel): + """GetLocationDeletionMultiResponse + + :param deletion: deletion, defaults to None + :type deletion: GetLocationDeletionMultiResponseDeletion, optional + :param reassignment: reassignment, defaults to None + :type reassignment: Reassignment, optional + :param emergency_locations: emergency_locations, defaults to None + :type emergency_locations: List[LocationDeletionInfo], optional + """ + + def __init__( + self, + deletion: GetLocationDeletionMultiResponseDeletion = None, + reassignment: Reassignment = None, + emergency_locations: List[LocationDeletionInfo] = None, + ): + if deletion is not None: + self.deletion = self._enum_matching( + deletion, GetLocationDeletionMultiResponseDeletion.list(), "deletion" + ) + if reassignment is not None: + self.reassignment = self._enum_matching( + reassignment, Reassignment.list(), "reassignment" + ) + if emergency_locations is not None: + self.emergency_locations = self._define_list( + emergency_locations, LocationDeletionInfo + ) diff --git a/src/ring_central/models/get_location_list_response.py b/src/ring_central/models/get_location_list_response.py new file mode 100644 index 00000000..7b94c0bc --- /dev/null +++ b/src/ring_central/models/get_location_list_response.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .location_info import LocationInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetLocationListResponse(BaseModel): + """GetLocationListResponse + + :param uri: Link to the location list resource, defaults to None + :type uri: str, optional + :param records: List of locations, defaults to None + :type records: List[LocationInfo], optional + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + records: List[LocationInfo] = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, LocationInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_message_info_multi_response.py b/src/ring_central/models/get_message_info_multi_response.py new file mode 100644 index 00000000..fcc6e6bd --- /dev/null +++ b/src/ring_central/models/get_message_info_multi_response.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_message_info_response import GetMessageInfoResponse + + +@JsonMap({"resource_id": "resourceId"}) +class GetMessageInfoMultiResponse(BaseModel): + """GetMessageInfoMultiResponse + + :param resource_id: Internal identifier of a resource + :type resource_id: str + :param status: HTTP status code of an operation on given resource + :type status: int + :param body: body + :type body: GetMessageInfoResponse + """ + + def __init__(self, resource_id: str, status: int, body: GetMessageInfoResponse): + self.resource_id = resource_id + self.status = status + self.body = self._define_object(body, GetMessageInfoResponse) diff --git a/src/ring_central/models/get_message_info_response.py b/src/ring_central/models/get_message_info_response.py new file mode 100644 index 00000000..6c029bc0 --- /dev/null +++ b/src/ring_central/models/get_message_info_response.py @@ -0,0 +1,265 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_attachment_info import MessageAttachmentInfo +from .message_availability_enum import MessageAvailabilityEnum +from .conversation_info import ConversationInfo +from .message_direction_enum import MessageDirectionEnum +from .fax_resolution_enum import FaxResolutionEnum +from .message_store_caller_info_response_from import MessageStoreCallerInfoResponseFrom +from .message_status_enum import MessageStatusEnum +from .message_priority_enum import MessagePriorityEnum +from .message_read_status_enum import MessageReadStatusEnum +from .message_store_caller_info_response_to import MessageStoreCallerInfoResponseTo + + +class GetMessageInfoResponseType(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar TEXT: "Text" + :vartype TEXT: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + TEXT = "Text" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetMessageInfoResponseType._member_map_.values()) + ) + + +class VmTranscriptionStatus(Enum): + """An enumeration representing different categories. + + :cvar NOTAVAILABLE: "NotAvailable" + :vartype NOTAVAILABLE: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar TIMEDOUT: "TimedOut" + :vartype TIMEDOUT: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar COMPLETEDPARTIALLY: "CompletedPartially" + :vartype COMPLETEDPARTIALLY: str + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + NOTAVAILABLE = "NotAvailable" + INPROGRESS = "InProgress" + TIMEDOUT = "TimedOut" + COMPLETED = "Completed" + COMPLETEDPARTIALLY = "CompletedPartially" + FAILED = "Failed" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, VmTranscriptionStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "extension_id": "extensionId", + "conversation_id": "conversationId", + "creation_time": "creationTime", + "delivery_error_code": "deliveryErrorCode", + "fax_page_count": "faxPageCount", + "fax_resolution": "faxResolution", + "from_": "from", + "last_modified_time": "lastModifiedTime", + "message_status": "messageStatus", + "pg_to_department": "pgToDepartment", + "read_status": "readStatus", + "sms_delivery_time": "smsDeliveryTime", + "sms_sending_attempts_count": "smsSendingAttemptsCount", + "type_": "type", + "vm_transcription_status": "vmTranscriptionStatus", + "cover_index": "coverIndex", + "cover_page_text": "coverPageText", + } +) +class GetMessageInfoResponse(BaseModel): + """GetMessageInfoResponse + + :param id_: Internal identifier of a message, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message, defaults to None + :type uri: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param attachments: List of message attachments, defaults to None + :type attachments: List[MessageAttachmentInfo], optional + :param availability: Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly , defaults to None + :type availability: MessageAvailabilityEnum, optional + :param conversation_id: SMS and Pager only. Identifier of a conversation the message belongs to , defaults to None + :type conversation_id: int, optional + :param conversation: SMS and Pager only. Information about a conversation the message belongs to, defaults to None + :type conversation: ConversationInfo, optional + :param creation_time: Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type creation_time: str, optional + :param delivery_error_code: SMS only. Delivery error code returned by gateway, defaults to None + :type delivery_error_code: str, optional + :param direction: Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound , defaults to None + :type direction: MessageDirectionEnum, optional + :param fax_page_count: Fax only. Page count in a fax message, defaults to None + :type fax_page_count: int, optional + :param fax_resolution: Fax only. Resolution of a fax message. 'High' for black and white image scanned at 200 dpi, 'Low' for black and white image scanned at 100 dpi , defaults to None + :type fax_resolution: FaxResolutionEnum, optional + :param from_: Sender information, defaults to None + :type from_: MessageStoreCallerInfoResponseFrom, optional + :param last_modified_time: The date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type last_modified_time: str, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param pg_to_department: Pager only. `true` if at least one of the message recipients is 'Department' extension , defaults to None + :type pg_to_department: bool, optional + :param priority: Message priority, defaults to None + :type priority: MessagePriorityEnum, optional + :param read_status: Message read status, defaults to None + :type read_status: MessageReadStatusEnum, optional + :param sms_delivery_time: SMS only. Date/time when outbound SMS was delivered to recipient's handset in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. It is filled only if a carrier sends a delivery receipt to RingCentral , defaults to None + :type sms_delivery_time: str, optional + :param sms_sending_attempts_count: SMS only. Number of attempts made to send an outbound SMS to the Gateway (if Gateway is temporary unavailable) , defaults to None + :type sms_sending_attempts_count: int, optional + :param subject: Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment , defaults to None + :type subject: str, optional + :param to: Recipient information, defaults to None + :type to: List[MessageStoreCallerInfoResponseTo], optional + :param type_: Message type, defaults to None + :type type_: GetMessageInfoResponseType, optional + :param vm_transcription_status: Voicemail only. Status of a voicemail to text transcription. If 'VoicemailToText' feature is not activated for account, the 'NotAvailable' value is returned , defaults to None + :type vm_transcription_status: VmTranscriptionStatus, optional + :param cover_index: Cover page identifier. If coverIndex is set to '0' (zero) cover page is not attached. For the list of available cover page identifiers (1-13) please call the Fax Cover Pages method. If not specified, the default cover page is attached (which is configured in 'Outbound Fax Settings') , defaults to None + :type cover_index: int, optional + :param cover_page_text: Cover page text, entered by the fax sender and printed on the cover page. Maximum length is limited to 1024 symbols , defaults to None + :type cover_page_text: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + extension_id: str = None, + attachments: List[MessageAttachmentInfo] = None, + availability: MessageAvailabilityEnum = None, + conversation_id: int = None, + conversation: ConversationInfo = None, + creation_time: str = None, + delivery_error_code: str = None, + direction: MessageDirectionEnum = None, + fax_page_count: int = None, + fax_resolution: FaxResolutionEnum = None, + from_: MessageStoreCallerInfoResponseFrom = None, + last_modified_time: str = None, + message_status: MessageStatusEnum = None, + pg_to_department: bool = None, + priority: MessagePriorityEnum = None, + read_status: MessageReadStatusEnum = None, + sms_delivery_time: str = None, + sms_sending_attempts_count: int = None, + subject: str = None, + to: List[MessageStoreCallerInfoResponseTo] = None, + type_: GetMessageInfoResponseType = None, + vm_transcription_status: VmTranscriptionStatus = None, + cover_index: int = None, + cover_page_text: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_id is not None: + self.extension_id = extension_id + if attachments is not None: + self.attachments = self._define_list(attachments, MessageAttachmentInfo) + if availability is not None: + self.availability = self._enum_matching( + availability, MessageAvailabilityEnum.list(), "availability" + ) + if conversation_id is not None: + self.conversation_id = conversation_id + if conversation is not None: + self.conversation = self._define_object(conversation, ConversationInfo) + if creation_time is not None: + self.creation_time = creation_time + if delivery_error_code is not None: + self.delivery_error_code = delivery_error_code + if direction is not None: + self.direction = self._enum_matching( + direction, MessageDirectionEnum.list(), "direction" + ) + if fax_page_count is not None: + self.fax_page_count = fax_page_count + if fax_resolution is not None: + self.fax_resolution = self._enum_matching( + fax_resolution, FaxResolutionEnum.list(), "fax_resolution" + ) + if from_ is not None: + self.from_ = self._define_object(from_, MessageStoreCallerInfoResponseFrom) + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if pg_to_department is not None: + self.pg_to_department = pg_to_department + if priority is not None: + self.priority = self._enum_matching( + priority, MessagePriorityEnum.list(), "priority" + ) + if read_status is not None: + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) + if sms_delivery_time is not None: + self.sms_delivery_time = sms_delivery_time + if sms_sending_attempts_count is not None: + self.sms_sending_attempts_count = sms_sending_attempts_count + if subject is not None: + self.subject = subject + if to is not None: + self.to = self._define_list(to, MessageStoreCallerInfoResponseTo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, GetMessageInfoResponseType.list(), "type_" + ) + if vm_transcription_status is not None: + self.vm_transcription_status = self._enum_matching( + vm_transcription_status, + VmTranscriptionStatus.list(), + "vm_transcription_status", + ) + if cover_index is not None: + self.cover_index = cover_index + if cover_page_text is not None: + self.cover_page_text = cover_page_text diff --git a/src/ring_central/models/get_message_list.py b/src/ring_central/models/get_message_list.py new file mode 100644 index 00000000..039e6316 --- /dev/null +++ b/src/ring_central/models/get_message_list.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_message_info_response import GetMessageInfoResponse +from .messaging_navigation_info import MessagingNavigationInfo +from .messaging_paging_info import MessagingPagingInfo + + +@JsonMap({}) +class GetMessageList(BaseModel): + """GetMessageList + + :param uri: Link to a list of user messages, defaults to None + :type uri: str, optional + :param records: List of records with message information + :type records: List[GetMessageInfoResponse] + :param navigation: Information on navigation + :type navigation: MessagingNavigationInfo + :param paging: Information on paging + :type paging: MessagingPagingInfo + """ + + def __init__( + self, + records: List[GetMessageInfoResponse], + navigation: MessagingNavigationInfo, + paging: MessagingPagingInfo, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, GetMessageInfoResponse) + self.navigation = self._define_object(navigation, MessagingNavigationInfo) + self.paging = self._define_object(paging, MessagingPagingInfo) diff --git a/src/ring_central/models/get_message_sync_response.py b/src/ring_central/models/get_message_sync_response.py new file mode 100644 index 00000000..fe6122b7 --- /dev/null +++ b/src/ring_central/models/get_message_sync_response.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_message_info_response import GetMessageInfoResponse +from .sync_info_messages import SyncInfoMessages + + +@JsonMap({"sync_info": "syncInfo"}) +class GetMessageSyncResponse(BaseModel): + """GetMessageSyncResponse + + :param uri: Link to the message sync resource, defaults to None + :type uri: str, optional + :param records: List of message records with synchronization information + :type records: List[GetMessageInfoResponse] + :param sync_info: Sync type, token and time + :type sync_info: SyncInfoMessages + """ + + def __init__( + self, + records: List[GetMessageInfoResponse], + sync_info: SyncInfoMessages, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, GetMessageInfoResponse) + self.sync_info = self._define_object(sync_info, SyncInfoMessages) diff --git a/src/ring_central/models/get_presence_extension_info.py b/src/ring_central/models/get_presence_extension_info.py new file mode 100644 index 00000000..db169425 --- /dev/null +++ b/src/ring_central/models/get_presence_extension_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class GetPresenceExtensionInfo(BaseModel): + """Information on extension, for which this presence data is returned + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Extension number (usually 3 or 4 digits), defaults to None + :type extension_number: str, optional + """ + + def __init__(self, id_: int = None, uri: str = None, extension_number: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/get_presence_info.py b/src/ring_central/models/get_presence_info.py new file mode 100644 index 00000000..45a365c4 --- /dev/null +++ b/src/ring_central/models/get_presence_info.py @@ -0,0 +1,279 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_presence_extension_info import GetPresenceExtensionInfo +from .active_call_info import ActiveCallInfo + + +class GetPresenceInfoCallerIdVisibility(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar NONE: "None" + :vartype NONE: str + :cvar PERMITTEDUSERS: "PermittedUsers" + :vartype PERMITTEDUSERS: str + """ + + ALL = "All" + NONE = "None" + PERMITTEDUSERS = "PermittedUsers" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetPresenceInfoCallerIdVisibility._member_map_.values(), + ) + ) + + +class GetPresenceInfoDndStatus(Enum): + """An enumeration representing different categories. + + :cvar TAKEALLCALLS: "TakeAllCalls" + :vartype TAKEALLCALLS: str + :cvar DONOTACCEPTANYCALLS: "DoNotAcceptAnyCalls" + :vartype DONOTACCEPTANYCALLS: str + :cvar DONOTACCEPTDEPARTMENTCALLS: "DoNotAcceptDepartmentCalls" + :vartype DONOTACCEPTDEPARTMENTCALLS: str + :cvar TAKEDEPARTMENTCALLSONLY: "TakeDepartmentCallsOnly" + :vartype TAKEDEPARTMENTCALLSONLY: str + """ + + TAKEALLCALLS = "TakeAllCalls" + DONOTACCEPTANYCALLS = "DoNotAcceptAnyCalls" + DONOTACCEPTDEPARTMENTCALLS = "DoNotAcceptDepartmentCalls" + TAKEDEPARTMENTCALLSONLY = "TakeDepartmentCallsOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetPresenceInfoDndStatus._member_map_.values()) + ) + + +class GetPresenceInfoPresenceStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + """ + + OFFLINE = "Offline" + BUSY = "Busy" + AVAILABLE = "Available" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetPresenceInfoPresenceStatus._member_map_.values()) + ) + + +class GetPresenceInfoTelephonyStatus(Enum): + """An enumeration representing different categories. + + :cvar NOCALL: "NoCall" + :vartype NOCALL: str + :cvar CALLCONNECTED: "CallConnected" + :vartype CALLCONNECTED: str + :cvar RINGING: "Ringing" + :vartype RINGING: str + :cvar ONHOLD: "OnHold" + :vartype ONHOLD: str + :cvar PARKEDCALL: "ParkedCall" + :vartype PARKEDCALL: str + """ + + NOCALL = "NoCall" + CALLCONNECTED = "CallConnected" + RINGING = "Ringing" + ONHOLD = "OnHold" + PARKEDCALL = "ParkedCall" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetPresenceInfoTelephonyStatus._member_map_.values()) + ) + + +class GetPresenceInfoUserStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + """ + + OFFLINE = "Offline" + BUSY = "Busy" + AVAILABLE = "Available" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetPresenceInfoUserStatus._member_map_.values()) + ) + + +class GetPresenceInfoMeetingStatus(Enum): + """An enumeration representing different categories. + + :cvar CONNECTED: "Connected" + :vartype CONNECTED: str + :cvar DISCONNECTED: "Disconnected" + :vartype DISCONNECTED: str + """ + + CONNECTED = "Connected" + DISCONNECTED = "Disconnected" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetPresenceInfoMeetingStatus._member_map_.values()) + ) + + +@JsonMap( + { + "allow_see_my_presence": "allowSeeMyPresence", + "caller_id_visibility": "callerIdVisibility", + "dnd_status": "dndStatus", + "pick_up_calls_on_hold": "pickUpCallsOnHold", + "presence_status": "presenceStatus", + "ring_on_monitored_call": "ringOnMonitoredCall", + "telephony_status": "telephonyStatus", + "user_status": "userStatus", + "meeting_status": "meetingStatus", + "active_calls": "activeCalls", + } +) +class GetPresenceInfo(BaseModel): + """GetPresenceInfo + + :param uri: Canonical URI of a presence info resource, defaults to None + :type uri: str, optional + :param allow_see_my_presence: If set to `true` - enables other extensions to see the extension presence status, defaults to None + :type allow_see_my_presence: bool, optional + :param caller_id_visibility: Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers , defaults to None + :type caller_id_visibility: GetPresenceInfoCallerIdVisibility, optional + :param dnd_status: Extended DnD (Do not Disturb) status. Cannot be set for Department/Announcement/Voicemail (Take Messages Only)/Fax User/Shared Lines Group/Paging Only Group/IVR Menu/Application Extension/Park Location extensions. The 'DoNotAcceptDepartmentCalls' and 'TakeDepartmentCallsOnly' values are applicable only for extensions - members of a Department; if these values are set for department outsiders, the 400 Bad Request error code is returned. The 'TakeDepartmentCallsOnly' status can be set through the old RingCentral user interface and is available for some migrated accounts only. , defaults to None + :type dnd_status: GetPresenceInfoDndStatus, optional + :param extension: Information on extension, for which this presence data is returned, defaults to None + :type extension: GetPresenceExtensionInfo, optional + :param message: Custom status message (as previously published by user), defaults to None + :type message: str, optional + :param pick_up_calls_on_hold: If `true` enables the extension user to pick up a monitored line on hold, defaults to None + :type pick_up_calls_on_hold: bool, optional + :param presence_status: Aggregated presence status, calculated from a number of sources, defaults to None + :type presence_status: GetPresenceInfoPresenceStatus, optional + :param ring_on_monitored_call: If `true` enables to ring extension phone, if any user monitored by this extension is ringing, defaults to None + :type ring_on_monitored_call: bool, optional + :param telephony_status: Telephony presence status, defaults to None + :type telephony_status: GetPresenceInfoTelephonyStatus, optional + :param user_status: User-defined presence status (as previously published by the user), defaults to None + :type user_status: GetPresenceInfoUserStatus, optional + :param meeting_status: RingCentral Meetings presence, defaults to None + :type meeting_status: GetPresenceInfoMeetingStatus, optional + :param active_calls: Information on active calls, defaults to None + :type active_calls: List[ActiveCallInfo], optional + """ + + def __init__( + self, + uri: str = None, + allow_see_my_presence: bool = None, + caller_id_visibility: GetPresenceInfoCallerIdVisibility = None, + dnd_status: GetPresenceInfoDndStatus = None, + extension: GetPresenceExtensionInfo = None, + message: str = None, + pick_up_calls_on_hold: bool = None, + presence_status: GetPresenceInfoPresenceStatus = None, + ring_on_monitored_call: bool = None, + telephony_status: GetPresenceInfoTelephonyStatus = None, + user_status: GetPresenceInfoUserStatus = None, + meeting_status: GetPresenceInfoMeetingStatus = None, + active_calls: List[ActiveCallInfo] = None, + ): + if uri is not None: + self.uri = uri + if allow_see_my_presence is not None: + self.allow_see_my_presence = allow_see_my_presence + if caller_id_visibility is not None: + self.caller_id_visibility = self._enum_matching( + caller_id_visibility, + GetPresenceInfoCallerIdVisibility.list(), + "caller_id_visibility", + ) + if dnd_status is not None: + self.dnd_status = self._enum_matching( + dnd_status, GetPresenceInfoDndStatus.list(), "dnd_status" + ) + if extension is not None: + self.extension = self._define_object(extension, GetPresenceExtensionInfo) + if message is not None: + self.message = message + if pick_up_calls_on_hold is not None: + self.pick_up_calls_on_hold = pick_up_calls_on_hold + if presence_status is not None: + self.presence_status = self._enum_matching( + presence_status, GetPresenceInfoPresenceStatus.list(), "presence_status" + ) + if ring_on_monitored_call is not None: + self.ring_on_monitored_call = ring_on_monitored_call + if telephony_status is not None: + self.telephony_status = self._enum_matching( + telephony_status, + GetPresenceInfoTelephonyStatus.list(), + "telephony_status", + ) + if user_status is not None: + self.user_status = self._enum_matching( + user_status, GetPresenceInfoUserStatus.list(), "user_status" + ) + if meeting_status is not None: + self.meeting_status = self._enum_matching( + meeting_status, GetPresenceInfoMeetingStatus.list(), "meeting_status" + ) + if active_calls is not None: + self.active_calls = self._define_list(active_calls, ActiveCallInfo) diff --git a/src/ring_central/models/get_ring_out_status_response.py b/src/ring_central/models/get_ring_out_status_response.py new file mode 100644 index 00000000..f8018cfc --- /dev/null +++ b/src/ring_central/models/get_ring_out_status_response.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .ring_out_status_info import RingOutStatusInfo + + +@JsonMap({"id_": "id"}) +class GetRingOutStatusResponse(BaseModel): + """GetRingOutStatusResponse + + :param id_: Internal identifier of a RingOut call, defaults to None + :type id_: str, optional + :param uri: Link to a RingOut call resource, defaults to None + :type uri: str, optional + :param status: RingOut status information, defaults to None + :type status: RingOutStatusInfo, optional + """ + + def __init__( + self, id_: str = None, uri: str = None, status: RingOutStatusInfo = None + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if status is not None: + self.status = self._define_object(status, RingOutStatusInfo) diff --git a/src/ring_central/models/get_sms_message_info_response.py b/src/ring_central/models/get_sms_message_info_response.py new file mode 100644 index 00000000..69fcc9e2 --- /dev/null +++ b/src/ring_central/models/get_sms_message_info_response.py @@ -0,0 +1,180 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_attachment_info import MessageAttachmentInfo +from .message_availability_enum import MessageAvailabilityEnum +from .conversation_info import ConversationInfo +from .message_direction_enum import MessageDirectionEnum +from .message_store_caller_info_response_from import MessageStoreCallerInfoResponseFrom +from .message_status_enum import MessageStatusEnum +from .message_priority_enum import MessagePriorityEnum +from .message_read_status_enum import MessageReadStatusEnum +from .message_store_caller_info_response_to import MessageStoreCallerInfoResponseTo + + +class GetSmsMessageInfoResponseType(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar TEXT: "Text" + :vartype TEXT: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + TEXT = "Text" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetSmsMessageInfoResponseType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "conversation_id": "conversationId", + "creation_time": "creationTime", + "delivery_error_code": "deliveryErrorCode", + "from_": "from", + "last_modified_time": "lastModifiedTime", + "message_status": "messageStatus", + "read_status": "readStatus", + "sms_delivery_time": "smsDeliveryTime", + "sms_sending_attempts_count": "smsSendingAttemptsCount", + "type_": "type", + } +) +class GetSmsMessageInfoResponse(BaseModel): + """GetSmsMessageInfoResponse + + :param id_: Internal identifier of a message, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message, defaults to None + :type uri: str, optional + :param attachments: List of message attachments, defaults to None + :type attachments: List[MessageAttachmentInfo], optional + :param availability: Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly , defaults to None + :type availability: MessageAvailabilityEnum, optional + :param conversation_id: SMS and Pager only. Identifier of a conversation that the message belongs to , defaults to None + :type conversation_id: int, optional + :param conversation: SMS and Pager only. Information about a conversation the message belongs to, defaults to None + :type conversation: ConversationInfo, optional + :param creation_time: Message creation date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type creation_time: str, optional + :param delivery_error_code: SMS only. Delivery error code returned by gateway, defaults to None + :type delivery_error_code: str, optional + :param direction: Text message direction. Note that for some message types not all directions are allowed. For example voicemail messages can be only inbound , defaults to None + :type direction: MessageDirectionEnum, optional + :param from_: Sender information, defaults to None + :type from_: MessageStoreCallerInfoResponseFrom, optional + :param last_modified_time: Date/time when the message was modified on server in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type last_modified_time: str, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param priority: Message priority, defaults to None + :type priority: MessagePriorityEnum, optional + :param read_status: Message read status, defaults to None + :type read_status: MessageReadStatusEnum, optional + :param sms_delivery_time: SMS only. The date/time when outbound SMS was delivered to recipient's handset in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. It is filled only if the carrier sends a delivery receipt to RingCentral , defaults to None + :type sms_delivery_time: str, optional + :param sms_sending_attempts_count: SMS only. Number of attempts made to send an outbound SMS to the Gateway (if Gateway is temporary unavailable) , defaults to None + :type sms_sending_attempts_count: int, optional + :param subject: Message subject. For SMS and Pager messages it replicates message text which is also returned as an attachment , defaults to None + :type subject: str, optional + :param to: Recipient information, defaults to None + :type to: List[MessageStoreCallerInfoResponseTo], optional + :param type_: Message type, defaults to None + :type type_: GetSmsMessageInfoResponseType, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + attachments: List[MessageAttachmentInfo] = None, + availability: MessageAvailabilityEnum = None, + conversation_id: int = None, + conversation: ConversationInfo = None, + creation_time: str = None, + delivery_error_code: str = None, + direction: MessageDirectionEnum = None, + from_: MessageStoreCallerInfoResponseFrom = None, + last_modified_time: str = None, + message_status: MessageStatusEnum = None, + priority: MessagePriorityEnum = None, + read_status: MessageReadStatusEnum = None, + sms_delivery_time: str = None, + sms_sending_attempts_count: int = None, + subject: str = None, + to: List[MessageStoreCallerInfoResponseTo] = None, + type_: GetSmsMessageInfoResponseType = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if attachments is not None: + self.attachments = self._define_list(attachments, MessageAttachmentInfo) + if availability is not None: + self.availability = self._enum_matching( + availability, MessageAvailabilityEnum.list(), "availability" + ) + if conversation_id is not None: + self.conversation_id = conversation_id + if conversation is not None: + self.conversation = self._define_object(conversation, ConversationInfo) + if creation_time is not None: + self.creation_time = creation_time + if delivery_error_code is not None: + self.delivery_error_code = delivery_error_code + if direction is not None: + self.direction = self._enum_matching( + direction, MessageDirectionEnum.list(), "direction" + ) + if from_ is not None: + self.from_ = self._define_object(from_, MessageStoreCallerInfoResponseFrom) + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if priority is not None: + self.priority = self._enum_matching( + priority, MessagePriorityEnum.list(), "priority" + ) + if read_status is not None: + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) + if sms_delivery_time is not None: + self.sms_delivery_time = sms_delivery_time + if sms_sending_attempts_count is not None: + self.sms_sending_attempts_count = sms_sending_attempts_count + if subject is not None: + self.subject = subject + if to is not None: + self.to = self._define_list(to, MessageStoreCallerInfoResponseTo) + if type_ is not None: + self.type_ = self._enum_matching( + type_, GetSmsMessageInfoResponseType.list(), "type_" + ) diff --git a/src/ring_central/models/get_state_info_response.py b/src/ring_central/models/get_state_info_response.py new file mode 100644 index 00000000..3bd2fcf6 --- /dev/null +++ b/src/ring_central/models/get_state_info_response.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_minimal_model import CountryInfoMinimalModel + + +@JsonMap({"id_": "id", "iso_code": "isoCode"}) +class GetStateInfoResponse(BaseModel): + """GetStateInfoResponse + + :param id_: Internal identifier of a state, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a state, defaults to None + :type uri: str, optional + :param country: country, defaults to None + :type country: CountryInfoMinimalModel, optional + :param iso_code: Short code for a state (2-letter usually), defaults to None + :type iso_code: str, optional + :param name: Official name of a state, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + country: CountryInfoMinimalModel = None, + iso_code: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if country is not None: + self.country = self._define_object(country, CountryInfoMinimalModel) + if iso_code is not None: + self.iso_code = iso_code + if name is not None: + self.name = name diff --git a/src/ring_central/models/get_state_list_response.py b/src/ring_central/models/get_state_list_response.py new file mode 100644 index 00000000..110813ed --- /dev/null +++ b/src/ring_central/models/get_state_list_response.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_state_info_response import GetStateInfoResponse +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetStateListResponse(BaseModel): + """GetStateListResponse + + :param uri: Link to a states list resource, defaults to None + :type uri: str, optional + :param records: List of states, defaults to None + :type records: List[GetStateInfoResponse], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[GetStateInfoResponse] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, GetStateInfoResponse) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_timezone_info_response.py b/src/ring_central/models/get_timezone_info_response.py new file mode 100644 index 00000000..237886a2 --- /dev/null +++ b/src/ring_central/models/get_timezone_info_response.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class GetTimezoneInfoResponse(BaseModel): + """GetTimezoneInfoResponse + + :param id_: Internal identifier of a timezone, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a timezone, defaults to None + :type uri: str, optional + :param name: Short name of a timezone, defaults to None + :type name: str, optional + :param description: Description of a timezone, defaults to None + :type description: str, optional + :param bias: bias, defaults to None + :type bias: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + description: str = None, + bias: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if description is not None: + self.description = description + if bias is not None: + self.bias = bias diff --git a/src/ring_central/models/get_timezone_list_response.py b/src/ring_central/models/get_timezone_list_response.py new file mode 100644 index 00000000..27132e19 --- /dev/null +++ b/src/ring_central/models/get_timezone_list_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_timezone_info_response import GetTimezoneInfoResponse +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class GetTimezoneListResponse(BaseModel): + """GetTimezoneListResponse + + :param uri: Link to the timezone list resource, defaults to None + :type uri: str, optional + :param records: List of timezones + :type records: List[GetTimezoneInfoResponse] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[GetTimezoneInfoResponse], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, GetTimezoneInfoResponse) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/get_token_request.py b/src/ring_central/models/get_token_request.py new file mode 100644 index 00000000..eff4be69 --- /dev/null +++ b/src/ring_central/models/get_token_request.py @@ -0,0 +1,1514 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel + + +class GetTokenRequest1GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest1GrantType._member_map_.values()) + ) + + +class GetTokenRequest1ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest1ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest1(BaseModel): + """GetTokenRequest1 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest1GrantType + :param code: For `authorization_code` grant type only. User's authorization code, defaults to None + :type code: str, optional + :param redirect_uri: For `authorization_code` grant type only. This is a callback URI which determines where the response is sent. The value of this parameter must exactly match one of the URIs you have provided for your app upon registration , defaults to None + :type redirect_uri: str, optional + :param code_verifier: For `authorization_code` grant type only. The code verifier as defined by the PKCE specification - [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636) , defaults to None + :type code_verifier: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest1ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest1GrantType, + code: str = None, + redirect_uri: str = None, + code_verifier: str = None, + client_assertion_type: GetTokenRequest1ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest1GrantType.list(), "grant_type" + ) + if code is not None: + self.code = code + if redirect_uri is not None: + self.redirect_uri = redirect_uri + if code_verifier is not None: + self.code_verifier = code_verifier + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest1ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest2GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest2GrantType._member_map_.values()) + ) + + +class GetTokenRequest2ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest2ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest2(BaseModel): + """GetTokenRequest2 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest2GrantType + :param username: For `password` grant type only. User login name: email or phone number in E.164 format , defaults to None + :type username: str, optional + :param password: For `password` grant type only. User's password, defaults to None + :type password: str, optional + :param extension: For `password` grant type only. Optional. Extension short number. If a company number is specified as a username, and extension is not specified, the server will attempt to authenticate client as main company administrator DEPRECATED: use extension number embedded into username string like `+16501234567*101` , defaults to None + :type extension: str, optional + :param pin: IVR pin for pin-based authentication. DEPRECATED: use a dedicated `ivr_pin` grant type instead , defaults to None + :type pin: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest2ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest2GrantType, + username: str = None, + password: str = None, + extension: str = None, + pin: str = None, + client_assertion_type: GetTokenRequest2ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest2GrantType.list(), "grant_type" + ) + if username is not None: + self.username = username + if password is not None: + self.password = password + if extension is not None: + self.extension = extension + if pin is not None: + self.pin = pin + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest2ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest3GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest3GrantType._member_map_.values()) + ) + + +class GetTokenRequest3ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest3ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest3(BaseModel): + """GetTokenRequest3 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest3GrantType + :param assertion: For `urn:ietf:params:oauth:grant-type:jwt-bearer` or `partner_jwt` grant types only. Authorization grant assertion (JWT) as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.1). , defaults to None + :type assertion: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest3ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest3GrantType, + assertion: str = None, + client_assertion_type: GetTokenRequest3ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest3GrantType.list(), "grant_type" + ) + if assertion is not None: + self.assertion = assertion + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest3ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest4GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest4GrantType._member_map_.values()) + ) + + +class GetTokenRequest4ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest4ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest4(BaseModel): + """GetTokenRequest4 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest4GrantType + :param refresh_token: For `refresh_token` grant type only. Previously issued refresh token. , defaults to None + :type refresh_token: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest4ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest4GrantType, + refresh_token: str = None, + client_assertion_type: GetTokenRequest4ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest4GrantType.list(), "grant_type" + ) + if refresh_token is not None: + self.refresh_token = refresh_token + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest4ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest5GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest5GrantType._member_map_.values()) + ) + + +class GetTokenRequest5ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest5ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest5(BaseModel): + """GetTokenRequest5 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest5GrantType + :param ivr_pin: For `ivr_pin` grant type only. User's IVR pin., defaults to None + :type ivr_pin: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest5ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest5GrantType, + ivr_pin: str = None, + client_assertion_type: GetTokenRequest5ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest5GrantType.list(), "grant_type" + ) + if ivr_pin is not None: + self.ivr_pin = ivr_pin + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest5ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest6GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest6GrantType._member_map_.values()) + ) + + +class GetTokenRequest6ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest6ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest6(BaseModel): + """GetTokenRequest6 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest6GrantType + :param device_code: For `urn:ietf:params:oauth:grant-type:device_code` grant type only. The device verification code as defined by [RFC-8628](https://datatracker.ietf.org/doc/html/rfc8628#section-3.4) , defaults to None + :type device_code: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest6ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest6GrantType, + device_code: str = None, + client_assertion_type: GetTokenRequest6ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest6GrantType.list(), "grant_type" + ) + if device_code is not None: + self.device_code = device_code + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest6ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest7_1GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest7_1GrantType._member_map_.values()) + ) + + +class GetTokenRequest7_1ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest7_1ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest7_1(BaseModel): + """GetTokenRequest7_1 + + :param account_id: RingCentral internal account ID + :type account_id: str + :param grant_type: Grant type + :type grant_type: GetTokenRequest7_1GrantType + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest7_1ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + account_id: str, + grant_type: GetTokenRequest7_1GrantType, + client_assertion_type: GetTokenRequest7_1ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.account_id = account_id + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest7_1GrantType.list(), "grant_type" + ) + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest7_1ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest7_2GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest7_2GrantType._member_map_.values()) + ) + + +class GetTokenRequest7_2ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest7_2ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest7_2(BaseModel): + """GetTokenRequest7_2 + + :param partner_account_id: The ID of the account on RingCentral partner's side, defaults to None + :type partner_account_id: str, optional + :param brand_id: RingCentral Brand identifier. + :type brand_id: str + :param grant_type: Grant type + :type grant_type: GetTokenRequest7_2GrantType + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest7_2ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + brand_id: str, + grant_type: GetTokenRequest7_2GrantType, + partner_account_id: str = None, + client_assertion_type: GetTokenRequest7_2ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + if partner_account_id is not None: + self.partner_account_id = partner_account_id + self.brand_id = brand_id + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest7_2GrantType.list(), "grant_type" + ) + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest7_2ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest7Guard(OneOfBaseModel): + class_list = { + "GetTokenRequest7_1": GetTokenRequest7_1, + "GetTokenRequest7_2": GetTokenRequest7_2, + } + + +GetTokenRequest7 = Union[GetTokenRequest7_1, GetTokenRequest7_2] + + +class GetTokenRequest8GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest8GrantType._member_map_.values()) + ) + + +class GetTokenRequest8ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest8ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest8(BaseModel): + """GetTokenRequest8 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest8GrantType + :param code: For `otp` grant type only. One-time password code , defaults to None + :type code: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest8ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest8GrantType, + code: str = None, + client_assertion_type: GetTokenRequest8ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest8GrantType.list(), "grant_type" + ) + if code is not None: + self.code = code + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest8ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequest9GrantType(Enum): + """An enumeration representing different categories. + + :cvar AUTHORIZATION_CODE: "authorization_code" + :vartype AUTHORIZATION_CODE: str + :cvar PASSWORD: "password" + :vartype PASSWORD: str + :cvar REFRESH_TOKEN: "refresh_token" + :vartype REFRESH_TOKEN: str + :cvar CLIENT_CREDENTIALS: "client_credentials" + :vartype CLIENT_CREDENTIALS: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: str + :cvar URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: "urn:ietf:params:oauth:grant-type:device_code" + :vartype URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE: str + :cvar DEVICE_CERTIFICATE: "device_certificate" + :vartype DEVICE_CERTIFICATE: str + :cvar PARTNER_JWT: "partner_jwt" + :vartype PARTNER_JWT: str + :cvar GUEST: "guest" + :vartype GUEST: str + :cvar PERSONAL_JWT: "personal_jwt" + :vartype PERSONAL_JWT: str + :cvar OTP: "otp" + :vartype OTP: str + :cvar IVR_PIN: "ivr_pin" + :vartype IVR_PIN: str + """ + + AUTHORIZATION_CODE = "authorization_code" + PASSWORD = "password" + REFRESH_TOKEN = "refresh_token" + CLIENT_CREDENTIALS = "client_credentials" + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:grant-type:jwt-bearer" + ) + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_DEVICE_CODE = ( + "urn:ietf:params:oauth:grant-type:device_code" + ) + DEVICE_CERTIFICATE = "device_certificate" + PARTNER_JWT = "partner_jwt" + GUEST = "guest" + PERSONAL_JWT = "personal_jwt" + OTP = "otp" + IVR_PIN = "ivr_pin" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, GetTokenRequest9GrantType._member_map_.values()) + ) + + +class GetTokenRequest9ClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + GetTokenRequest9ClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class GetTokenRequest9(BaseModel): + """GetTokenRequest9 + + :param grant_type: Grant type + :type grant_type: GetTokenRequest9GrantType + :param brand_id: RingCentral Brand identifier., defaults to None + :type brand_id: str, optional + :param resource_type: Resource type for the guest access., defaults to None + :type resource_type: str, optional + :param resource: Resource URL for the guest access., defaults to None + :type resource: str, optional + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: GetTokenRequest9ClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + :param scope: The list of application permissions (OAuth scopes) requested. By default, it includes all permissions configured on the client application registration , defaults to None + :type scope: str, optional + :param client_id: The registered identifier of a client application. Used to identify a client ONLY if the client authentication is not required and corresponding credentials are not provided with this request , defaults to None + :type client_id: str, optional + :param endpoint_id: The unique identifier of a client application instance. If not specified, the derived or auto-generated value will be used , defaults to None + :type endpoint_id: str, optional + :param access_token_ttl: Access token lifetime in seconds, defaults to None + :type access_token_ttl: int, optional + :param refresh_token_ttl: Refresh token lifetime in seconds, defaults to None + :type refresh_token_ttl: int, optional + """ + + def __init__( + self, + grant_type: GetTokenRequest9GrantType, + brand_id: str = None, + resource_type: str = None, + resource: str = None, + client_assertion_type: GetTokenRequest9ClientAssertionType = None, + client_assertion: str = None, + scope: str = None, + client_id: str = None, + endpoint_id: str = None, + access_token_ttl: int = None, + refresh_token_ttl: int = None, + ): + self.grant_type = self._enum_matching( + grant_type, GetTokenRequest9GrantType.list(), "grant_type" + ) + if brand_id is not None: + self.brand_id = brand_id + if resource_type is not None: + self.resource_type = resource_type + if resource is not None: + self.resource = resource + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + GetTokenRequest9ClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion + if scope is not None: + self.scope = scope + if client_id is not None: + self.client_id = client_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if access_token_ttl is not None: + self.access_token_ttl = access_token_ttl + if refresh_token_ttl is not None: + self.refresh_token_ttl = refresh_token_ttl + + +class GetTokenRequestGuard(OneOfBaseModel): + class_list = { + "GetTokenRequest1": GetTokenRequest1, + "GetTokenRequest2": GetTokenRequest2, + "GetTokenRequest3": GetTokenRequest3, + "GetTokenRequest4": GetTokenRequest4, + "GetTokenRequest5": GetTokenRequest5, + "GetTokenRequest6": GetTokenRequest6, + "GetTokenRequest7_1": GetTokenRequest7_1, + "GetTokenRequest7_2": GetTokenRequest7_2, + "GetTokenRequest8": GetTokenRequest8, + "GetTokenRequest9": GetTokenRequest9, + } + + +GetTokenRequest = Union[ + GetTokenRequest1, + GetTokenRequest2, + GetTokenRequest3, + GetTokenRequest4, + GetTokenRequest5, + GetTokenRequest6, + GetTokenRequest7_1, + GetTokenRequest7_2, + GetTokenRequest8, + GetTokenRequest9, +] diff --git a/src/ring_central/models/get_user_business_hours_response.py b/src/ring_central/models/get_user_business_hours_response.py new file mode 100644 index 00000000..7b9048a7 --- /dev/null +++ b/src/ring_central/models/get_user_business_hours_response.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .schedule_info_user_business_hours import ScheduleInfoUserBusinessHours + + +@JsonMap({}) +class GetUserBusinessHoursResponse(BaseModel): + """GetUserBusinessHoursResponse + + :param uri: Canonical URI of a business-hours resource, defaults to None + :type uri: str, optional + :param schedule: Schedule when an answering rule is applied, defaults to None + :type schedule: ScheduleInfoUserBusinessHours, optional + """ + + def __init__(self, uri: str = None, schedule: ScheduleInfoUserBusinessHours = None): + if uri is not None: + self.uri = uri + if schedule is not None: + self.schedule = self._define_object(schedule, ScheduleInfoUserBusinessHours) diff --git a/src/ring_central/models/glip_data_export_navigation_info.py b/src/ring_central/models/glip_data_export_navigation_info.py new file mode 100644 index 00000000..cec9d6c2 --- /dev/null +++ b/src/ring_central/models/glip_data_export_navigation_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .glip_data_export_navigation_info_uri import GlipDataExportNavigationInfoUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class GlipDataExportNavigationInfo(BaseModel): + """GlipDataExportNavigationInfo + + :param first_page: first_page, defaults to None + :type first_page: GlipDataExportNavigationInfoUri, optional + :param next_page: next_page, defaults to None + :type next_page: GlipDataExportNavigationInfoUri, optional + :param previous_page: previous_page, defaults to None + :type previous_page: GlipDataExportNavigationInfoUri, optional + :param last_page: last_page, defaults to None + :type last_page: GlipDataExportNavigationInfoUri, optional + """ + + def __init__( + self, + first_page: GlipDataExportNavigationInfoUri = None, + next_page: GlipDataExportNavigationInfoUri = None, + previous_page: GlipDataExportNavigationInfoUri = None, + last_page: GlipDataExportNavigationInfoUri = None, + ): + if first_page is not None: + self.first_page = self._define_object( + first_page, GlipDataExportNavigationInfoUri + ) + if next_page is not None: + self.next_page = self._define_object( + next_page, GlipDataExportNavigationInfoUri + ) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, GlipDataExportNavigationInfoUri + ) + if last_page is not None: + self.last_page = self._define_object( + last_page, GlipDataExportNavigationInfoUri + ) diff --git a/src/ring_central/models/glip_data_export_navigation_info_uri.py b/src/ring_central/models/glip_data_export_navigation_info_uri.py new file mode 100644 index 00000000..2ff43d99 --- /dev/null +++ b/src/ring_central/models/glip_data_export_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class GlipDataExportNavigationInfoUri(BaseModel): + """GlipDataExportNavigationInfoUri + + :param uri: Canonical URI for the corresponding page of the list, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/glip_data_export_paging_info.py b/src/ring_central/models/glip_data_export_paging_info.py new file mode 100644 index 00000000..8a45b3c6 --- /dev/null +++ b/src/ring_central/models/glip_data_export_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class GlipDataExportPagingInfo(BaseModel): + """GlipDataExportPagingInfo + + :param page: The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested), defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied, defaults to None + :type per_page: int, optional + :param page_start: The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_start: int, optional + :param page_end: The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_end: int, optional + :param total_pages: The total number of pages in a dataset. May be omitted for some resources due to performance reasons, defaults to None + :type total_pages: int, optional + :param total_elements: The total number of elements in a dataset. May be omitted for some resource due to performance reasons, defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/global_dial_in_country_response.py b/src/ring_central/models/global_dial_in_country_response.py new file mode 100644 index 00000000..d0b6bece --- /dev/null +++ b/src/ring_central/models/global_dial_in_country_response.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"country_code": "countryCode", "country_name": "countryName"}) +class GlobalDialInCountryResponse(BaseModel): + """GlobalDialInCountryResponse + + :param country_code: country_code, defaults to None + :type country_code: str, optional + :param country_name: country_name, defaults to None + :type country_name: str, optional + :param checked: checked, defaults to None + :type checked: bool, optional + :param order: order, defaults to None + :type order: int, optional + """ + + def __init__( + self, + country_code: str = None, + country_name: str = None, + checked: bool = None, + order: int = None, + ): + if country_code is not None: + self.country_code = country_code + if country_name is not None: + self.country_name = country_name + if checked is not None: + self.checked = checked + if order is not None: + self.order = order diff --git a/src/ring_central/models/grant_info.py b/src/ring_central/models/grant_info.py new file mode 100644 index 00000000..f87c3532 --- /dev/null +++ b/src/ring_central/models/grant_info.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .extension_info_grants import ExtensionInfoGrants + + +@JsonMap( + { + "call_pickup": "callPickup", + "call_monitoring": "callMonitoring", + "call_on_behalf_of": "callOnBehalfOf", + "call_delegation": "callDelegation", + "group_paging": "groupPaging", + "call_queue_setup": "callQueueSetup", + "call_queue_members_setup": "callQueueMembersSetup", + "call_queue_messages": "callQueueMessages", + "call_queue_fac_setup": "callQueueFacSetup", + "shared_voicemails": "sharedVoicemails", + } +) +class GrantInfo(BaseModel): + """GrantInfo + + :param uri: Canonical URI of a grant, defaults to None + :type uri: str, optional + :param extension: Extension information, defaults to None + :type extension: ExtensionInfoGrants, optional + :param call_pickup: Specifies if picking up of other extensions' calls is allowed for the extension. If 'Presence' feature is disabled for the given extension, the flag is not returned , defaults to None + :type call_pickup: bool, optional + :param call_monitoring: Specifies if monitoring of other extensions' calls is allowed for the extension. If 'CallMonitoring' feature is disabled for the given extension, the flag is not returned , defaults to None + :type call_monitoring: bool, optional + :param call_on_behalf_of: Specifies whether the current extension is able to make or receive calls on behalf of the user referenced in extension object , defaults to None + :type call_on_behalf_of: bool, optional + :param call_delegation: Specifies whether the current extension can delegate a call to the user referenced in extension object , defaults to None + :type call_delegation: bool, optional + :param group_paging: Specifies whether the current extension is allowed to call Paging Only group referenced to in extension object , defaults to None + :type group_paging: bool, optional + :param call_queue_setup: Specifies whether the current extension is assigned as a Full-Access manager in the call queue referenced in extension object , defaults to None + :type call_queue_setup: bool, optional + :param call_queue_members_setup: Specifies whether the current extension is assigned as a Members-Only manager in the call queue referenced in extension object , defaults to None + :type call_queue_members_setup: bool, optional + :param call_queue_messages: Specifies whether the current extension is assigned as a Messages Manager in the queue referenced in extension object , defaults to None + :type call_queue_messages: bool, optional + :param call_queue_fac_setup: Specifies whether the current extension is granted *Forward All Calls (FAC)* permission , defaults to None + :type call_queue_fac_setup: bool, optional + :param shared_voicemails: Specifies whether the user referenced in extension object is sharing voicemails with the current extension , defaults to None + :type shared_voicemails: bool, optional + """ + + def __init__( + self, + uri: str = None, + extension: ExtensionInfoGrants = None, + call_pickup: bool = None, + call_monitoring: bool = None, + call_on_behalf_of: bool = None, + call_delegation: bool = None, + group_paging: bool = None, + call_queue_setup: bool = None, + call_queue_members_setup: bool = None, + call_queue_messages: bool = None, + call_queue_fac_setup: bool = None, + shared_voicemails: bool = None, + ): + if uri is not None: + self.uri = uri + if extension is not None: + self.extension = self._define_object(extension, ExtensionInfoGrants) + if call_pickup is not None: + self.call_pickup = call_pickup + if call_monitoring is not None: + self.call_monitoring = call_monitoring + if call_on_behalf_of is not None: + self.call_on_behalf_of = call_on_behalf_of + if call_delegation is not None: + self.call_delegation = call_delegation + if group_paging is not None: + self.group_paging = group_paging + if call_queue_setup is not None: + self.call_queue_setup = call_queue_setup + if call_queue_members_setup is not None: + self.call_queue_members_setup = call_queue_members_setup + if call_queue_messages is not None: + self.call_queue_messages = call_queue_messages + if call_queue_fac_setup is not None: + self.call_queue_fac_setup = call_queue_fac_setup + if shared_voicemails is not None: + self.shared_voicemails = shared_voicemails diff --git a/src/ring_central/models/greeting_info.py b/src/ring_central/models/greeting_info.py new file mode 100644 index 00000000..6ea4f49c --- /dev/null +++ b/src/ring_central/models/greeting_info.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .greeting_type_enum import GreetingTypeEnum +from .preset_info import PresetInfo +from .custom_greeting_info_request import CustomGreetingInfoRequest + + +@JsonMap({"type_": "type"}) +class GreetingInfo(BaseModel): + """GreetingInfo + + :param type_: Type of greeting, specifying the case when the greeting is played., defaults to None + :type type_: GreetingTypeEnum, optional + :param preset: preset, defaults to None + :type preset: PresetInfo, optional + :param custom: custom, defaults to None + :type custom: CustomGreetingInfoRequest, optional + """ + + def __init__( + self, + type_: GreetingTypeEnum = None, + preset: PresetInfo = None, + custom: CustomGreetingInfoRequest = None, + ): + if type_ is not None: + self.type_ = self._enum_matching(type_, GreetingTypeEnum.list(), "type_") + if preset is not None: + self.preset = self._define_object(preset, PresetInfo) + if custom is not None: + self.custom = self._define_object(custom, CustomGreetingInfoRequest) diff --git a/src/ring_central/models/greeting_language_info.py b/src/ring_central/models/greeting_language_info.py new file mode 100644 index 00000000..7812d93d --- /dev/null +++ b/src/ring_central/models/greeting_language_info.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class GreetingLanguageInfo(BaseModel): + """Information on language used for telephony greetings + + + :param id_: Internal identifier of a greeting language, defaults to None + :type id_: str, optional + :param locale_code: Localization code of a greeting language, defaults to None + :type locale_code: str, optional + :param name: Official name of a greeting language, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, locale_code: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if locale_code is not None: + self.locale_code = locale_code + if name is not None: + self.name = name diff --git a/src/ring_central/models/greeting_resource.py b/src/ring_central/models/greeting_resource.py new file mode 100644 index 00000000..d4e5d070 --- /dev/null +++ b/src/ring_central/models/greeting_resource.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class GreetingResourceType(Enum): + """An enumeration representing different categories. + + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + """ + + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, GreetingResourceType._member_map_.values())) + + +class GreetingResourceMode(Enum): + """An enumeration representing different categories. + + :cvar DEFAULT: "Default" + :vartype DEFAULT: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + DEFAULT = "Default" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, GreetingResourceMode._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class GreetingResource(BaseModel): + """GreetingResource + + :param type_: type_, defaults to None + :type type_: GreetingResourceType, optional + :param mode: Here `Default` indicates that all greetings of that type (in all languages) are default. If at least one greeting (in any language) of the specified type is custom, then `Custom` is returned. , defaults to None + :type mode: GreetingResourceMode, optional + """ + + def __init__( + self, type_: GreetingResourceType = None, mode: GreetingResourceMode = None + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, GreetingResourceType.list(), "type_" + ) + if mode is not None: + self.mode = self._enum_matching(mode, GreetingResourceMode.list(), "mode") diff --git a/src/ring_central/models/greeting_type_enum.py b/src/ring_central/models/greeting_type_enum.py new file mode 100644 index 00000000..6eace024 --- /dev/null +++ b/src/ring_central/models/greeting_type_enum.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class GreetingTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar INTRODUCTORY: "Introductory" + :vartype INTRODUCTORY: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + :cvar BLOCKEDCALLERSALL: "BlockedCallersAll" + :vartype BLOCKEDCALLERSALL: str + :cvar BLOCKEDCALLERSSPECIFIC: "BlockedCallersSpecific" + :vartype BLOCKEDCALLERSSPECIFIC: str + :cvar BLOCKEDNOCALLERID: "BlockedNoCallerId" + :vartype BLOCKEDNOCALLERID: str + :cvar BLOCKEDPAYPHONES: "BlockedPayPhones" + :vartype BLOCKEDPAYPHONES: str + :cvar CONNECTINGMESSAGE: "ConnectingMessage" + :vartype CONNECTINGMESSAGE: str + :cvar CONNECTINGAUDIO: "ConnectingAudio" + :vartype CONNECTINGAUDIO: str + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNAVAILABLE: "Unavailable" + :vartype UNAVAILABLE: str + :cvar INTERRUPTPROMPT: "InterruptPrompt" + :vartype INTERRUPTPROMPT: str + :cvar HOLDMUSIC: "HoldMusic" + :vartype HOLDMUSIC: str + :cvar COMPANY: "Company" + :vartype COMPANY: str + """ + + INTRODUCTORY = "Introductory" + ANNOUNCEMENT = "Announcement" + AUTOMATICRECORDING = "AutomaticRecording" + BLOCKEDCALLERSALL = "BlockedCallersAll" + BLOCKEDCALLERSSPECIFIC = "BlockedCallersSpecific" + BLOCKEDNOCALLERID = "BlockedNoCallerId" + BLOCKEDPAYPHONES = "BlockedPayPhones" + CONNECTINGMESSAGE = "ConnectingMessage" + CONNECTINGAUDIO = "ConnectingAudio" + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + VOICEMAIL = "Voicemail" + UNAVAILABLE = "Unavailable" + INTERRUPTPROMPT = "InterruptPrompt" + HOLDMUSIC = "HoldMusic" + COMPANY = "Company" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, GreetingTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/greetings_create_company_greeting_request_1.py b/src/ring_central/models/greetings_create_company_greeting_request_1.py new file mode 100644 index 00000000..ed0fbba7 --- /dev/null +++ b/src/ring_central/models/greetings_create_company_greeting_request_1.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .answering_rule_query_request import AnsweringRuleQueryRequest + + +class CreateCompanyGreetingRequestType1(Enum): + """An enumeration representing different categories. + + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + COMPANY = "Company" + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateCompanyGreetingRequestType1._member_map_.values(), + ) + ) + + +@JsonMap( + {"type_": "type", "answering_rule": "answeringRule", "language_id": "languageId"} +) +class GreetingsCreateCompanyGreetingRequest1(BaseModel): + """GreetingsCreateCompanyGreetingRequest1 + + :param type_: Type of greeting, specifying the case when the greeting is played. + :type type_: CreateCompanyGreetingRequestType1 + :param answering_rule: answering_rule, defaults to None + :type answering_rule: AnsweringRuleQueryRequest, optional + :param language_id: Internal identifier of a language. See Get Language List , defaults to None + :type language_id: str, optional + :param binary: Media file to upload + :type binary: any + """ + + def __init__( + self, + type_: CreateCompanyGreetingRequestType1, + binary: any, + answering_rule: AnsweringRuleQueryRequest = None, + language_id: str = None, + ): + self.type_ = self._enum_matching( + type_, CreateCompanyGreetingRequestType1.list(), "type_" + ) + if answering_rule is not None: + self.answering_rule = self._define_object( + answering_rule, AnsweringRuleQueryRequest + ) + if language_id is not None: + self.language_id = language_id + self.binary = binary diff --git a/src/ring_central/models/greetings_create_company_greeting_request_2.py b/src/ring_central/models/greetings_create_company_greeting_request_2.py new file mode 100644 index 00000000..ed5b5c63 --- /dev/null +++ b/src/ring_central/models/greetings_create_company_greeting_request_2.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CreateCompanyGreetingRequestType2(Enum): + """An enumeration representing different categories. + + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + COMPANY = "Company" + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateCompanyGreetingRequestType2._member_map_.values(), + ) + ) + + +@JsonMap( + { + "type_": "type", + "answering_rule_id": "answeringRuleId", + "language_id": "languageId", + } +) +class GreetingsCreateCompanyGreetingRequest2(BaseModel): + """GreetingsCreateCompanyGreetingRequest2 + + :param type_: Type of greeting, specifying the case when the greeting is played. + :type type_: CreateCompanyGreetingRequestType2 + :param answering_rule_id: Internal identifier of an answering rule, defaults to None + :type answering_rule_id: str, optional + :param language_id: Internal identifier of a language. See Get Language List , defaults to None + :type language_id: str, optional + :param binary: Media file to upload + :type binary: any + """ + + def __init__( + self, + type_: CreateCompanyGreetingRequestType2, + binary: any, + answering_rule_id: str = None, + language_id: str = None, + ): + self.type_ = self._enum_matching( + type_, CreateCompanyGreetingRequestType2.list(), "type_" + ) + if answering_rule_id is not None: + self.answering_rule_id = answering_rule_id + if language_id is not None: + self.language_id = language_id + self.binary = binary diff --git a/src/ring_central/models/greetings_create_custom_user_greeting_request_1.py b/src/ring_central/models/greetings_create_custom_user_greeting_request_1.py new file mode 100644 index 00000000..d70a7d8a --- /dev/null +++ b/src/ring_central/models/greetings_create_custom_user_greeting_request_1.py @@ -0,0 +1,78 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .answering_rule_query_request import AnsweringRuleQueryRequest + + +class CreateCustomUserGreetingRequestType1(Enum): + """An enumeration representing different categories. + + :cvar INTRODUCTORY: "Introductory" + :vartype INTRODUCTORY: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar CONNECTINGMESSAGE: "ConnectingMessage" + :vartype CONNECTINGMESSAGE: str + :cvar CONNECTINGAUDIO: "ConnectingAudio" + :vartype CONNECTINGAUDIO: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNAVAILABLE: "Unavailable" + :vartype UNAVAILABLE: str + :cvar HOLDMUSIC: "HoldMusic" + :vartype HOLDMUSIC: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + INTRODUCTORY = "Introductory" + ANNOUNCEMENT = "Announcement" + CONNECTINGMESSAGE = "ConnectingMessage" + CONNECTINGAUDIO = "ConnectingAudio" + VOICEMAIL = "Voicemail" + UNAVAILABLE = "Unavailable" + HOLDMUSIC = "HoldMusic" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateCustomUserGreetingRequestType1._member_map_.values(), + ) + ) + + +@JsonMap({"type_": "type", "answering_rule": "answeringRule"}) +class GreetingsCreateCustomUserGreetingRequest1(BaseModel): + """GreetingsCreateCustomUserGreetingRequest1 + + :param type_: Type of greeting, specifying the case when the greeting is played. + :type type_: CreateCustomUserGreetingRequestType1 + :param answering_rule: answering_rule + :type answering_rule: AnsweringRuleQueryRequest + :param binary: Media file to upload + :type binary: any + """ + + def __init__( + self, + type_: CreateCustomUserGreetingRequestType1, + answering_rule: AnsweringRuleQueryRequest, + binary: any, + ): + self.type_ = self._enum_matching( + type_, CreateCustomUserGreetingRequestType1.list(), "type_" + ) + self.answering_rule = self._define_object( + answering_rule, AnsweringRuleQueryRequest + ) + self.binary = binary diff --git a/src/ring_central/models/greetings_create_custom_user_greeting_request_2.py b/src/ring_central/models/greetings_create_custom_user_greeting_request_2.py new file mode 100644 index 00000000..7d257403 --- /dev/null +++ b/src/ring_central/models/greetings_create_custom_user_greeting_request_2.py @@ -0,0 +1,74 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CreateCustomUserGreetingRequestType2(Enum): + """An enumeration representing different categories. + + :cvar INTRODUCTORY: "Introductory" + :vartype INTRODUCTORY: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar CONNECTINGMESSAGE: "ConnectingMessage" + :vartype CONNECTINGMESSAGE: str + :cvar CONNECTINGAUDIO: "ConnectingAudio" + :vartype CONNECTINGAUDIO: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNAVAILABLE: "Unavailable" + :vartype UNAVAILABLE: str + :cvar HOLDMUSIC: "HoldMusic" + :vartype HOLDMUSIC: str + :cvar TEMPLATEGREETING: "TemplateGreeting" + :vartype TEMPLATEGREETING: str + """ + + INTRODUCTORY = "Introductory" + ANNOUNCEMENT = "Announcement" + CONNECTINGMESSAGE = "ConnectingMessage" + CONNECTINGAUDIO = "ConnectingAudio" + VOICEMAIL = "Voicemail" + UNAVAILABLE = "Unavailable" + HOLDMUSIC = "HoldMusic" + TEMPLATEGREETING = "TemplateGreeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + CreateCustomUserGreetingRequestType2._member_map_.values(), + ) + ) + + +@JsonMap({"type_": "type", "answering_rule_id": "answeringRuleId"}) +class GreetingsCreateCustomUserGreetingRequest2(BaseModel): + """GreetingsCreateCustomUserGreetingRequest2 + + :param type_: Type of greeting, specifying the case when the greeting is played. + :type type_: CreateCustomUserGreetingRequestType2 + :param answering_rule_id: Internal identifier of an answering rule + :type answering_rule_id: str + :param binary: Media file to upload + :type binary: any + """ + + def __init__( + self, + type_: CreateCustomUserGreetingRequestType2, + answering_rule_id: str, + binary: any, + ): + self.type_ = self._enum_matching( + type_, CreateCustomUserGreetingRequestType2.list(), "type_" + ) + self.answering_rule_id = answering_rule_id + self.binary = binary diff --git a/src/ring_central/models/group_resource.py b/src/ring_central/models/group_resource.py new file mode 100644 index 00000000..ac5ab9ee --- /dev/null +++ b/src/ring_central/models/group_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class GroupResource(BaseModel): + """GroupResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/grouping.py b/src/ring_central/models/grouping.py new file mode 100644 index 00000000..6bedbdd2 --- /dev/null +++ b/src/ring_central/models/grouping.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .direct_grouping import DirectGrouping +from .grouping_by_members import GroupingByMembers + + +class GroupingGuard(OneOfBaseModel): + class_list = { + "DirectGrouping": DirectGrouping, + "GroupingByMembers": GroupingByMembers, + } + + +Grouping = Union[DirectGrouping, GroupingByMembers] diff --git a/src/ring_central/models/grouping_by_members.py b/src/ring_central/models/grouping_by_members.py new file mode 100644 index 00000000..022d649f --- /dev/null +++ b/src/ring_central/models/grouping_by_members.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .members_grouping_options import MembersGroupingOptions + + +@JsonMap({"group_by_members": "groupByMembers"}) +class GroupingByMembers(BaseModel): + """This grouping allows to specify the `groupByMembers` option. The response data will be grouped by users and will only include users that belong to the scope selected in `groupByMembers` field + + :param group_by_members: The selected data scope + :type group_by_members: MembersGroupingOptions + :param keys: This field can be used to further limit the users selection by specifying unique identifiers of corresponding entities. For example, providing unique queue ids along with `Queue` in `groupByMembers` field will limit the response to users that are queue agents in at least one of these queues, defaults to None + :type keys: List[str], optional + """ + + def __init__( + self, group_by_members: MembersGroupingOptions, keys: List[str] = None + ): + self.group_by_members = self._enum_matching( + group_by_members, MembersGroupingOptions.list(), "group_by_members" + ) + if keys is not None: + self.keys = keys diff --git a/src/ring_central/models/grouping_options.py b/src/ring_central/models/grouping_options.py new file mode 100644 index 00000000..3de148cd --- /dev/null +++ b/src/ring_central/models/grouping_options.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class GroupingOptions(Enum): + """An enumeration representing different categories. + + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar COMPANYNUMBERS: "CompanyNumbers" + :vartype COMPANYNUMBERS: str + :cvar USERS: "Users" + :vartype USERS: str + :cvar QUEUES: "Queues" + :vartype QUEUES: str + :cvar IVRS: "IVRs" + :vartype IVRS: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + :cvar USERGROUPS: "UserGroups" + :vartype USERGROUPS: str + :cvar SITES: "Sites" + :vartype SITES: str + :cvar DEPARTMENTS: "Departments" + :vartype DEPARTMENTS: str + """ + + COMPANY = "Company" + COMPANYNUMBERS = "CompanyNumbers" + USERS = "Users" + QUEUES = "Queues" + IVRS = "IVRs" + SHAREDLINES = "SharedLines" + USERGROUPS = "UserGroups" + SITES = "Sites" + DEPARTMENTS = "Departments" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, GroupingOptions._member_map_.values())) diff --git a/src/ring_central/models/hold_call_party_request.py b/src/ring_central/models/hold_call_party_request.py new file mode 100644 index 00000000..4b4f6a9e --- /dev/null +++ b/src/ring_central/models/hold_call_party_request.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Proto(Enum): + """An enumeration representing different categories. + + :cvar AUTO: "Auto" + :vartype AUTO: str + :cvar RC: "RC" + :vartype RC: str + :cvar BROADWORKS: "BroadWorks" + :vartype BROADWORKS: str + :cvar DISCONNECTHOLDER: "DisconnectHolder" + :vartype DISCONNECTHOLDER: str + """ + + AUTO = "Auto" + RC = "RC" + BROADWORKS = "BroadWorks" + DISCONNECTHOLDER = "DisconnectHolder" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Proto._member_map_.values())) + + +@JsonMap({}) +class HoldCallPartyRequest(BaseModel): + """HoldCallPartyRequest + + :param proto: Protocol for hold mode initiation, defaults to None + :type proto: Proto, optional + """ + + def __init__(self, proto: Proto = None): + if proto is not None: + self.proto = self._enum_matching(proto, Proto.list(), "proto") diff --git a/src/ring_central/models/horizontal_alignment.py b/src/ring_central/models/horizontal_alignment.py new file mode 100644 index 00000000..ab648791 --- /dev/null +++ b/src/ring_central/models/horizontal_alignment.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .base import OneOfBaseModel + + +class HorizontalAlignment1(Enum): + """An enumeration representing different categories. + + :cvar LEFT: "left" + :vartype LEFT: str + :cvar CENTER: "center" + :vartype CENTER: str + :cvar RIGHT: "right" + :vartype RIGHT: str + """ + + LEFT = "left" + CENTER = "center" + RIGHT = "right" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, HorizontalAlignment1._member_map_.values())) + + +class HorizontalAlignmentGuard(OneOfBaseModel): + class_list = {"HorizontalAlignment1Enum": str, "str": str} + + +HorizontalAlignment = Union[str, str] diff --git a/src/ring_central/models/host.py b/src/ring_central/models/host.py new file mode 100644 index 00000000..f588fd1b --- /dev/null +++ b/src/ring_central/models/host.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "account_id": "accountId", + "extension_id": "extensionId", + "display_name": "displayName", + } +) +class Host(BaseModel): + """Meeting host + + :param account_id: Account id, defaults to None + :type account_id: str, optional + :param extension_id: Extension id, defaults to None + :type extension_id: str, optional + :param display_name: Display name, defaults to None + :type display_name: str, optional + """ + + def __init__( + self, account_id: str = None, extension_id: str = None, display_name: str = None + ): + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id + if display_name is not None: + self.display_name = display_name diff --git a/src/ring_central/models/host_info_request.py b/src/ring_central/models/host_info_request.py new file mode 100644 index 00000000..2d39a7b3 --- /dev/null +++ b/src/ring_central/models/host_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class HostInfoRequest(BaseModel): + """Meeting host information + + :param uri: Link to the meeting host resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an extension which is assigned to be a meeting host. The default value is currently logged-in extension identifier, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/host_model.py b/src/ring_central/models/host_model.py new file mode 100644 index 00000000..e954634b --- /dev/null +++ b/src/ring_central/models/host_model.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_domain_user_model import RcwDomainUserModel + + +@JsonMap( + {"first_name": "firstName", "last_name": "lastName", "linked_user": "linkedUser"} +) +class HostModel(BaseModel): + """HostModel + + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + linked_user: RcwDomainUserModel = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) diff --git a/src/ring_central/models/hours_interval.py b/src/ring_central/models/hours_interval.py new file mode 100644 index 00000000..5d884fba --- /dev/null +++ b/src/ring_central/models/hours_interval.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_": "from"}) +class HoursInterval(BaseModel): + """HoursInterval + + :param from_: Time in format hh:mm + :type from_: str + :param to: Time in format hh:mm + :type to: str + """ + + def __init__(self, from_: str, to: str): + self.from_ = from_ + self.to = to diff --git a/src/ring_central/models/identify_input.py b/src/ring_central/models/identify_input.py new file mode 100644 index 00000000..1d4a6d45 --- /dev/null +++ b/src/ring_central/models/identify_input.py @@ -0,0 +1,138 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class IdentifyInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, IdentifyInputEncoding._member_map_.values())) + + +class IdentifyInputAudioType(Enum): + """An enumeration representing different categories. + + :cvar CALLCENTER: "CallCenter" + :vartype CALLCENTER: str + :cvar MEETING: "Meeting" + :vartype MEETING: str + :cvar EARNINGSCALLS: "EarningsCalls" + :vartype EARNINGSCALLS: str + :cvar INTERVIEW: "Interview" + :vartype INTERVIEW: str + :cvar PRESSCONFERENCE: "PressConference" + :vartype PRESSCONFERENCE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + """ + + CALLCENTER = "CallCenter" + MEETING = "Meeting" + EARNINGSCALLS = "EarningsCalls" + INTERVIEW = "Interview" + PRESSCONFERENCE = "PressConference" + VOICEMAIL = "Voicemail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, IdentifyInputAudioType._member_map_.values()) + ) + + +@JsonMap( + { + "content_uri": "contentUri", + "language_code": "languageCode", + "audio_type": "audioType", + "speaker_ids": "speakerIds", + "enable_voice_activity_detection": "enableVoiceActivityDetection", + } +) +class IdentifyInput(BaseModel): + """IdentifyInput + + :param content_uri: Publicly facing uri, defaults to None + :type content_uri: str, optional + :param encoding: The encoding of the original audio, defaults to None + :type encoding: IdentifyInputEncoding, optional + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param source: Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc, defaults to None + :type source: str, optional + :param audio_type: Type of the audio, defaults to None + :type audio_type: IdentifyInputAudioType, optional + :param speaker_ids: Set of enrolled speakers to be identified from the media., defaults to None + :type speaker_ids: List[str], optional + :param enable_voice_activity_detection: Apply voice activity detection., defaults to None + :type enable_voice_activity_detection: bool, optional + """ + + def __init__( + self, + content_uri: str = None, + encoding: IdentifyInputEncoding = None, + language_code: str = None, + source: str = None, + audio_type: IdentifyInputAudioType = None, + speaker_ids: List[str] = None, + enable_voice_activity_detection: bool = None, + ): + if content_uri is not None: + self.content_uri = content_uri + if encoding is not None: + self.encoding = self._enum_matching( + encoding, IdentifyInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + if source is not None: + self.source = source + if audio_type is not None: + self.audio_type = self._enum_matching( + audio_type, IdentifyInputAudioType.list(), "audio_type" + ) + if speaker_ids is not None: + self.speaker_ids = speaker_ids + if enable_voice_activity_detection is not None: + self.enable_voice_activity_detection = enable_voice_activity_detection diff --git a/src/ring_central/models/identities_list.py b/src/ring_central/models/identities_list.py new file mode 100644 index 00000000..a31ff88b --- /dev/null +++ b/src/ring_central/models/identities_list.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .identity_model import IdentityModel +from .non_enumerated_paging_model import NonEnumeratedPagingModel + + +@JsonMap({}) +class IdentitiesList(BaseModel): + """IdentitiesList + + :param records: records + :type records: List[IdentityModel] + :param paging: paging + :type paging: NonEnumeratedPagingModel + """ + + def __init__(self, records: List[IdentityModel], paging: NonEnumeratedPagingModel): + self.records = self._define_list(records, IdentityModel) + self.paging = self._define_object(paging, NonEnumeratedPagingModel) diff --git a/src/ring_central/models/identity_model.py b/src/ring_central/models/identity_model.py new file mode 100644 index 00000000..e2384475 --- /dev/null +++ b/src/ring_central/models/identity_model.py @@ -0,0 +1,227 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .soc_msg_gender import SocMsgGender +from .identity_type import IdentityType + + +@JsonMap( + { + "id_": "id", + "avatar_uri": "avatarUri", + "creation_time": "creationTime", + "display_name": "displayName", + "email_address": "emailAddress", + "extra_values": "extraValues", + "first_name": "firstName", + "home_phone": "homePhone", + "identity_group_id": "identityGroupId", + "last_name": "lastName", + "mobile_phone": "mobilePhone", + "screen_name": "screenName", + "type_": "type", + "last_modified_time": "lastModifiedTime", + "user_ids": "userIds", + "mobile_device_info": "mobileDeviceInfo", + "fb_bio": "fbBio", + "fb_category": "fbCategory", + "fb_locale": "fbLocale", + "ig_followers_count": "igFollowersCount", + "tw_description": "twDescription", + "tw_followers_count": "twFollowersCount", + "tw_following_count": "twFollowingCount", + "tw_statuses_count": "twStatusesCount", + "tw_location": "twLocation", + "api_version": "apiVersion", + "device_type": "deviceType", + "primary_device_os": "primaryDeviceOs", + "viber_version": "viberVersion", + } +) +class IdentityModel(BaseModel): + """IdentityModel + + :param id_: Identity identifier. + :type id_: str + :param avatar_uri: Identity's avatar Uri., defaults to None + :type avatar_uri: str, optional + :param company: Company., defaults to None + :type company: str, optional + :param creation_time: Creation time of the resource. + :type creation_time: str + :param display_name: Display name of the identity., defaults to None + :type display_name: str, optional + :param email_address: Email address., defaults to None + :type email_address: str, optional + :param extra_values: Additional data to store along the identity., defaults to None + :type extra_values: dict, optional + :param first_name: FirstName., defaults to None + :type first_name: str, optional + :param gender: Gender., defaults to None + :type gender: SocMsgGender, optional + :param home_phone: Phone number., defaults to None + :type home_phone: str, optional + :param identity_group_id: The identity group id references the identity group that contains all information (phone, notes, etc.). Many identities may belong to this group. If the identity group id is null, it means that identity does not have a group and any extra information. , defaults to None + :type identity_group_id: str, optional + :param last_name: LastName., defaults to None + :type last_name: str, optional + :param mobile_phone: Phone number., defaults to None + :type mobile_phone: str, optional + :param screen_name: Screen name of the identity., defaults to None + :type screen_name: str, optional + :param type_: Type of the identity. + :type type_: IdentityType + :param last_modified_time: The time when the last modification was completed. + :type last_modified_time: str + :param user_ids: List of the associated user identifiers who can use the identity., defaults to None + :type user_ids: List[str], optional + :param uuid: UUID of the identity., defaults to None + :type uuid: str, optional + :param mobile_device_info: Device info of the identity. Applicable to RingCX Digital Messaging channels only. , defaults to None + :type mobile_device_info: str, optional + :param fb_bio: Facebook biography of the identity. Applicable to Facebook and Messenger channels only. , defaults to None + :type fb_bio: str, optional + :param fb_category: Facebook category of the identity. Applicable to Facebook and Messenger channels only. , defaults to None + :type fb_category: str, optional + :param fb_locale: Facebook locale of the identity. Applicable to Facebook and Messenger channels only. , defaults to None + :type fb_locale: str, optional + :param ig_followers_count: Instagram followers count of the identity. Applicable to Instagram and InstagramMessaging channels only. , defaults to None + :type ig_followers_count: int, optional + :param tw_description: Twitter description of the identity. Applicable to Twitter channels only. , defaults to None + :type tw_description: str, optional + :param tw_followers_count: Twitter followers count of the identity. Applicable to Twitter channels only. , defaults to None + :type tw_followers_count: int, optional + :param tw_following_count: Count of Twitter accounts followed by the identity. Applicable to Twitter channels only. , defaults to None + :type tw_following_count: int, optional + :param tw_statuses_count: Count of tweets of the identity. Applicable to Twitter channels only. , defaults to None + :type tw_statuses_count: int, optional + :param tw_location: Twitter location of the identity. Applicable to Twitter channels only. , defaults to None + :type tw_location: str, optional + :param api_version: Viber API version of the identity. Applicable to Viber channels only. , defaults to None + :type api_version: str, optional + :param country: Viber country of the identity. Applicable to Viber channels only. , defaults to None + :type country: str, optional + :param device_type: Viber device type of the identity. Applicable to Viber channels only. , defaults to None + :type device_type: str, optional + :param language: Viber language of the identity. Applicable to Viber channels only. , defaults to None + :type language: str, optional + :param mcc: Viber mobile country code of the identity. Applicable to Viber channels only. , defaults to None + :type mcc: str, optional + :param mnc: Viber mobile network code of the identity. Applicable to Viber channels only. , defaults to None + :type mnc: str, optional + :param primary_device_os: Viber primary device OS of the identity. Applicable to Viber channels only. , defaults to None + :type primary_device_os: str, optional + :param viber_version: Viber application version of the identity. Applicable to Viber channels only. , defaults to None + :type viber_version: str, optional + """ + + def __init__( + self, + id_: str, + creation_time: str, + type_: IdentityType, + last_modified_time: str, + avatar_uri: str = None, + company: str = None, + display_name: str = None, + email_address: str = None, + extra_values: dict = None, + first_name: str = None, + gender: SocMsgGender = None, + home_phone: str = None, + identity_group_id: str = None, + last_name: str = None, + mobile_phone: str = None, + screen_name: str = None, + user_ids: List[str] = None, + uuid: str = None, + mobile_device_info: str = None, + fb_bio: str = None, + fb_category: str = None, + fb_locale: str = None, + ig_followers_count: int = None, + tw_description: str = None, + tw_followers_count: int = None, + tw_following_count: int = None, + tw_statuses_count: int = None, + tw_location: str = None, + api_version: str = None, + country: str = None, + device_type: str = None, + language: str = None, + mcc: str = None, + mnc: str = None, + primary_device_os: str = None, + viber_version: str = None, + ): + self.id_ = id_ + if avatar_uri is not None: + self.avatar_uri = avatar_uri + if company is not None: + self.company = company + self.creation_time = creation_time + if display_name is not None: + self.display_name = display_name + if email_address is not None: + self.email_address = email_address + if extra_values is not None: + self.extra_values = extra_values + if first_name is not None: + self.first_name = first_name + if gender is not None: + self.gender = self._enum_matching(gender, SocMsgGender.list(), "gender") + if home_phone is not None: + self.home_phone = home_phone + if identity_group_id is not None: + self.identity_group_id = identity_group_id + if last_name is not None: + self.last_name = last_name + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if screen_name is not None: + self.screen_name = screen_name + self.type_ = self._enum_matching(type_, IdentityType.list(), "type_") + self.last_modified_time = last_modified_time + if user_ids is not None: + self.user_ids = user_ids + if uuid is not None: + self.uuid = uuid + if mobile_device_info is not None: + self.mobile_device_info = mobile_device_info + if fb_bio is not None: + self.fb_bio = fb_bio + if fb_category is not None: + self.fb_category = fb_category + if fb_locale is not None: + self.fb_locale = fb_locale + if ig_followers_count is not None: + self.ig_followers_count = ig_followers_count + if tw_description is not None: + self.tw_description = tw_description + if tw_followers_count is not None: + self.tw_followers_count = tw_followers_count + if tw_following_count is not None: + self.tw_following_count = tw_following_count + if tw_statuses_count is not None: + self.tw_statuses_count = tw_statuses_count + if tw_location is not None: + self.tw_location = tw_location + if api_version is not None: + self.api_version = api_version + if country is not None: + self.country = country + if device_type is not None: + self.device_type = device_type + if language is not None: + self.language = language + if mcc is not None: + self.mcc = mcc + if mnc is not None: + self.mnc = mnc + if primary_device_os is not None: + self.primary_device_os = primary_device_os + if viber_version is not None: + self.viber_version = viber_version diff --git a/src/ring_central/models/identity_type.py b/src/ring_central/models/identity_type.py new file mode 100644 index 00000000..7e93a1fc --- /dev/null +++ b/src/ring_central/models/identity_type.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class IdentityType(Enum): + """An enumeration representing different categories. + + :cvar APPLEMESSAGESFORBUSINESS: "AppleMessagesForBusiness" + :vartype APPLEMESSAGESFORBUSINESS: str + :cvar EMAIL: "Email" + :vartype EMAIL: str + :cvar ENGAGEMESSAGING: "EngageMessaging" + :vartype ENGAGEMESSAGING: str + :cvar FACEBOOK: "Facebook" + :vartype FACEBOOK: str + :cvar GOOGLEBUSINESSMESSAGES: "GoogleBusinessMessages" + :vartype GOOGLEBUSINESSMESSAGES: str + :cvar GOOGLEMYBUSINESS: "GoogleMyBusiness" + :vartype GOOGLEMYBUSINESS: str + :cvar INSTAGRAM: "Instagram" + :vartype INSTAGRAM: str + :cvar LINKEDIN: "Linkedin" + :vartype LINKEDIN: str + :cvar TWITTER: "Twitter" + :vartype TWITTER: str + :cvar VIBER: "Viber" + :vartype VIBER: str + :cvar WHATSAPP: "WhatsApp" + :vartype WHATSAPP: str + :cvar YOUTUBE: "Youtube" + :vartype YOUTUBE: str + """ + + APPLEMESSAGESFORBUSINESS = "AppleMessagesForBusiness" + EMAIL = "Email" + ENGAGEMESSAGING = "EngageMessaging" + FACEBOOK = "Facebook" + GOOGLEBUSINESSMESSAGES = "GoogleBusinessMessages" + GOOGLEMYBUSINESS = "GoogleMyBusiness" + INSTAGRAM = "Instagram" + LINKEDIN = "Linkedin" + TWITTER = "Twitter" + VIBER = "Viber" + WHATSAPP = "WhatsApp" + YOUTUBE = "Youtube" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, IdentityType._member_map_.values())) diff --git a/src/ring_central/models/ignore_request_body.py b/src/ring_central/models/ignore_request_body.py new file mode 100644 index 00000000..b7fd6d11 --- /dev/null +++ b/src/ring_central/models/ignore_request_body.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"device_id": "deviceId"}) +class IgnoreRequestBody(BaseModel): + """IgnoreRequestBody + + :param device_id: Internal device identifier + :type device_id: str + """ + + def __init__(self, device_id: str): + self.device_id = device_id diff --git a/src/ring_central/models/image_fill_mode.py b/src/ring_central/models/image_fill_mode.py new file mode 100644 index 00000000..26eed78c --- /dev/null +++ b/src/ring_central/models/image_fill_mode.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .base import OneOfBaseModel + + +class ImageFillMode1(Enum): + """An enumeration representing different categories. + + :cvar COVER: "cover" + :vartype COVER: str + :cvar REPEATHORIZONTALLY: "repeatHorizontally" + :vartype REPEATHORIZONTALLY: str + :cvar REPEATVERTICALLY: "repeatVertically" + :vartype REPEATVERTICALLY: str + :cvar REPEAT: "repeat" + :vartype REPEAT: str + """ + + COVER = "cover" + REPEATHORIZONTALLY = "repeatHorizontally" + REPEATVERTICALLY = "repeatVertically" + REPEAT = "repeat" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ImageFillMode1._member_map_.values())) + + +class ImageFillModeGuard(OneOfBaseModel): + class_list = {"ImageFillMode1Enum": str, "str": str} + + +ImageFillMode = Union[str, str] diff --git a/src/ring_central/models/inbound_faxes_info.py b/src/ring_central/models/inbound_faxes_info.py new file mode 100644 index 00000000..8e7d43a0 --- /dev/null +++ b/src/ring_central/models/inbound_faxes_info.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "notify_by_email": "notifyByEmail", + "notify_by_sms": "notifyBySms", + "advanced_email_addresses": "advancedEmailAddresses", + "advanced_sms_email_addresses": "advancedSmsEmailAddresses", + "include_attachment": "includeAttachment", + "mark_as_read": "markAsRead", + } +) +class InboundFaxesInfo(BaseModel): + """InboundFaxesInfo + + :param notify_by_email: Email notification flag, defaults to None + :type notify_by_email: bool, optional + :param notify_by_sms: SMS notification flag, defaults to None + :type notify_by_sms: bool, optional + :param advanced_email_addresses: List of recipient email addresses for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_email_addresses: List[str], optional + :param advanced_sms_email_addresses: List of recipient phone numbers for inbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_sms_email_addresses: List[str], optional + :param include_attachment: Indicates whether fax should be attached to email , defaults to None + :type include_attachment: bool, optional + :param mark_as_read: Indicates whether email should be automatically marked as read , defaults to None + :type mark_as_read: bool, optional + """ + + def __init__( + self, + notify_by_email: bool = None, + notify_by_sms: bool = None, + advanced_email_addresses: List[str] = None, + advanced_sms_email_addresses: List[str] = None, + include_attachment: bool = None, + mark_as_read: bool = None, + ): + if notify_by_email is not None: + self.notify_by_email = notify_by_email + if notify_by_sms is not None: + self.notify_by_sms = notify_by_sms + if advanced_email_addresses is not None: + self.advanced_email_addresses = advanced_email_addresses + if advanced_sms_email_addresses is not None: + self.advanced_sms_email_addresses = advanced_sms_email_addresses + if include_attachment is not None: + self.include_attachment = include_attachment + if mark_as_read is not None: + self.mark_as_read = mark_as_read diff --git a/src/ring_central/models/inbound_texts_info.py b/src/ring_central/models/inbound_texts_info.py new file mode 100644 index 00000000..430ef46d --- /dev/null +++ b/src/ring_central/models/inbound_texts_info.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "notify_by_email": "notifyByEmail", + "notify_by_sms": "notifyBySms", + "advanced_email_addresses": "advancedEmailAddresses", + "advanced_sms_email_addresses": "advancedSmsEmailAddresses", + } +) +class InboundTextsInfo(BaseModel): + """InboundTextsInfo + + :param notify_by_email: Email notification flag, defaults to None + :type notify_by_email: bool, optional + :param notify_by_sms: SMS notification flag, defaults to None + :type notify_by_sms: bool, optional + :param advanced_email_addresses: List of recipient email addresses for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_email_addresses: List[str], optional + :param advanced_sms_email_addresses: List of recipient phone numbers for inbound text message notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_sms_email_addresses: List[str], optional + """ + + def __init__( + self, + notify_by_email: bool = None, + notify_by_sms: bool = None, + advanced_email_addresses: List[str] = None, + advanced_sms_email_addresses: List[str] = None, + ): + if notify_by_email is not None: + self.notify_by_email = notify_by_email + if notify_by_sms is not None: + self.notify_by_sms = notify_by_sms + if advanced_email_addresses is not None: + self.advanced_email_addresses = advanced_email_addresses + if advanced_sms_email_addresses is not None: + self.advanced_sms_email_addresses = advanced_sms_email_addresses diff --git a/src/ring_central/models/insights_enum.py b/src/ring_central/models/insights_enum.py new file mode 100644 index 00000000..bc184e62 --- /dev/null +++ b/src/ring_central/models/insights_enum.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class InsightsEnum(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar KEYPHRASES: "KeyPhrases" + :vartype KEYPHRASES: str + :cvar EMOTION: "Emotion" + :vartype EMOTION: str + :cvar ABSTRACTIVESUMMARYLONG: "AbstractiveSummaryLong" + :vartype ABSTRACTIVESUMMARYLONG: str + :cvar ABSTRACTIVESUMMARYSHORT: "AbstractiveSummaryShort" + :vartype ABSTRACTIVESUMMARYSHORT: str + :cvar EXTRACTIVESUMMARY: "ExtractiveSummary" + :vartype EXTRACTIVESUMMARY: str + :cvar TOPICS: "Topics" + :vartype TOPICS: str + :cvar TALKTOLISTENRATIO: "TalkToListenRatio" + :vartype TALKTOLISTENRATIO: str + :cvar ENERGY: "Energy" + :vartype ENERGY: str + :cvar PACE: "Pace" + :vartype PACE: str + :cvar QUESTIONSASKED: "QuestionsAsked" + :vartype QUESTIONSASKED: str + """ + + ALL = "All" + KEYPHRASES = "KeyPhrases" + EMOTION = "Emotion" + ABSTRACTIVESUMMARYLONG = "AbstractiveSummaryLong" + ABSTRACTIVESUMMARYSHORT = "AbstractiveSummaryShort" + EXTRACTIVESUMMARY = "ExtractiveSummary" + TOPICS = "Topics" + TALKTOLISTENRATIO = "TalkToListenRatio" + ENERGY = "Energy" + PACE = "Pace" + QUESTIONSASKED = "QuestionsAsked" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, InsightsEnum._member_map_.values())) diff --git a/src/ring_central/models/interaction_input.py b/src/ring_central/models/interaction_input.py new file mode 100644 index 00000000..53350fc8 --- /dev/null +++ b/src/ring_central/models/interaction_input.py @@ -0,0 +1,168 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .insights_enum import InsightsEnum +from .speech_context_phrases_input import SpeechContextPhrasesInput + + +class InteractionInputEncoding(Enum): + """An enumeration representing different categories. + + :cvar MPEG: "Mpeg" + :vartype MPEG: str + :cvar MP4: "Mp4" + :vartype MP4: str + :cvar WAV: "Wav" + :vartype WAV: str + :cvar WEBM: "Webm" + :vartype WEBM: str + :cvar WEBP: "Webp" + :vartype WEBP: str + :cvar AAC: "Aac" + :vartype AAC: str + :cvar AVI: "Avi" + :vartype AVI: str + :cvar OGG: "Ogg" + :vartype OGG: str + """ + + MPEG = "Mpeg" + MP4 = "Mp4" + WAV = "Wav" + WEBM = "Webm" + WEBP = "Webp" + AAC = "Aac" + AVI = "Avi" + OGG = "Ogg" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, InteractionInputEncoding._member_map_.values()) + ) + + +class InteractionInputAudioType(Enum): + """An enumeration representing different categories. + + :cvar CALLCENTER: "CallCenter" + :vartype CALLCENTER: str + :cvar MEETING: "Meeting" + :vartype MEETING: str + :cvar EARNINGSCALLS: "EarningsCalls" + :vartype EARNINGSCALLS: str + :cvar INTERVIEW: "Interview" + :vartype INTERVIEW: str + :cvar PRESSCONFERENCE: "PressConference" + :vartype PRESSCONFERENCE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + """ + + CALLCENTER = "CallCenter" + MEETING = "Meeting" + EARNINGSCALLS = "EarningsCalls" + INTERVIEW = "Interview" + PRESSCONFERENCE = "PressConference" + VOICEMAIL = "Voicemail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, InteractionInputAudioType._member_map_.values()) + ) + + +@JsonMap( + { + "content_uri": "contentUri", + "language_code": "languageCode", + "audio_type": "audioType", + "separate_speaker_per_channel": "separateSpeakerPerChannel", + "speaker_count": "speakerCount", + "speaker_ids": "speakerIds", + "enable_voice_activity_detection": "enableVoiceActivityDetection", + "speech_contexts": "speechContexts", + } +) +class InteractionInput(BaseModel): + """InteractionInput + + :param content_uri: Publicly facing uri, defaults to None + :type content_uri: str, optional + :param encoding: The encoding of the original audio, defaults to None + :type encoding: InteractionInputEncoding, optional + :param language_code: Language spoken in the audio file., defaults to None + :type language_code: str, optional + :param source: Source of the audio file eg: Phone, RingCentral, GoogleMeet, Zoom etc, defaults to None + :type source: str, optional + :param audio_type: Type of the audio, defaults to None + :type audio_type: InteractionInputAudioType, optional + :param separate_speaker_per_channel: Set to True if the input audio is multi-channel and each channel has a separate speaker., defaults to None + :type separate_speaker_per_channel: bool, optional + :param speaker_count: Number of speakers in the file, omit parameter if unknown, defaults to None + :type speaker_count: int, optional + :param speaker_ids: Optional set of speakers to be identified from the call., defaults to None + :type speaker_ids: List[str], optional + :param enable_voice_activity_detection: Apply voice activity detection., defaults to None + :type enable_voice_activity_detection: bool, optional + :param insights: insights, defaults to None + :type insights: List[InsightsEnum], optional + :param speech_contexts: Indicates the words/phrases that will be used for boosting the transcript. This can help to boost accuracy for cases like Person Names, Company names etc., defaults to None + :type speech_contexts: List[SpeechContextPhrasesInput], optional + """ + + def __init__( + self, + content_uri: str = None, + encoding: InteractionInputEncoding = None, + language_code: str = None, + source: str = None, + audio_type: InteractionInputAudioType = None, + separate_speaker_per_channel: bool = None, + speaker_count: int = None, + speaker_ids: List[str] = None, + enable_voice_activity_detection: bool = None, + insights: List[InsightsEnum] = None, + speech_contexts: List[SpeechContextPhrasesInput] = None, + ): + if content_uri is not None: + self.content_uri = content_uri + if encoding is not None: + self.encoding = self._enum_matching( + encoding, InteractionInputEncoding.list(), "encoding" + ) + if language_code is not None: + self.language_code = language_code + if source is not None: + self.source = source + if audio_type is not None: + self.audio_type = self._enum_matching( + audio_type, InteractionInputAudioType.list(), "audio_type" + ) + if separate_speaker_per_channel is not None: + self.separate_speaker_per_channel = separate_speaker_per_channel + if speaker_count is not None: + self.speaker_count = speaker_count + if speaker_ids is not None: + self.speaker_ids = speaker_ids + if enable_voice_activity_detection is not None: + self.enable_voice_activity_detection = enable_voice_activity_detection + if insights is not None: + self.insights = self._define_list(insights, InsightsEnum) + if speech_contexts is not None: + self.speech_contexts = self._define_list( + speech_contexts, SpeechContextPhrasesInput + ) diff --git a/src/ring_central/models/interaction_object.py b/src/ring_central/models/interaction_object.py new file mode 100644 index 00000000..698e633f --- /dev/null +++ b/src/ring_central/models/interaction_object.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .utterance_insights_object import UtteranceInsightsObject +from .speaker_insights_object import SpeakerInsightsObject +from .conversational_insights_unit import ConversationalInsightsUnit + + +@JsonMap( + { + "utterance_insights": "utteranceInsights", + "speaker_insights": "speakerInsights", + "conversational_insights": "conversationalInsights", + } +) +class InteractionObject(BaseModel): + """InteractionObject + + :param utterance_insights: utterance_insights, defaults to None + :type utterance_insights: List[UtteranceInsightsObject], optional + :param speaker_insights: speaker_insights, defaults to None + :type speaker_insights: SpeakerInsightsObject, optional + :param conversational_insights: conversational_insights, defaults to None + :type conversational_insights: List[ConversationalInsightsUnit], optional + """ + + def __init__( + self, + utterance_insights: List[UtteranceInsightsObject] = None, + speaker_insights: SpeakerInsightsObject = None, + conversational_insights: List[ConversationalInsightsUnit] = None, + ): + if utterance_insights is not None: + self.utterance_insights = self._define_list( + utterance_insights, UtteranceInsightsObject + ) + if speaker_insights is not None: + self.speaker_insights = self._define_object( + speaker_insights, SpeakerInsightsObject + ) + if conversational_insights is not None: + self.conversational_insights = self._define_list( + conversational_insights, ConversationalInsightsUnit + ) diff --git a/src/ring_central/models/interval.py b/src/ring_central/models/interval.py new file mode 100644 index 00000000..aaaffa0d --- /dev/null +++ b/src/ring_central/models/interval.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class Interval(Enum): + """An enumeration representing different categories. + + :cvar HOUR: "Hour" + :vartype HOUR: str + :cvar DAY: "Day" + :vartype DAY: str + :cvar WEEK: "Week" + :vartype WEEK: str + :cvar MONTH: "Month" + :vartype MONTH: str + """ + + HOUR = "Hour" + DAY = "Day" + WEEK = "Week" + MONTH = "Month" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Interval._member_map_.values())) diff --git a/src/ring_central/models/invitee_list_resource.py b/src/ring_central/models/invitee_list_resource.py new file mode 100644 index 00000000..31c1bdf2 --- /dev/null +++ b/src/ring_central/models/invitee_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .invitee_model import InviteeModel +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class InviteeListResource(BaseModel): + """InviteeListResource + + :param records: records + :type records: List[InviteeModel] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[InviteeModel], paging: RcwPagingModel): + self.records = self._define_list(records, InviteeModel) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/invitee_model.py b/src/ring_central/models/invitee_model.py new file mode 100644 index 00000000..c487600b --- /dev/null +++ b/src/ring_central/models/invitee_model.py @@ -0,0 +1,109 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_domain_user_model import RcwDomainUserModel + + +class InviteeModelType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + USER = "User" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, InviteeModelType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "original_role": "originalRole", + "linked_user": "linkedUser", + "avatar_token": "avatarToken", + "type_": "type", + "qna_blocked": "qnaBlocked", + "send_invite": "sendInvite", + } +) +class InviteeModel(BaseModel): + """InviteeModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param original_role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type original_role: RcwRoleEnum + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + :param avatar_token: A token to access avatar image from CDN. Available only for authenticated panelists, defaults to None + :type avatar_token: str, optional + :param type_: The type of the participant specified in invite or determined at join time + :type type_: InviteeModelType + :param email: User's contact email, defaults to None + :type email: str, optional + :param qna_blocked: Boolean to indicate if the participant was blocked from Q&A , defaults to None + :type qna_blocked: bool, optional + :param send_invite: Indicates if invite/cancellation emails was sent to this invitee. + :type send_invite: bool + :param joined: Indicates that this invitee joined the session + :type joined: bool + """ + + def __init__( + self, + role: RcwRoleEnum, + original_role: RcwRoleEnum, + type_: InviteeModelType, + send_invite: bool, + joined: bool, + id_: str = None, + first_name: str = None, + last_name: str = None, + linked_user: RcwDomainUserModel = None, + avatar_token: str = None, + email: str = None, + qna_blocked: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + self.original_role = self._enum_matching( + original_role, RcwRoleEnum.list(), "original_role" + ) + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) + if avatar_token is not None: + self.avatar_token = avatar_token + self.type_ = self._enum_matching(type_, InviteeModelType.list(), "type_") + if email is not None: + self.email = email + if qna_blocked is not None: + self.qna_blocked = qna_blocked + self.send_invite = send_invite + self.joined = joined diff --git a/src/ring_central/models/invitee_resource.py b/src/ring_central/models/invitee_resource.py new file mode 100644 index 00000000..a2506665 --- /dev/null +++ b/src/ring_central/models/invitee_resource.py @@ -0,0 +1,95 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_domain_user_model import RcwDomainUserModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_invitee_type_enum import RcwInviteeTypeEnum + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "linked_user": "linkedUser", + "type_": "type", + "send_invite": "sendInvite", + "join_uri": "joinUri", + "phone_participant_code": "phoneParticipantCode", + } +) +class InviteeResource(BaseModel): + """InviteeResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param email: User's contact email, defaults to None + :type email: str, optional + :param job_title: Job title, defaults to None + :type job_title: str, optional + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param type_: The type of the webinar invitee, defaults to None + :type type_: RcwInviteeTypeEnum, optional + :param send_invite: Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. , defaults to None + :type send_invite: bool, optional + :param join_uri: Personalized join link for the Invitee, defaults to None + :type join_uri: str, optional + :param phone_participant_code: Phone (PSTN) participant code, defaults to None + :type phone_participant_code: str, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + role: RcwRoleEnum, + id_: str = None, + first_name: str = None, + last_name: str = None, + email: str = None, + job_title: str = None, + linked_user: RcwDomainUserModel = None, + type_: RcwInviteeTypeEnum = None, + send_invite: bool = None, + join_uri: str = None, + phone_participant_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if job_title is not None: + self.job_title = job_title + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + if type_ is not None: + self.type_ = self._enum_matching(type_, RcwInviteeTypeEnum.list(), "type_") + if send_invite is not None: + self.send_invite = send_invite + if join_uri is not None: + self.join_uri = join_uri + if phone_participant_code is not None: + self.phone_participant_code = phone_participant_code diff --git a/src/ring_central/models/ivr_call_handling_action_enum.py b/src/ring_central/models/ivr_call_handling_action_enum.py new file mode 100644 index 00000000..3af80b8d --- /dev/null +++ b/src/ring_central/models/ivr_call_handling_action_enum.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class IvrCallHandlingActionEnum(Enum): + """An enumeration representing different categories. + + :cvar OPERATOR: "Operator" + :vartype OPERATOR: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar BYPASS: "Bypass" + :vartype BYPASS: str + """ + + OPERATOR = "Operator" + DISCONNECT = "Disconnect" + BYPASS = "Bypass" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, IvrCallHandlingActionEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/ivr_menu_actions_info.py b/src/ring_central/models/ivr_menu_actions_info.py new file mode 100644 index 00000000..9bc38c58 --- /dev/null +++ b/src/ring_central/models/ivr_menu_actions_info.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .ivr_menu_extension_info import IvrMenuExtensionInfo + + +class IvrMenuActionsInfoAction(Enum): + """An enumeration representing different categories. + + :cvar CONNECT: "Connect" + :vartype CONNECT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar DIALBYNAME: "DialByName" + :vartype DIALBYNAME: str + :cvar TRANSFER: "Transfer" + :vartype TRANSFER: str + :cvar REPEAT: "Repeat" + :vartype REPEAT: str + :cvar RETURNTOROOT: "ReturnToRoot" + :vartype RETURNTOROOT: str + :cvar RETURNTOPREVIOUS: "ReturnToPrevious" + :vartype RETURNTOPREVIOUS: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar RETURNTOTOPLEVELMENU: "ReturnToTopLevelMenu" + :vartype RETURNTOTOPLEVELMENU: str + :cvar DONOTHING: "DoNothing" + :vartype DONOTHING: str + :cvar CONNECTTOOPERATOR: "ConnectToOperator" + :vartype CONNECTTOOPERATOR: str + """ + + CONNECT = "Connect" + VOICEMAIL = "Voicemail" + DIALBYNAME = "DialByName" + TRANSFER = "Transfer" + REPEAT = "Repeat" + RETURNTOROOT = "ReturnToRoot" + RETURNTOPREVIOUS = "ReturnToPrevious" + DISCONNECT = "Disconnect" + RETURNTOTOPLEVELMENU = "ReturnToTopLevelMenu" + DONOTHING = "DoNothing" + CONNECTTOOPERATOR = "ConnectToOperator" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, IvrMenuActionsInfoAction._member_map_.values()) + ) + + +@JsonMap({"phone_number": "phoneNumber"}) +class IvrMenuActionsInfo(BaseModel): + """IvrMenuActionsInfo + + :param input: Key. The following values are supported: numeric: '1' to '9' Star Hash NoInput , defaults to None + :type input: str, optional + :param action: Internal identifier of an answering rule, defaults to None + :type action: IvrMenuActionsInfoAction, optional + :param extension: For 'Connect' or 'Voicemail' actions only. Extension reference, defaults to None + :type extension: IvrMenuExtensionInfo, optional + :param phone_number: For 'Transfer' action only. PSTN number in E.164 format, defaults to None + :type phone_number: str, optional + """ + + def __init__( + self, + input: str = None, + action: IvrMenuActionsInfoAction = None, + extension: IvrMenuExtensionInfo = None, + phone_number: str = None, + ): + if input is not None: + self.input = input + if action is not None: + self.action = self._enum_matching( + action, IvrMenuActionsInfoAction.list(), "action" + ) + if extension is not None: + self.extension = self._define_object(extension, IvrMenuExtensionInfo) + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/ivr_menu_extension_info.py b/src/ring_central/models/ivr_menu_extension_info.py new file mode 100644 index 00000000..4def5a54 --- /dev/null +++ b/src/ring_central/models/ivr_menu_extension_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class IvrMenuExtensionInfo(BaseModel): + """For 'Connect' or 'Voicemail' actions only. Extension reference + + :param uri: Link to an extension resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param name: Name of an extension, defaults to None + :type name: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None, name: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/ivr_menu_info.py b/src/ring_central/models/ivr_menu_info.py new file mode 100644 index 00000000..52bfc1f3 --- /dev/null +++ b/src/ring_central/models/ivr_menu_info.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .ivr_menu_site_info import IvrMenuSiteInfo +from .ivr_menu_prompt_info import IvrMenuPromptInfo +from .ivr_menu_actions_info import IvrMenuActionsInfo + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class IvrMenuInfo(BaseModel): + """IvrMenuInfo + + :param id_: Internal identifier of an IVR Menu extension, defaults to None + :type id_: str, optional + :param uri: Link to an IVR Menu extension resource, defaults to None + :type uri: str, optional + :param name: First name of an IVR Menu user, defaults to None + :type name: str, optional + :param extension_number: Number of an IVR Menu extension, defaults to None + :type extension_number: str, optional + :param site: Site data, defaults to None + :type site: IvrMenuSiteInfo, optional + :param prompt: Prompt metadata, defaults to None + :type prompt: IvrMenuPromptInfo, optional + :param actions: Keys handling settings, defaults to None + :type actions: List[IvrMenuActionsInfo], optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + extension_number: str = None, + site: IvrMenuSiteInfo = None, + prompt: IvrMenuPromptInfo = None, + actions: List[IvrMenuActionsInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if site is not None: + self.site = self._define_object(site, IvrMenuSiteInfo) + if prompt is not None: + self.prompt = self._define_object(prompt, IvrMenuPromptInfo) + if actions is not None: + self.actions = self._define_list(actions, IvrMenuActionsInfo) diff --git a/src/ring_central/models/ivr_menu_list.py b/src/ring_central/models/ivr_menu_list.py new file mode 100644 index 00000000..28dadd49 --- /dev/null +++ b/src/ring_central/models/ivr_menu_list.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .ivr_menu_list_info import IvrMenuListInfo + + +@JsonMap({}) +class IvrMenuList(BaseModel): + """IvrMenuList + + :param uri: Link to an IVR Menu list, defaults to None + :type uri: str, optional + :param records: List of ivr menus, defaults to None + :type records: List[IvrMenuListInfo], optional + """ + + def __init__(self, uri: str = None, records: List[IvrMenuListInfo] = None): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, IvrMenuListInfo) diff --git a/src/ring_central/models/ivr_menu_list_info.py b/src/ring_central/models/ivr_menu_list_info.py new file mode 100644 index 00000000..669890da --- /dev/null +++ b/src/ring_central/models/ivr_menu_list_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class IvrMenuListInfo(BaseModel): + """IvrMenuListInfo + + :param id_: Internal identifier of an IVR Menu extension, defaults to None + :type id_: str, optional + :param uri: Link to an IVR Menu extension resource, defaults to None + :type uri: str, optional + :param name: First name of an IVR Menu user, defaults to None + :type name: str, optional + :param extension_number: Number of an IVR Menu extension, defaults to None + :type extension_number: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + extension_number: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/ivr_menu_prompt_info.py b/src/ring_central/models/ivr_menu_prompt_info.py new file mode 100644 index 00000000..a7c53e93 --- /dev/null +++ b/src/ring_central/models/ivr_menu_prompt_info.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .audio_prompt_info import AudioPromptInfo +from .prompt_language_info import PromptLanguageInfo + + +class IvrMenuPromptInfoMode(Enum): + """An enumeration representing different categories. + + :cvar AUDIO: "Audio" + :vartype AUDIO: str + :cvar TEXTTOSPEECH: "TextToSpeech" + :vartype TEXTTOSPEECH: str + """ + + AUDIO = "Audio" + TEXTTOSPEECH = "TextToSpeech" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, IvrMenuPromptInfoMode._member_map_.values())) + + +@JsonMap({}) +class IvrMenuPromptInfo(BaseModel): + """Prompt metadata + + :param mode: Prompt mode: custom media or text, defaults to None + :type mode: IvrMenuPromptInfoMode, optional + :param audio: For 'Audio' mode only. Prompt media reference, defaults to None + :type audio: AudioPromptInfo, optional + :param text: For 'TextToSpeech' mode only. Prompt text, defaults to None + :type text: str, optional + :param language: For 'TextToSpeech' mode only. Prompt language metadata, defaults to None + :type language: PromptLanguageInfo, optional + """ + + def __init__( + self, + mode: IvrMenuPromptInfoMode = None, + audio: AudioPromptInfo = None, + text: str = None, + language: PromptLanguageInfo = None, + ): + if mode is not None: + self.mode = self._enum_matching(mode, IvrMenuPromptInfoMode.list(), "mode") + if audio is not None: + self.audio = self._define_object(audio, AudioPromptInfo) + if text is not None: + self.text = text + if language is not None: + self.language = self._define_object(language, PromptLanguageInfo) diff --git a/src/ring_central/models/ivr_menu_site_info.py b/src/ring_central/models/ivr_menu_site_info.py new file mode 100644 index 00000000..d0b296c1 --- /dev/null +++ b/src/ring_central/models/ivr_menu_site_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class IvrMenuSiteInfo(BaseModel): + """Site data + + :param id_: Internal identifier of a site. If the value is not specified in request, then the `main-site` default value is used, defaults to None + :type id_: str, optional + :param name: Site name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/ivr_prompts.py b/src/ring_central/models/ivr_prompts.py new file mode 100644 index 00000000..26d79538 --- /dev/null +++ b/src/ring_central/models/ivr_prompts.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .prompt_info import PromptInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class IvrPrompts(BaseModel): + """IvrPrompts + + :param uri: Link to prompts library resource, defaults to None + :type uri: str, optional + :param records: List of Prompts, defaults to None + :type records: List[PromptInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PromptInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PromptInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/job_status_response.py b/src/ring_central/models/job_status_response.py new file mode 100644 index 00000000..cd37da63 --- /dev/null +++ b/src/ring_central/models/job_status_response.py @@ -0,0 +1,603 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .summary_api_response import SummaryApiResponse, SummaryApiResponseGuard +from .summary_output import SummaryOutput +from .cai_error_response import CaiErrorResponse +from .punctuate_api_response import PunctuateApiResponse, PunctuateApiResponseGuard +from .punctuate_output import PunctuateOutput +from .diarized_object import DiarizedObject +from .speaker_identification_object import SpeakerIdentificationObject +from .transcribed_object import TranscribedObject +from .emotion_segment import EmotionSegment +from .interaction_object import InteractionObject + + +class JobStatusResponse1Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse1Status._member_map_.values()) + ) + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse1(BaseModel): + """JobStatusResponse1 + + :param status: status, defaults to None + :type status: JobStatusResponse1Status, optional + :param response: response, defaults to None + :type response: SummaryApiResponse, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse1Status = None, + response: SummaryApiResponse = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse1Status.list(), "status" + ) + if response is not None: + self.response = SummaryApiResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse2Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse2Status._member_map_.values()) + ) + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse2(BaseModel): + """JobStatusResponse2 + + :param status: status, defaults to None + :type status: JobStatusResponse2Status, optional + :param response: response, defaults to None + :type response: PunctuateApiResponse, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse2Status = None, + response: PunctuateApiResponse = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse2Status.list(), "status" + ) + if response is not None: + self.response = PunctuateApiResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse3Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse3Status._member_map_.values()) + ) + + +class JobStatusResponse3ResponseGuard(OneOfBaseModel): + class_list = { + "DiarizedObject": DiarizedObject, + "CaiErrorResponse": CaiErrorResponse, + } + + +JobStatusResponse3Response = Union[DiarizedObject, CaiErrorResponse] + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse3(BaseModel): + """JobStatusResponse3 + + :param status: status, defaults to None + :type status: JobStatusResponse3Status, optional + :param response: response, defaults to None + :type response: JobStatusResponse3Response, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse3Status = None, + response: JobStatusResponse3Response = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse3Status.list(), "status" + ) + if response is not None: + self.response = JobStatusResponse3ResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse4Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse4Status._member_map_.values()) + ) + + +class JobStatusResponse4ResponseGuard(OneOfBaseModel): + class_list = { + "SpeakerIdentificationObject": SpeakerIdentificationObject, + "CaiErrorResponse": CaiErrorResponse, + } + + +JobStatusResponse4Response = Union[SpeakerIdentificationObject, CaiErrorResponse] + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse4(BaseModel): + """JobStatusResponse4 + + :param status: status, defaults to None + :type status: JobStatusResponse4Status, optional + :param response: response, defaults to None + :type response: JobStatusResponse4Response, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse4Status = None, + response: JobStatusResponse4Response = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse4Status.list(), "status" + ) + if response is not None: + self.response = JobStatusResponse4ResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse5Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse5Status._member_map_.values()) + ) + + +class JobStatusResponse5ResponseGuard(OneOfBaseModel): + class_list = { + "TranscribedObject": TranscribedObject, + "CaiErrorResponse": CaiErrorResponse, + } + + +JobStatusResponse5Response = Union[TranscribedObject, CaiErrorResponse] + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse5(BaseModel): + """JobStatusResponse5 + + :param status: status, defaults to None + :type status: JobStatusResponse5Status, optional + :param response: response, defaults to None + :type response: JobStatusResponse5Response, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse5Status = None, + response: JobStatusResponse5Response = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse5Status.list(), "status" + ) + if response is not None: + self.response = JobStatusResponse5ResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse6Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse6Status._member_map_.values()) + ) + + +class JobStatusResponse6ResponseGuard(OneOfBaseModel): + class_list = { + "List[EmotionSegment]": List[EmotionSegment], + "CaiErrorResponse": CaiErrorResponse, + } + + +JobStatusResponse6Response = Union[List[EmotionSegment], CaiErrorResponse] + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse6(BaseModel): + """JobStatusResponse6 + + :param status: status, defaults to None + :type status: JobStatusResponse6Status, optional + :param response: response, defaults to None + :type response: JobStatusResponse6Response, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse6Status = None, + response: JobStatusResponse6Response = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse6Status.list(), "status" + ) + if response is not None: + self.response = JobStatusResponse6ResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponse7Status(Enum): + """An enumeration representing different categories. + + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar FAIL: "Fail" + :vartype FAIL: str + """ + + SUCCESS = "Success" + FAIL = "Fail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, JobStatusResponse7Status._member_map_.values()) + ) + + +class JobStatusResponse7ResponseGuard(OneOfBaseModel): + class_list = { + "InteractionObject": InteractionObject, + "CaiErrorResponse": CaiErrorResponse, + } + + +JobStatusResponse7Response = Union[InteractionObject, CaiErrorResponse] + + +@JsonMap( + { + "job_id": "jobId", + "creation_time": "creationTime", + "completion_time": "completionTime", + "expiration_time": "expirationTime", + } +) +class JobStatusResponse7(BaseModel): + """JobStatusResponse7 + + :param status: status, defaults to None + :type status: JobStatusResponse7Status, optional + :param response: response, defaults to None + :type response: JobStatusResponse7Response, optional + :param job_id: job_id, defaults to None + :type job_id: str, optional + :param creation_time: creation_time, defaults to None + :type creation_time: str, optional + :param completion_time: completion_time, defaults to None + :type completion_time: str, optional + :param expiration_time: expiration_time, defaults to None + :type expiration_time: str, optional + """ + + def __init__( + self, + status: JobStatusResponse7Status = None, + response: JobStatusResponse7Response = None, + job_id: str = None, + creation_time: str = None, + completion_time: str = None, + expiration_time: str = None, + ): + if status is not None: + self.status = self._enum_matching( + status, JobStatusResponse7Status.list(), "status" + ) + if response is not None: + self.response = JobStatusResponse7ResponseGuard.return_one_of(response) + if job_id is not None: + self.job_id = job_id + if creation_time is not None: + self.creation_time = creation_time + if completion_time is not None: + self.completion_time = completion_time + if expiration_time is not None: + self.expiration_time = expiration_time + + +class JobStatusResponseGuard(OneOfBaseModel): + class_list = { + "JobStatusResponse1": JobStatusResponse1, + "JobStatusResponse2": JobStatusResponse2, + "JobStatusResponse3": JobStatusResponse3, + "JobStatusResponse4": JobStatusResponse4, + "JobStatusResponse5": JobStatusResponse5, + "JobStatusResponse6": JobStatusResponse6, + "JobStatusResponse7": JobStatusResponse7, + } + + +JobStatusResponse = Union[ + JobStatusResponse1, + JobStatusResponse2, + JobStatusResponse3, + JobStatusResponse4, + JobStatusResponse5, + JobStatusResponse6, + JobStatusResponse7, +] diff --git a/src/ring_central/models/key_info.py b/src/ring_central/models/key_info.py new file mode 100644 index 00000000..471ed42c --- /dev/null +++ b/src/ring_central/models/key_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"extension_number": "extensionNumber"}) +class KeyInfo(BaseModel): + """Additional info about the key + + :param extension_number: Extension's number, defaults to None + :type extension_number: str, optional + :param name: Extension's name, defaults to None + :type name: str, optional + """ + + def __init__(self, extension_number: str = None, name: str = None): + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/language_info.py b/src/ring_central/models/language_info.py new file mode 100644 index 00000000..a2936c18 --- /dev/null +++ b/src/ring_central/models/language_info.py @@ -0,0 +1,74 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "formatting_locale": "formattingLocale", + "locale_code": "localeCode", + "iso_code": "isoCode", + "time_format": "timeFormat", + "date_format": "dateFormat", + } +) +class LanguageInfo(BaseModel): + """User interface language data + + :param id_: Internal identifier of a language, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a language, defaults to None + :type uri: str, optional + :param greeting: Indicates whether a language is available as greeting language , defaults to None + :type greeting: bool, optional + :param formatting_locale: Indicates whether a language is available as formatting locale , defaults to None + :type formatting_locale: bool, optional + :param locale_code: Localization code of a language, defaults to None + :type locale_code: str, optional + :param iso_code: Country code according to the ISO standard, see [ISO 3166](https://www.iso.org/iso-3166-country-codes.html), defaults to None + :type iso_code: str, optional + :param name: Official name of a language, defaults to None + :type name: str, optional + :param ui: Indicates whether a language is available as UI language , defaults to None + :type ui: bool, optional + :param time_format: Time format, defaults to None + :type time_format: str, optional + :param date_format: Date format, defaults to None + :type date_format: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + greeting: bool = None, + formatting_locale: bool = None, + locale_code: str = None, + iso_code: str = None, + name: str = None, + ui: bool = None, + time_format: str = None, + date_format: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if greeting is not None: + self.greeting = greeting + if formatting_locale is not None: + self.formatting_locale = formatting_locale + if locale_code is not None: + self.locale_code = locale_code + if iso_code is not None: + self.iso_code = iso_code + if name is not None: + self.name = name + if ui is not None: + self.ui = ui + if time_format is not None: + self.time_format = time_format + if date_format is not None: + self.date_format = date_format diff --git a/src/ring_central/models/language_list.py b/src/ring_central/models/language_list.py new file mode 100644 index 00000000..874c8484 --- /dev/null +++ b/src/ring_central/models/language_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .language_info import LanguageInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class LanguageList(BaseModel): + """LanguageList + + :param uri: Canonical URI of the language list resource, defaults to None + :type uri: str, optional + :param records: Language data, defaults to None + :type records: List[LanguageInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[LanguageInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, LanguageInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/last_modified_by_info.py b/src/ring_central/models/last_modified_by_info.py new file mode 100644 index 00000000..1536363c --- /dev/null +++ b/src/ring_central/models/last_modified_by_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class LastModifiedByInfo(BaseModel): + """Note last modification information + + :param id_: Internal identifier of the user who last updated the note, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/line_pooling.py b/src/ring_central/models/line_pooling.py new file mode 100644 index 00000000..adb9c2a1 --- /dev/null +++ b/src/ring_central/models/line_pooling.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class LinePooling(Enum): + """An enumeration representing different categories. + + :cvar HOST: "Host" + :vartype HOST: str + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar NONE: "None" + :vartype NONE: str + """ + + HOST = "Host" + GUEST = "Guest" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, LinePooling._member_map_.values())) diff --git a/src/ring_central/models/line_pooling_enum.py b/src/ring_central/models/line_pooling_enum.py new file mode 100644 index 00000000..5c4d437e --- /dev/null +++ b/src/ring_central/models/line_pooling_enum.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class LinePoolingEnum(Enum): + """An enumeration representing different categories. + + :cvar HOST: "Host" + :vartype HOST: str + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar NONE: "None" + :vartype NONE: str + """ + + HOST = "Host" + GUEST = "Guest" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, LinePoolingEnum._member_map_.values())) diff --git a/src/ring_central/models/list_a2_p_batches_status.py b/src/ring_central/models/list_a2_p_batches_status.py new file mode 100644 index 00000000..eb16b85e --- /dev/null +++ b/src/ring_central/models/list_a2_p_batches_status.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListA2PBatchesStatus(Enum): + """An enumeration representing different categories. + + :cvar QUEUED: "Queued" + :vartype QUEUED: str + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + :cvar SENT: "Sent" + :vartype SENT: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + QUEUED = "Queued" + PROCESSING = "Processing" + SENT = "Sent" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListA2PBatchesStatus._member_map_.values())) diff --git a/src/ring_central/models/list_a2_psms_view.py b/src/ring_central/models/list_a2_psms_view.py new file mode 100644 index 00000000..f1644d49 --- /dev/null +++ b/src/ring_central/models/list_a2_psms_view.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListA2PsmsView(Enum): + """An enumeration representing different categories. + + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + :cvar DETAILED: "Detailed" + :vartype DETAILED: str + """ + + SIMPLE = "Simple" + DETAILED = "Detailed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListA2PsmsView._member_map_.values())) diff --git a/src/ring_central/models/list_account_phone_numbers_status.py b/src/ring_central/models/list_account_phone_numbers_status.py new file mode 100644 index 00000000..9db20b6b --- /dev/null +++ b/src/ring_central/models/list_account_phone_numbers_status.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListAccountPhoneNumbersStatus(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar PORTEDIN: "PortedIn" + :vartype PORTEDIN: str + :cvar TEMPORARY: "Temporary" + :vartype TEMPORARY: str + """ + + NORMAL = "Normal" + PENDING = "Pending" + PORTEDIN = "PortedIn" + TEMPORARY = "Temporary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListAccountPhoneNumbersStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/list_account_phone_numbers_usage_type.py b/src/ring_central/models/list_account_phone_numbers_usage_type.py new file mode 100644 index 00000000..834b72d0 --- /dev/null +++ b/src/ring_central/models/list_account_phone_numbers_usage_type.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListAccountPhoneNumbersUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar MEETINGSNUMBER: "MeetingsNumber" + :vartype MEETINGSNUMBER: str + :cvar BUSINESSMOBILENUMBER: "BusinessMobileNumber" + :vartype BUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + :cvar INTEGRATIONNUMBER: "IntegrationNumber" + :vartype INTEGRATIONNUMBER: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + CONFERENCINGNUMBER = "ConferencingNumber" + MEETINGSNUMBER = "MeetingsNumber" + BUSINESSMOBILENUMBER = "BusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + INTEGRATIONNUMBER = "IntegrationNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ListAccountPhoneNumbersUsageType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/list_answering_rules_type.py b/src/ring_central/models/list_answering_rules_type.py new file mode 100644 index 00000000..59c9efdb --- /dev/null +++ b/src/ring_central/models/list_answering_rules_type.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListAnsweringRulesType(Enum): + """An enumeration representing different categories. + + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListAnsweringRulesType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_answering_rules_view.py b/src/ring_central/models/list_answering_rules_view.py new file mode 100644 index 00000000..fea7d856 --- /dev/null +++ b/src/ring_central/models/list_answering_rules_view.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListAnsweringRulesView(Enum): + """An enumeration representing different categories. + + :cvar DETAILED: "Detailed" + :vartype DETAILED: str + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + """ + + DETAILED = "Detailed" + SIMPLE = "Simple" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListAnsweringRulesView._member_map_.values()) + ) diff --git a/src/ring_central/models/list_automatic_location_updates_users_type.py b/src/ring_central/models/list_automatic_location_updates_users_type.py new file mode 100644 index 00000000..cbe2c103 --- /dev/null +++ b/src/ring_central/models/list_automatic_location_updates_users_type.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListAutomaticLocationUpdatesUsersType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + """ + + USER = "User" + LIMITED = "Limited" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ListAutomaticLocationUpdatesUsersType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/list_call_recording_custom_greetings_type.py b/src/ring_central/models/list_call_recording_custom_greetings_type.py new file mode 100644 index 00000000..dd9bf6c7 --- /dev/null +++ b/src/ring_central/models/list_call_recording_custom_greetings_type.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListCallRecordingCustomGreetingsType(Enum): + """An enumeration representing different categories. + + :cvar STARTRECORDING: "StartRecording" + :vartype STARTRECORDING: str + :cvar STOPRECORDING: "StopRecording" + :vartype STOPRECORDING: str + :cvar AUTOMATICRECORDING: "AutomaticRecording" + :vartype AUTOMATICRECORDING: str + """ + + STARTRECORDING = "StartRecording" + STOPRECORDING = "StopRecording" + AUTOMATICRECORDING = "AutomaticRecording" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ListCallRecordingCustomGreetingsType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/list_chat_notes_new_status.py b/src/ring_central/models/list_chat_notes_new_status.py new file mode 100644 index 00000000..3defa1b3 --- /dev/null +++ b/src/ring_central/models/list_chat_notes_new_status.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListChatNotesNewStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar DRAFT: "Draft" + :vartype DRAFT: str + """ + + ACTIVE = "Active" + DRAFT = "Draft" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListChatNotesNewStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/list_chat_tasks_new_status.py b/src/ring_central/models/list_chat_tasks_new_status.py new file mode 100644 index 00000000..08d6d5e8 --- /dev/null +++ b/src/ring_central/models/list_chat_tasks_new_status.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListChatTasksNewStatus(Enum): + """An enumeration representing different categories. + + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + PENDING = "Pending" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListChatTasksNewStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/list_company_answering_rule_info.py b/src/ring_central/models/list_company_answering_rule_info.py new file mode 100644 index 00000000..cc0d329b --- /dev/null +++ b/src/ring_central/models/list_company_answering_rule_info.py @@ -0,0 +1,88 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .called_number_info import CalledNumberInfo +from .company_answering_rule_extension_info import CompanyAnsweringRuleExtensionInfo + + +class ListCompanyAnsweringRuleInfoType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ListCompanyAnsweringRuleInfoType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "type_": "type", "called_numbers": "calledNumbers"}) +class ListCompanyAnsweringRuleInfo(BaseModel): + """ListCompanyAnsweringRuleInfo + + :param id_: Internal identifier of an answering rule, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an answering rule, defaults to None + :type uri: str, optional + :param enabled: Specifies if the rule is active or inactive. The default value is `true`, defaults to None + :type enabled: bool, optional + :param type_: Type of an answering rule, the default value is 'Custom' = ['BusinessHours', 'AfterHours', 'Custom'], defaults to None + :type type_: ListCompanyAnsweringRuleInfoType, optional + :param name: Name of an answering rule specified by user. Max number of symbols is 30. The default value is 'My Rule N' where 'N' is the first free number, defaults to None + :type name: str, optional + :param called_numbers: Answering rules are applied when calling to selected number(s), defaults to None + :type called_numbers: List[CalledNumberInfo], optional + :param extension: extension, defaults to None + :type extension: CompanyAnsweringRuleExtensionInfo, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + enabled: bool = None, + type_: ListCompanyAnsweringRuleInfoType = None, + name: str = None, + called_numbers: List[CalledNumberInfo] = None, + extension: CompanyAnsweringRuleExtensionInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if enabled is not None: + self.enabled = enabled + if type_ is not None: + self.type_ = self._enum_matching( + type_, ListCompanyAnsweringRuleInfoType.list(), "type_" + ) + if name is not None: + self.name = name + if called_numbers is not None: + self.called_numbers = self._define_list(called_numbers, CalledNumberInfo) + if extension is not None: + self.extension = self._define_object( + extension, CompanyAnsweringRuleExtensionInfo + ) diff --git a/src/ring_central/models/list_data_export_tasks_new_status.py b/src/ring_central/models/list_data_export_tasks_new_status.py new file mode 100644 index 00000000..d0ccb3c4 --- /dev/null +++ b/src/ring_central/models/list_data_export_tasks_new_status.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListDataExportTasksNewStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar EXPIRED: "Expired" + :vartype EXPIRED: str + """ + + ACCEPTED = "Accepted" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + FAILED = "Failed" + EXPIRED = "Expired" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListDataExportTasksNewStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/list_devices_automatic_location_updates.py b/src/ring_central/models/list_devices_automatic_location_updates.py new file mode 100644 index 00000000..8cd28771 --- /dev/null +++ b/src/ring_central/models/list_devices_automatic_location_updates.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_device_info import AutomaticLocationUpdatesDeviceInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class ListDevicesAutomaticLocationUpdates(BaseModel): + """ListDevicesAutomaticLocationUpdates + + :param uri: Link to a devices resource, defaults to None + :type uri: str, optional + :param records: List of the user(s) devices with the current status of Emergency Address Auto Update Feature , defaults to None + :type records: List[AutomaticLocationUpdatesDeviceInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[AutomaticLocationUpdatesDeviceInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list( + records, AutomaticLocationUpdatesDeviceInfo + ) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/list_directory_entries_type.py b/src/ring_central/models/list_directory_entries_type.py new file mode 100644 index 00000000..e15533d6 --- /dev/null +++ b/src/ring_central/models/list_directory_entries_type.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListDirectoryEntriesType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + """ + + USER = "User" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + EXTERNAL = "External" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListDirectoryEntriesType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_emergency_locations_order_by.py b/src/ring_central/models/list_emergency_locations_order_by.py new file mode 100644 index 00000000..d8e99b9f --- /dev/null +++ b/src/ring_central/models/list_emergency_locations_order_by.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListEmergencyLocationsOrderBy(Enum): + """An enumeration representing different categories. + + :cvar _NAME: "+name" + :vartype _NAME: str + :cvar _SITENAME: "+siteName" + :vartype _SITENAME: str + :cvar _ADDRESS: "+address" + :vartype _ADDRESS: str + :cvar _ADDRESSSTATUS: "+addressStatus" + :vartype _ADDRESSSTATUS: str + :cvar _USAGESTATUS: "+usageStatus" + :vartype _USAGESTATUS: str + :cvar _NAME: "-name" + :vartype _NAME: str + :cvar _SITENAME: "-siteName" + :vartype _SITENAME: str + :cvar _ADDRESS: "-address" + :vartype _ADDRESS: str + :cvar _ADDRESSSTATUS: "-addressStatus" + :vartype _ADDRESSSTATUS: str + :cvar _USAGESTATUS: "-usageStatus" + :vartype _USAGESTATUS: str + """ + + _NAME = "+name" + _SITENAME = "+siteName" + _ADDRESS = "+address" + _ADDRESSSTATUS = "+addressStatus" + _USAGESTATUS = "+usageStatus" + _NAME = "-name" + _SITENAME = "-siteName" + _ADDRESS = "-address" + _ADDRESSSTATUS = "-addressStatus" + _USAGESTATUS = "-usageStatus" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListEmergencyLocationsOrderBy._member_map_.values()) + ) diff --git a/src/ring_central/models/list_enrolled_speakers.py b/src/ring_central/models/list_enrolled_speakers.py new file mode 100644 index 00000000..02400400 --- /dev/null +++ b/src/ring_central/models/list_enrolled_speakers.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .paging_schema import PagingSchema +from .enrollment_status import EnrollmentStatus + + +@JsonMap({}) +class ListEnrolledSpeakers(BaseModel): + """ListEnrolledSpeakers + + :param paging: paging + :type paging: PagingSchema + :param records: records + :type records: List[EnrollmentStatus] + """ + + def __init__(self, paging: PagingSchema, records: List[EnrollmentStatus]): + self.paging = self._define_object(paging, PagingSchema) + self.records = self._define_list(records, EnrollmentStatus) diff --git a/src/ring_central/models/list_extension_devices_type.py b/src/ring_central/models/list_extension_devices_type.py new file mode 100644 index 00000000..91e3c472 --- /dev/null +++ b/src/ring_central/models/list_extension_devices_type.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListExtensionDevicesType(Enum): + """An enumeration representing different categories. + + :cvar HARDPHONE: "HardPhone" + :vartype HARDPHONE: str + :cvar SOFTPHONE: "SoftPhone" + :vartype SOFTPHONE: str + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar MOBILEDEVICE: "MobileDevice" + :vartype MOBILEDEVICE: str + :cvar BLA: "BLA" + :vartype BLA: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + :cvar WEBRTC: "WebRTC" + :vartype WEBRTC: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + HARDPHONE = "HardPhone" + SOFTPHONE = "SoftPhone" + OTHERPHONE = "OtherPhone" + MOBILEDEVICE = "MobileDevice" + BLA = "BLA" + PAGING = "Paging" + WEBPHONE = "WebPhone" + WEBRTC = "WebRTC" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListExtensionDevicesType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_extension_phone_numbers_status.py b/src/ring_central/models/list_extension_phone_numbers_status.py new file mode 100644 index 00000000..51c2d4f3 --- /dev/null +++ b/src/ring_central/models/list_extension_phone_numbers_status.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListExtensionPhoneNumbersStatus(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar PORTEDIN: "PortedIn" + :vartype PORTEDIN: str + :cvar TEMPORARY: "Temporary" + :vartype TEMPORARY: str + """ + + NORMAL = "Normal" + PENDING = "Pending" + PORTEDIN = "PortedIn" + TEMPORARY = "Temporary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, ListExtensionPhoneNumbersStatus._member_map_.values() + ) + ) diff --git a/src/ring_central/models/list_extension_phone_numbers_usage_type.py b/src/ring_central/models/list_extension_phone_numbers_usage_type.py new file mode 100644 index 00000000..da59af3e --- /dev/null +++ b/src/ring_central/models/list_extension_phone_numbers_usage_type.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListExtensionPhoneNumbersUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar BUSINESSMOBILENUMBER: "BusinessMobileNumber" + :vartype BUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + :cvar INTEGRATIONNUMBER: "IntegrationNumber" + :vartype INTEGRATIONNUMBER: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + BUSINESSMOBILENUMBER = "BusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + INTEGRATIONNUMBER = "IntegrationNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ListExtensionPhoneNumbersUsageType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/list_extensions_status.py b/src/ring_central/models/list_extensions_status.py new file mode 100644 index 00000000..33ebd668 --- /dev/null +++ b/src/ring_central/models/list_extensions_status.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListExtensionsStatus(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + :cvar UNASSIGNED: "Unassigned" + :vartype UNASSIGNED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + NOTACTIVATED = "NotActivated" + UNASSIGNED = "Unassigned" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListExtensionsStatus._member_map_.values())) diff --git a/src/ring_central/models/list_extensions_type.py b/src/ring_central/models/list_extensions_type.py new file mode 100644 index 00000000..f6aa1d9b --- /dev/null +++ b/src/ring_central/models/list_extensions_type.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListExtensionsType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar PROXYADMIN: "ProxyAdmin" + :vartype PROXYADMIN: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar SITE: "Site" + :vartype SITE: str + """ + + USER = "User" + FAXUSER = "FaxUser" + FLEXIBLEUSER = "FlexibleUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + BOT = "Bot" + PROXYADMIN = "ProxyAdmin" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + SITE = "Site" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListExtensionsType._member_map_.values())) diff --git a/src/ring_central/models/list_fax_cover_pages_response.py b/src/ring_central/models/list_fax_cover_pages_response.py new file mode 100644 index 00000000..9c254134 --- /dev/null +++ b/src/ring_central/models/list_fax_cover_pages_response.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .fax_cover_page_info import FaxCoverPageInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class ListFaxCoverPagesResponse(BaseModel): + """ListFaxCoverPagesResponse + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[FaxCoverPageInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[FaxCoverPageInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, FaxCoverPageInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/list_glip_chats_new_type.py b/src/ring_central/models/list_glip_chats_new_type.py new file mode 100644 index 00000000..17af1b0f --- /dev/null +++ b/src/ring_central/models/list_glip_chats_new_type.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListGlipChatsNewType(Enum): + """An enumeration representing different categories. + + :cvar PERSONAL: "Personal" + :vartype PERSONAL: str + :cvar DIRECT: "Direct" + :vartype DIRECT: str + :cvar GROUP: "Group" + :vartype GROUP: str + :cvar TEAM: "Team" + :vartype TEAM: str + :cvar EVERYONE: "Everyone" + :vartype EVERYONE: str + """ + + PERSONAL = "Personal" + DIRECT = "Direct" + GROUP = "Group" + TEAM = "Team" + EVERYONE = "Everyone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListGlipChatsNewType._member_map_.values())) diff --git a/src/ring_central/models/list_locations_order_by.py b/src/ring_central/models/list_locations_order_by.py new file mode 100644 index 00000000..fe5f9859 --- /dev/null +++ b/src/ring_central/models/list_locations_order_by.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListLocationsOrderBy(Enum): + """An enumeration representing different categories. + + :cvar NPA: "Npa" + :vartype NPA: str + :cvar CITY: "City" + :vartype CITY: str + """ + + NPA = "Npa" + CITY = "City" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListLocationsOrderBy._member_map_.values())) diff --git a/src/ring_central/models/list_meeting_recordings_response.py b/src/ring_central/models/list_meeting_recordings_response.py new file mode 100644 index 00000000..26bf53ee --- /dev/null +++ b/src/ring_central/models/list_meeting_recordings_response.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_recordings import MeetingRecordings +from .meeting_recordings_paging_info import MeetingRecordingsPagingInfo +from .meeting_recordings_navigation_info import MeetingRecordingsNavigationInfo + + +@JsonMap({}) +class ListMeetingRecordingsResponse(BaseModel): + """ListMeetingRecordingsResponse + + :param records: records, defaults to None + :type records: List[MeetingRecordings], optional + :param paging: paging, defaults to None + :type paging: MeetingRecordingsPagingInfo, optional + :param navigation: navigation, defaults to None + :type navigation: MeetingRecordingsNavigationInfo, optional + """ + + def __init__( + self, + records: List[MeetingRecordings] = None, + paging: MeetingRecordingsPagingInfo = None, + navigation: MeetingRecordingsNavigationInfo = None, + ): + if records is not None: + self.records = self._define_list(records, MeetingRecordings) + if paging is not None: + self.paging = self._define_object(paging, MeetingRecordingsPagingInfo) + if navigation is not None: + self.navigation = self._define_object( + navigation, MeetingRecordingsNavigationInfo + ) diff --git a/src/ring_central/models/list_recent_chats_new_type.py b/src/ring_central/models/list_recent_chats_new_type.py new file mode 100644 index 00000000..3585e8a6 --- /dev/null +++ b/src/ring_central/models/list_recent_chats_new_type.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListRecentChatsNewType(Enum): + """An enumeration representing different categories. + + :cvar EVERYONE: "Everyone" + :vartype EVERYONE: str + :cvar GROUP: "Group" + :vartype GROUP: str + :cvar PERSONAL: "Personal" + :vartype PERSONAL: str + :cvar DIRECT: "Direct" + :vartype DIRECT: str + :cvar TEAM: "Team" + :vartype TEAM: str + """ + + EVERYONE = "Everyone" + GROUP = "Group" + PERSONAL = "Personal" + DIRECT = "Direct" + TEAM = "Team" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListRecentChatsNewType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_standard_greetings_type.py b/src/ring_central/models/list_standard_greetings_type.py new file mode 100644 index 00000000..77f6e77d --- /dev/null +++ b/src/ring_central/models/list_standard_greetings_type.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListStandardGreetingsType(Enum): + """An enumeration representing different categories. + + :cvar INTRODUCTORY: "Introductory" + :vartype INTRODUCTORY: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar CONNECTINGMESSAGE: "ConnectingMessage" + :vartype CONNECTINGMESSAGE: str + :cvar CONNECTINGAUDIO: "ConnectingAudio" + :vartype CONNECTINGAUDIO: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar UNAVAILABLE: "Unavailable" + :vartype UNAVAILABLE: str + :cvar HOLDMUSIC: "HoldMusic" + :vartype HOLDMUSIC: str + :cvar COMPANY: "Company" + :vartype COMPANY: str + """ + + INTRODUCTORY = "Introductory" + ANNOUNCEMENT = "Announcement" + CONNECTINGMESSAGE = "ConnectingMessage" + CONNECTINGAUDIO = "ConnectingAudio" + VOICEMAIL = "Voicemail" + UNAVAILABLE = "Unavailable" + HOLDMUSIC = "HoldMusic" + COMPANY = "Company" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListStandardGreetingsType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_standard_greetings_usage_type.py b/src/ring_central/models/list_standard_greetings_usage_type.py new file mode 100644 index 00000000..28149a93 --- /dev/null +++ b/src/ring_central/models/list_standard_greetings_usage_type.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListStandardGreetingsUsageType(Enum): + """An enumeration representing different categories. + + :cvar USEREXTENSIONANSWERINGRULE: "UserExtensionAnsweringRule" + :vartype USEREXTENSIONANSWERINGRULE: str + :cvar EXTENSIONANSWERINGRULE: "ExtensionAnsweringRule" + :vartype EXTENSIONANSWERINGRULE: str + :cvar DEPARTMENTEXTENSIONANSWERINGRULE: "DepartmentExtensionAnsweringRule" + :vartype DEPARTMENTEXTENSIONANSWERINGRULE: str + :cvar COMPANYANSWERINGRULE: "CompanyAnsweringRule" + :vartype COMPANYANSWERINGRULE: str + :cvar COMPANYAFTERHOURSANSWERINGRULE: "CompanyAfterHoursAnsweringRule" + :vartype COMPANYAFTERHOURSANSWERINGRULE: str + :cvar VOICEMAILEXTENSIONANSWERINGRULE: "VoicemailExtensionAnsweringRule" + :vartype VOICEMAILEXTENSIONANSWERINGRULE: str + :cvar ANNOUNCEMENTEXTENSIONANSWERINGRULE: "AnnouncementExtensionAnsweringRule" + :vartype ANNOUNCEMENTEXTENSIONANSWERINGRULE: str + :cvar SHAREDLINESGROUPANSWERINGRULE: "SharedLinesGroupAnsweringRule" + :vartype SHAREDLINESGROUPANSWERINGRULE: str + """ + + USEREXTENSIONANSWERINGRULE = "UserExtensionAnsweringRule" + EXTENSIONANSWERINGRULE = "ExtensionAnsweringRule" + DEPARTMENTEXTENSIONANSWERINGRULE = "DepartmentExtensionAnsweringRule" + COMPANYANSWERINGRULE = "CompanyAnsweringRule" + COMPANYAFTERHOURSANSWERINGRULE = "CompanyAfterHoursAnsweringRule" + VOICEMAILEXTENSIONANSWERINGRULE = "VoicemailExtensionAnsweringRule" + ANNOUNCEMENTEXTENSIONANSWERINGRULE = "AnnouncementExtensionAnsweringRule" + SHAREDLINESGROUPANSWERINGRULE = "SharedLinesGroupAnsweringRule" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ListStandardGreetingsUsageType._member_map_.values()) + ) diff --git a/src/ring_central/models/list_user_templates_type.py b/src/ring_central/models/list_user_templates_type.py new file mode 100644 index 00000000..920d82ee --- /dev/null +++ b/src/ring_central/models/list_user_templates_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListUserTemplatesType(Enum): + """An enumeration representing different categories. + + :cvar USERSETTINGS: "UserSettings" + :vartype USERSETTINGS: str + :cvar CALLHANDLING: "CallHandling" + :vartype CALLHANDLING: str + """ + + USERSETTINGS = "UserSettings" + CALLHANDLING = "CallHandling" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListUserTemplatesType._member_map_.values())) diff --git a/src/ring_central/models/list_video_meetings_type.py b/src/ring_central/models/list_video_meetings_type.py new file mode 100644 index 00000000..f4503254 --- /dev/null +++ b/src/ring_central/models/list_video_meetings_type.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ListVideoMeetingsType(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar MY: "My" + :vartype MY: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar SHARED: "Shared" + :vartype SHARED: str + """ + + ALL = "All" + MY = "My" + DELETED = "Deleted" + SHARED = "Shared" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ListVideoMeetingsType._member_map_.values())) diff --git a/src/ring_central/models/location_deletion_error_info.py b/src/ring_central/models/location_deletion_error_info.py new file mode 100644 index 00000000..fd1e96c3 --- /dev/null +++ b/src/ring_central/models/location_deletion_error_info.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_code": "errorCode", "additional_info": "additionalInfo"}) +class LocationDeletionErrorInfo(BaseModel): + """LocationDeletionErrorInfo + + :param error_code: Error code, defaults to None + :type error_code: str, optional + :param message: Error message, defaults to None + :type message: str, optional + :param additional_info: Additional attribute for this error, for example `parameterName`, defaults to None + :type additional_info: str, optional + """ + + def __init__( + self, error_code: str = None, message: str = None, additional_info: str = None + ): + if error_code is not None: + self.error_code = error_code + if message is not None: + self.message = message + if additional_info is not None: + self.additional_info = additional_info diff --git a/src/ring_central/models/location_deletion_info.py b/src/ring_central/models/location_deletion_info.py new file mode 100644 index 00000000..7bc6308f --- /dev/null +++ b/src/ring_central/models/location_deletion_info.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .location_deletion_error_info import LocationDeletionErrorInfo + + +class LocationDeletionInfoDeletion(Enum): + """An enumeration representing different categories. + + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar FORBIDDEN: "Forbidden" + :vartype FORBIDDEN: str + :cvar RESTRICTED: "Restricted" + :vartype RESTRICTED: str + :cvar ALLOWED: "Allowed" + :vartype ALLOWED: str + """ + + FAILED = "Failed" + COMPLETED = "Completed" + FORBIDDEN = "Forbidden" + RESTRICTED = "Restricted" + ALLOWED = "Allowed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, LocationDeletionInfoDeletion._member_map_.values()) + ) + + +@JsonMap({"id_": "id"}) +class LocationDeletionInfo(BaseModel): + """LocationDeletionInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param deletion: Identifies the possibility and status of emergency location deletion , defaults to None + :type deletion: LocationDeletionInfoDeletion, optional + :param errors: errors, defaults to None + :type errors: LocationDeletionErrorInfo, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + deletion: LocationDeletionInfoDeletion = None, + errors: LocationDeletionErrorInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if deletion is not None: + self.deletion = self._enum_matching( + deletion, LocationDeletionInfoDeletion.list(), "deletion" + ) + if errors is not None: + self.errors = self._define_object(errors, LocationDeletionErrorInfo) diff --git a/src/ring_central/models/location_info.py b/src/ring_central/models/location_info.py new file mode 100644 index 00000000..d9312cf3 --- /dev/null +++ b/src/ring_central/models/location_info.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .location_state_info import LocationStateInfo + + +@JsonMap({"area_code": "areaCode"}) +class LocationInfo(BaseModel): + """LocationInfo + + :param uri: Canonical URI of a location, defaults to None + :type uri: str, optional + :param area_code: Area code of the location, defaults to None + :type area_code: str, optional + :param city: Official name of the city, belonging to the certain state , defaults to None + :type city: str, optional + :param npa: Area code of the location (3-digit usually), according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan , defaults to None + :type npa: str, optional + :param nxx: Central office code of the location, according to the NANP number format, that can be summarized as NPA-NXX-xxxx and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See for details North American Numbering Plan , defaults to None + :type nxx: str, optional + :param state: Information on a state this location belongs to, defaults to None + :type state: LocationStateInfo, optional + """ + + def __init__( + self, + uri: str = None, + area_code: str = None, + city: str = None, + npa: str = None, + nxx: str = None, + state: LocationStateInfo = None, + ): + if uri is not None: + self.uri = uri + if area_code is not None: + self.area_code = area_code + if city is not None: + self.city = city + if npa is not None: + self.npa = npa + if nxx is not None: + self.nxx = nxx + if state is not None: + self.state = self._define_object(state, LocationStateInfo) diff --git a/src/ring_central/models/location_owner_info.py b/src/ring_central/models/location_owner_info.py new file mode 100644 index 00000000..b8437272 --- /dev/null +++ b/src/ring_central/models/location_owner_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class LocationOwnerInfo(BaseModel): + """LocationOwnerInfo + + :param id_: Internal identifier of a user - private location owner, defaults to None + :type id_: str, optional + :param extension_number: Extension number of a location number, defaults to None + :type extension_number: str, optional + :param name: Name of a location owner, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, extension_number: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/location_state_info.py b/src/ring_central/models/location_state_info.py new file mode 100644 index 00000000..d84a39b0 --- /dev/null +++ b/src/ring_central/models/location_state_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class LocationStateInfo(BaseModel): + """Information on a state this location belongs to + + :param id_: Internal identifier of a state, defaults to None + :type id_: str, optional + :param uri: Link to a state resource, defaults to None + :type uri: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/location_updates_emergency_address_info_request.py b/src/ring_central/models/location_updates_emergency_address_info_request.py new file mode 100644 index 00000000..e5fac230 --- /dev/null +++ b/src/ring_central/models/location_updates_emergency_address_info_request.py @@ -0,0 +1,92 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "customer_name": "customerName", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + } +) +class LocationUpdatesEmergencyAddressInfoRequest(BaseModel): + """Emergency address assigned to the switch. Only one of a pair `emergencyAddress` + or `emergencyLocationId` should be specified, otherwise the error is returned + + + :param country: Country name, defaults to None + :type country: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param customer_name: Customer name, defaults to None + :type customer_name: str, optional + :param state: State/Province name. Mandatory for the USA, the UK and Canada, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param street: First line address, defaults to None + :type street: str, optional + :param street2: Second line address (apartment, suite, unit, building, floor, etc.) , defaults to None + :type street2: str, optional + :param zip: Postal (Zip) code, defaults to None + :type zip: str, optional + """ + + def __init__( + self, + country: str = None, + country_id: str = None, + country_iso_code: str = None, + country_name: str = None, + customer_name: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + city: str = None, + street: str = None, + street2: str = None, + zip: str = None, + ): + if country is not None: + self.country = country + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country_name is not None: + self.country_name = country_name + if customer_name is not None: + self.customer_name = customer_name + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if city is not None: + self.city = city + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if zip is not None: + self.zip = zip diff --git a/src/ring_central/models/locked_by_info.py b/src/ring_central/models/locked_by_info.py new file mode 100644 index 00000000..dea7006b --- /dev/null +++ b/src/ring_central/models/locked_by_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class LockedByInfo(BaseModel): + """Returned for the note being edited (locked) at the current moment. Information on the user editing the note + + :param id_: Internal identifier of the user editing the note, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/make_call_out_caller_info_request_from.py b/src/ring_central/models/make_call_out_caller_info_request_from.py new file mode 100644 index 00000000..d531e774 --- /dev/null +++ b/src/ring_central/models/make_call_out_caller_info_request_from.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"device_id": "deviceId"}) +class MakeCallOutCallerInfoRequestFrom(BaseModel): + """Instance id of the caller. It corresponds to the 1st leg of the CallOut call. + + :param device_id: Internal identifier of a device, defaults to None + :type device_id: str, optional + """ + + def __init__(self, device_id: str = None): + if device_id is not None: + self.device_id = device_id diff --git a/src/ring_central/models/make_call_out_caller_info_request_to.py b/src/ring_central/models/make_call_out_caller_info_request_to.py new file mode 100644 index 00000000..fa05436f --- /dev/null +++ b/src/ring_central/models/make_call_out_caller_info_request_to.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber", "extension_number": "extensionNumber"}) +class MakeCallOutCallerInfoRequestTo(BaseModel): + """Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call + + :param phone_number: Phone number in E.164 format, short codes (*67, *86), emergency (911, 112) or special (988) numbers, defaults to None + :type phone_number: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, phone_number: str = None, extension_number: str = None): + if phone_number is not None: + self.phone_number = phone_number + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/make_call_out_request.py b/src/ring_central/models/make_call_out_request.py new file mode 100644 index 00000000..455e8102 --- /dev/null +++ b/src/ring_central/models/make_call_out_request.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .make_call_out_caller_info_request_from import MakeCallOutCallerInfoRequestFrom +from .make_call_out_caller_info_request_to import MakeCallOutCallerInfoRequestTo + + +@JsonMap({"from_": "from", "country_id": "countryId"}) +class MakeCallOutRequest(BaseModel): + """MakeCallOutRequest + + :param from_: Instance id of the caller. It corresponds to the 1st leg of the CallOut call. + :type from_: MakeCallOutCallerInfoRequestFrom + :param to: Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call + :type to: MakeCallOutCallerInfoRequestTo + :param country_id: Optional. Dialing plan country data. If not specified, then extension home country is applied by default., defaults to None + :type country_id: int, optional + """ + + def __init__( + self, + from_: MakeCallOutCallerInfoRequestFrom, + to: MakeCallOutCallerInfoRequestTo, + country_id: int = None, + ): + self.from_ = self._define_object(from_, MakeCallOutCallerInfoRequestFrom) + self.to = self._define_object(to, MakeCallOutCallerInfoRequestTo) + if country_id is not None: + self.country_id = country_id diff --git a/src/ring_central/models/make_ring_out_caller_id_info.py b/src/ring_central/models/make_ring_out_caller_id_info.py new file mode 100644 index 00000000..80f0f5b6 --- /dev/null +++ b/src/ring_central/models/make_ring_out_caller_id_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class MakeRingOutCallerIdInfo(BaseModel): + """Phone number which will be displayed to the called party + + :param phone_number: Phone number in E.164 format, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, phone_number: str = None): + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/make_ring_out_caller_info_request_from.py b/src/ring_central/models/make_ring_out_caller_info_request_from.py new file mode 100644 index 00000000..75585800 --- /dev/null +++ b/src/ring_central/models/make_ring_out_caller_info_request_from.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber", "forwarding_number_id": "forwardingNumberId"}) +class MakeRingOutCallerInfoRequestFrom(BaseModel): + """Phone number of a caller. This number corresponds to the 1st + leg of a RingOut call. This number can be one of the user's configured forwarding + numbers or an arbitrary number + + + :param phone_number: Phone number in E.164 format, defaults to None + :type phone_number: str, optional + :param forwarding_number_id: Internal identifier of a forwarding number; returned in response as an 'id' field value. Can be specified instead of a `phoneNumber` attribute , defaults to None + :type forwarding_number_id: str, optional + """ + + def __init__(self, phone_number: str = None, forwarding_number_id: str = None): + if phone_number is not None: + self.phone_number = phone_number + if forwarding_number_id is not None: + self.forwarding_number_id = forwarding_number_id diff --git a/src/ring_central/models/make_ring_out_caller_info_request_to.py b/src/ring_central/models/make_ring_out_caller_info_request_to.py new file mode 100644 index 00000000..0ae75e0d --- /dev/null +++ b/src/ring_central/models/make_ring_out_caller_info_request_to.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class MakeRingOutCallerInfoRequestTo(BaseModel): + """Phone number of a called party. This number corresponds to the + 2nd leg of a RingOut call + + + :param phone_number: Phone number in E.164 format, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, phone_number: str = None): + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/make_ring_out_country_info.py b/src/ring_central/models/make_ring_out_country_info.py new file mode 100644 index 00000000..bc6a3eaf --- /dev/null +++ b/src/ring_central/models/make_ring_out_country_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class MakeRingOutCountryInfo(BaseModel): + """Optional. Dialing plan country data. If not specified, then an extension + home country is applied by default + + + :param id_: Dialing plan country identifier, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/make_ring_out_request.py b/src/ring_central/models/make_ring_out_request.py new file mode 100644 index 00000000..6de7e857 --- /dev/null +++ b/src/ring_central/models/make_ring_out_request.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .make_ring_out_caller_info_request_from import MakeRingOutCallerInfoRequestFrom +from .make_ring_out_caller_info_request_to import MakeRingOutCallerInfoRequestTo +from .make_ring_out_caller_id_info import MakeRingOutCallerIdInfo +from .make_ring_out_country_info import MakeRingOutCountryInfo + + +@JsonMap({"from_": "from", "caller_id": "callerId", "play_prompt": "playPrompt"}) +class MakeRingOutRequest(BaseModel): + """MakeRingOutRequest + + :param from_: Phone number of a caller. This number corresponds to the 1st leg of a RingOut call. This number can be one of the user's configured forwarding numbers or an arbitrary number + :type from_: MakeRingOutCallerInfoRequestFrom + :param to: Phone number of a called party. This number corresponds to the 2nd leg of a RingOut call + :type to: MakeRingOutCallerInfoRequestTo + :param caller_id: Phone number which will be displayed to the called party, defaults to None + :type caller_id: MakeRingOutCallerIdInfo, optional + :param play_prompt: Audio prompt that a calling party hears when a call is connected , defaults to None + :type play_prompt: bool, optional + :param country: Optional. Dialing plan country data. If not specified, then an extension home country is applied by default , defaults to None + :type country: MakeRingOutCountryInfo, optional + """ + + def __init__( + self, + from_: MakeRingOutCallerInfoRequestFrom, + to: MakeRingOutCallerInfoRequestTo, + caller_id: MakeRingOutCallerIdInfo = None, + play_prompt: bool = None, + country: MakeRingOutCountryInfo = None, + ): + self.from_ = self._define_object(from_, MakeRingOutCallerInfoRequestFrom) + self.to = self._define_object(to, MakeRingOutCallerInfoRequestTo) + if caller_id is not None: + self.caller_id = self._define_object(caller_id, MakeRingOutCallerIdInfo) + if play_prompt is not None: + self.play_prompt = play_prompt + if country is not None: + self.country = self._define_object(country, MakeRingOutCountryInfo) diff --git a/src/ring_central/models/meeting.py b/src/ring_central/models/meeting.py new file mode 100644 index 00000000..caad1e5a --- /dev/null +++ b/src/ring_central/models/meeting.py @@ -0,0 +1,169 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .host import Host +from .participant import Participant +from .recording import Recording + + +class MeetingType(Enum): + """An enumeration representing different categories. + + :cvar MEETING: "Meeting" + :vartype MEETING: str + :cvar CALL: "Call" + :vartype CALL: str + """ + + MEETING = "Meeting" + CALL = "Call" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MeetingType._member_map_.values())) + + +class MeetingStatus(Enum): + """An enumeration representing different categories. + + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar DONE: "Done" + :vartype DONE: str + """ + + INPROGRESS = "InProgress" + DONE = "Done" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MeetingStatus._member_map_.values())) + + +class Rights(Enum): + """An enumeration representing different categories. + + :cvar DELETE: "delete" + :vartype DELETE: str + :cvar DOWNLOAD: "download" + :vartype DOWNLOAD: str + :cvar SHARE: "share" + :vartype SHARE: str + """ + + DELETE = "delete" + DOWNLOAD = "download" + SHARE = "share" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Rights._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "bridge_id": "bridgeId", + "short_id": "shortId", + "start_time": "startTime", + "display_name": "displayName", + "type_": "type", + "host_info": "hostInfo", + "long_summary": "longSummary", + "short_summary": "shortSummary", + "chat_url": "chatUrl", + } +) +class Meeting(BaseModel): + """Meeting information + + :param id_: Call id + :type id_: str + :param bridge_id: Bridge id + :type bridge_id: str + :param short_id: Short bridge id + :type short_id: str + :param start_time: Start time ISO 8601 + :type start_time: str + :param duration: Duration second, defaults to None + :type duration: int, optional + :param display_name: Meetings name + :type display_name: str + :param type_: Meeting type + :type type_: MeetingType + :param status: Meeting status + :type status: MeetingStatus + :param host_info: Meeting host + :type host_info: Host + :param rights: Describe access rights which has participants to meeting + :type rights: List[Rights] + :param long_summary: During meeting AI team analyze code and after meeting finished generates text summary about this meeting, defaults to None + :type long_summary: str, optional + :param short_summary: During meeting AI team analyze code and after meeting finished generates text summary about this meeting, defaults to None + :type short_summary: str, optional + :param keywords: During meeting AI team analyze code and after meeting finished generates key words used in meeting, defaults to None + :type keywords: List[str], optional + :param participants: List of the participants in the meeting + :type participants: List[Participant] + :param recordings: Recording information + :type recordings: List[Recording] + :param chat_url: Chat location, defaults to None + :type chat_url: str, optional + """ + + def __init__( + self, + id_: str, + bridge_id: str, + short_id: str, + start_time: str, + display_name: str, + type_: MeetingType, + status: MeetingStatus, + host_info: Host, + rights: List[Rights], + participants: List[Participant], + recordings: List[Recording], + duration: int = None, + long_summary: str = None, + short_summary: str = None, + keywords: List[str] = None, + chat_url: str = None, + ): + self.id_ = id_ + self.bridge_id = bridge_id + self.short_id = short_id + self.start_time = start_time + if duration is not None: + self.duration = duration + self.display_name = display_name + self.type_ = self._enum_matching(type_, MeetingType.list(), "type_") + self.status = self._enum_matching(status, MeetingStatus.list(), "status") + self.host_info = self._define_object(host_info, Host) + self.rights = self._define_list(rights, Rights) + if long_summary is not None: + self.long_summary = long_summary + if short_summary is not None: + self.short_summary = short_summary + if keywords is not None: + self.keywords = keywords + self.participants = self._define_list(participants, Participant) + self.recordings = self._define_list(recordings, Recording) + if chat_url is not None: + self.chat_url = chat_url diff --git a/src/ring_central/models/meeting_external_user_info_resource.py b/src/ring_central/models/meeting_external_user_info_resource.py new file mode 100644 index 00000000..d88bcc13 --- /dev/null +++ b/src/ring_central/models/meeting_external_user_info_resource.py @@ -0,0 +1,77 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "user_id": "userId", + "account_id": "accountId", + "user_type": "userType", + "user_token": "userToken", + "host_key": "hostKey", + "personal_meeting_id": "personalMeetingId", + "personal_link": "personalLink", + "personal_link_name": "personalLinkName", + "use_pmi_for_instant_meetings": "usePmiForInstantMeetings", + } +) +class MeetingExternalUserInfoResource(BaseModel): + """MeetingExternalUserInfoResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param user_id: user_id, defaults to None + :type user_id: str, optional + :param account_id: account_id, defaults to None + :type account_id: str, optional + :param user_type: user_type, defaults to None + :type user_type: int, optional + :param user_token: user_token, defaults to None + :type user_token: str, optional + :param host_key: host_key, defaults to None + :type host_key: str, optional + :param personal_meeting_id: personal_meeting_id, defaults to None + :type personal_meeting_id: str, optional + :param personal_link: Link to the user's personal meeting room, used as an alias for personal meeting URL (with personal meeting ID), defaults to None + :type personal_link: str, optional + :param personal_link_name: personal_link_name, defaults to None + :type personal_link_name: str, optional + :param use_pmi_for_instant_meetings: Enables using personal meeting ID for instant meetings, defaults to None + :type use_pmi_for_instant_meetings: bool, optional + """ + + def __init__( + self, + uri: str = None, + user_id: str = None, + account_id: str = None, + user_type: int = None, + user_token: str = None, + host_key: str = None, + personal_meeting_id: str = None, + personal_link: str = None, + personal_link_name: str = None, + use_pmi_for_instant_meetings: bool = None, + ): + if uri is not None: + self.uri = uri + if user_id is not None: + self.user_id = user_id + if account_id is not None: + self.account_id = account_id + if user_type is not None: + self.user_type = user_type + if user_token is not None: + self.user_token = user_token + if host_key is not None: + self.host_key = host_key + if personal_meeting_id is not None: + self.personal_meeting_id = personal_meeting_id + if personal_link is not None: + self.personal_link = personal_link + if personal_link_name is not None: + self.personal_link_name = personal_link_name + if use_pmi_for_instant_meetings is not None: + self.use_pmi_for_instant_meetings = use_pmi_for_instant_meetings diff --git a/src/ring_central/models/meeting_frequency.py b/src/ring_central/models/meeting_frequency.py new file mode 100644 index 00000000..d6541069 --- /dev/null +++ b/src/ring_central/models/meeting_frequency.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MeetingFrequency(Enum): + """An enumeration representing different categories. + + :cvar DAILY: "Daily" + :vartype DAILY: str + :cvar WEEKLY: "Weekly" + :vartype WEEKLY: str + :cvar MONTHLY: "Monthly" + :vartype MONTHLY: str + """ + + DAILY = "Daily" + WEEKLY = "Weekly" + MONTHLY = "Monthly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MeetingFrequency._member_map_.values())) diff --git a/src/ring_central/models/meeting_info.py b/src/ring_central/models/meeting_info.py new file mode 100644 index 00000000..b15fa25b --- /dev/null +++ b/src/ring_central/models/meeting_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "start_time": "startTime"}) +class MeetingInfo(BaseModel): + """MeetingInfo + + :param uuid: Unique identifier of a meeting instance, defaults to None + :type uuid: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param topic: topic, defaults to None + :type topic: str, optional + :param start_time: start_time, defaults to None + :type start_time: str, optional + """ + + def __init__( + self, + uuid: str = None, + id_: str = None, + topic: str = None, + start_time: str = None, + ): + if uuid is not None: + self.uuid = uuid + if id_ is not None: + self.id_ = id_ + if topic is not None: + self.topic = topic + if start_time is not None: + self.start_time = start_time diff --git a/src/ring_central/models/meeting_links.py b/src/ring_central/models/meeting_links.py new file mode 100644 index 00000000..d5f3ebdc --- /dev/null +++ b/src/ring_central/models/meeting_links.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"start_uri": "startUri", "join_uri": "joinUri"}) +class MeetingLinks(BaseModel): + """Meeting links + + :param start_uri: start_uri, defaults to None + :type start_uri: str, optional + :param join_uri: join_uri, defaults to None + :type join_uri: str, optional + """ + + def __init__(self, start_uri: str = None, join_uri: str = None): + if start_uri is not None: + self.start_uri = start_uri + if join_uri is not None: + self.join_uri = join_uri diff --git a/src/ring_central/models/meeting_occurrence_info.py b/src/ring_central/models/meeting_occurrence_info.py new file mode 100644 index 00000000..fce7914a --- /dev/null +++ b/src/ring_central/models/meeting_occurrence_info.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + {"id_": "id", "start_time": "startTime", "duration_in_minutes": "durationInMinutes"} +) +class MeetingOccurrenceInfo(BaseModel): + """MeetingOccurrenceInfo + + :param id_: Identifier of a meeting occurrence, defaults to None + :type id_: str, optional + :param start_time: Starting time of a meeting occurrence, defaults to None + :type start_time: str, optional + :param duration_in_minutes: Duration of a meeting occurrence, defaults to None + :type duration_in_minutes: int, optional + :param status: Status of a meeting occurrence, defaults to None + :type status: str, optional + """ + + def __init__( + self, + id_: str = None, + start_time: str = None, + duration_in_minutes: int = None, + status: str = None, + ): + if id_ is not None: + self.id_ = id_ + if start_time is not None: + self.start_time = start_time + if duration_in_minutes is not None: + self.duration_in_minutes = duration_in_minutes + if status is not None: + self.status = status diff --git a/src/ring_central/models/meeting_page.py b/src/ring_central/models/meeting_page.py new file mode 100644 index 00000000..c286f6cb --- /dev/null +++ b/src/ring_central/models/meeting_page.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting import Meeting +from .paging import Paging + + +@JsonMap({}) +class MeetingPage(BaseModel): + """Meetings page + + :param meetings: Meetings array + :type meetings: List[Meeting] + :param paging: Paging information + :type paging: Paging + """ + + def __init__(self, meetings: List[Meeting], paging: Paging): + self.meetings = self._define_list(meetings, Meeting) + self.paging = self._define_object(paging, Paging) diff --git a/src/ring_central/models/meeting_recording_info.py b/src/ring_central/models/meeting_recording_info.py new file mode 100644 index 00000000..526b9cee --- /dev/null +++ b/src/ring_central/models/meeting_recording_info.py @@ -0,0 +1,119 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class MeetingRecordingInfoContentType(Enum): + """An enumeration representing different categories. + + :cvar VIDEO_MP4: "video/mp4" + :vartype VIDEO_MP4: str + :cvar AUDIO_M4A: "audio/m4a" + :vartype AUDIO_M4A: str + :cvar TEXT_VTT: "text/vtt" + :vartype TEXT_VTT: str + """ + + VIDEO_MP4 = "video/mp4" + AUDIO_M4A = "audio/m4a" + TEXT_VTT = "text/vtt" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, MeetingRecordingInfoContentType._member_map_.values() + ) + ) + + +class MeetingRecordingInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + """ + + COMPLETED = "Completed" + PROCESSING = "Processing" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MeetingRecordingInfoStatus._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "content_download_uri": "contentDownloadUri", + "content_type": "contentType", + "start_time": "startTime", + "end_time": "endTime", + } +) +class MeetingRecordingInfo(BaseModel): + """MeetingRecordingInfo + + :param uuid: Unique identifier of a meeting instance, defaults to None + :type uuid: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param content_download_uri: Link for downloading the recorded file (mp4, mp3 audio and text/plain chat file), defaults to None + :type content_download_uri: str, optional + :param content_type: content_type, defaults to None + :type content_type: MeetingRecordingInfoContentType, optional + :param size: size, defaults to None + :type size: int, optional + :param start_time: Starting time of a recording, defaults to None + :type start_time: str, optional + :param end_time: Ending time of a recording, defaults to None + :type end_time: str, optional + :param status: status, defaults to None + :type status: MeetingRecordingInfoStatus, optional + """ + + def __init__( + self, + uuid: str = None, + id_: str = None, + content_download_uri: str = None, + content_type: MeetingRecordingInfoContentType = None, + size: int = None, + start_time: str = None, + end_time: str = None, + status: MeetingRecordingInfoStatus = None, + ): + if uuid is not None: + self.uuid = uuid + if id_ is not None: + self.id_ = id_ + if content_download_uri is not None: + self.content_download_uri = content_download_uri + if content_type is not None: + self.content_type = self._enum_matching( + content_type, MeetingRecordingInfoContentType.list(), "content_type" + ) + if size is not None: + self.size = size + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if status is not None: + self.status = self._enum_matching( + status, MeetingRecordingInfoStatus.list(), "status" + ) diff --git a/src/ring_central/models/meeting_recordings.py b/src/ring_central/models/meeting_recordings.py new file mode 100644 index 00000000..42f5a17d --- /dev/null +++ b/src/ring_central/models/meeting_recordings.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_info import MeetingInfo +from .meeting_recording_info import MeetingRecordingInfo + + +@JsonMap({}) +class MeetingRecordings(BaseModel): + """MeetingRecordings + + :param meeting: meeting, defaults to None + :type meeting: MeetingInfo, optional + :param recordings: recordings, defaults to None + :type recordings: List[MeetingRecordingInfo], optional + """ + + def __init__( + self, meeting: MeetingInfo = None, recordings: List[MeetingRecordingInfo] = None + ): + if meeting is not None: + self.meeting = self._define_object(meeting, MeetingInfo) + if recordings is not None: + self.recordings = self._define_list(recordings, MeetingRecordingInfo) diff --git a/src/ring_central/models/meeting_recordings_navigation_info.py b/src/ring_central/models/meeting_recordings_navigation_info.py new file mode 100644 index 00000000..b491c278 --- /dev/null +++ b/src/ring_central/models/meeting_recordings_navigation_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_recordings_navigation_info_uri import MeetingRecordingsNavigationInfoUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class MeetingRecordingsNavigationInfo(BaseModel): + """MeetingRecordingsNavigationInfo + + :param first_page: Canonical URI for the corresponding page of the list, defaults to None + :type first_page: MeetingRecordingsNavigationInfoUri, optional + :param next_page: Canonical URI for the corresponding page of the list, defaults to None + :type next_page: MeetingRecordingsNavigationInfoUri, optional + :param previous_page: Canonical URI for the corresponding page of the list, defaults to None + :type previous_page: MeetingRecordingsNavigationInfoUri, optional + :param last_page: Canonical URI for the corresponding page of the list, defaults to None + :type last_page: MeetingRecordingsNavigationInfoUri, optional + """ + + def __init__( + self, + first_page: MeetingRecordingsNavigationInfoUri = None, + next_page: MeetingRecordingsNavigationInfoUri = None, + previous_page: MeetingRecordingsNavigationInfoUri = None, + last_page: MeetingRecordingsNavigationInfoUri = None, + ): + if first_page is not None: + self.first_page = self._define_object( + first_page, MeetingRecordingsNavigationInfoUri + ) + if next_page is not None: + self.next_page = self._define_object( + next_page, MeetingRecordingsNavigationInfoUri + ) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, MeetingRecordingsNavigationInfoUri + ) + if last_page is not None: + self.last_page = self._define_object( + last_page, MeetingRecordingsNavigationInfoUri + ) diff --git a/src/ring_central/models/meeting_recordings_navigation_info_uri.py b/src/ring_central/models/meeting_recordings_navigation_info_uri.py new file mode 100644 index 00000000..67c00291 --- /dev/null +++ b/src/ring_central/models/meeting_recordings_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class MeetingRecordingsNavigationInfoUri(BaseModel): + """Canonical URI for the corresponding page of the list + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/meeting_recordings_paging_info.py b/src/ring_central/models/meeting_recordings_paging_info.py new file mode 100644 index 00000000..2d75b4f6 --- /dev/null +++ b/src/ring_central/models/meeting_recordings_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class MeetingRecordingsPagingInfo(BaseModel): + """MeetingRecordingsPagingInfo + + :param page: The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested), defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied, defaults to None + :type per_page: int, optional + :param page_start: The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_start: int, optional + :param page_end: The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_end: int, optional + :param total_pages: The total number of pages in a dataset. May be omitted for some resources due to performance reasons, defaults to None + :type total_pages: int, optional + :param total_elements: The total number of elements in a dataset. May be omitted for some resource due to performance reasons, defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/meeting_request_resource.py b/src/ring_central/models/meeting_request_resource.py new file mode 100644 index 00000000..bf47797c --- /dev/null +++ b/src/ring_central/models/meeting_request_resource.py @@ -0,0 +1,216 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_schedule_resource import MeetingScheduleResource +from .host_info_request import HostInfoRequest +from .recurrence_info import RecurrenceInfo + + +class MeetingRequestResourceMeetingType(Enum): + """An enumeration representing different categories. + + :cvar INSTANT: "Instant" + :vartype INSTANT: str + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar SCHEDULEDRECURRING: "ScheduledRecurring" + :vartype SCHEDULEDRECURRING: str + :cvar RECURRING: "Recurring" + :vartype RECURRING: str + """ + + INSTANT = "Instant" + SCHEDULED = "Scheduled" + SCHEDULEDRECURRING = "ScheduledRecurring" + RECURRING = "Recurring" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingRequestResourceMeetingType._member_map_.values(), + ) + ) + + +class MeetingRequestResourceAudioOptions(Enum): + """An enumeration representing different categories. + + :cvar PHONE: "Phone" + :vartype PHONE: str + :cvar COMPUTERAUDIO: "ComputerAudio" + :vartype COMPUTERAUDIO: str + """ + + PHONE = "Phone" + COMPUTERAUDIO = "ComputerAudio" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingRequestResourceAudioOptions._member_map_.values(), + ) + ) + + +class MeetingRequestResourceAutoRecordType(Enum): + """An enumeration representing different categories. + + :cvar LOCAL: "local" + :vartype LOCAL: str + :cvar CLOUD: "cloud" + :vartype CLOUD: str + :cvar NONE: "none" + :vartype NONE: str + """ + + LOCAL = "local" + CLOUD = "cloud" + NONE = "none" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingRequestResourceAutoRecordType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "meeting_type": "meetingType", + "allow_join_before_host": "allowJoinBeforeHost", + "start_host_video": "startHostVideo", + "start_participants_video": "startParticipantsVideo", + "use_personal_meeting_id": "usePersonalMeetingId", + "audio_options": "audioOptions", + "auto_record_type": "autoRecordType", + "enforce_login": "enforceLogin", + "mute_participants_on_entry": "muteParticipantsOnEntry", + "enable_waiting_room": "enableWaitingRoom", + "global_dial_in_countries": "globalDialInCountries", + "alternative_hosts": "alternativeHosts", + } +) +class MeetingRequestResource(BaseModel): + """MeetingRequestResource + + :param topic: Custom topic of a meeting, defaults to None + :type topic: str, optional + :param meeting_type: meeting_type, defaults to None + :type meeting_type: MeetingRequestResourceMeetingType, optional + :param schedule: Timing of a meeting, defaults to None + :type schedule: MeetingScheduleResource, optional + :param password: Meeting password, defaults to None + :type password: str, optional + :param host: Meeting host information, defaults to None + :type host: HostInfoRequest, optional + :param allow_join_before_host: allow_join_before_host, defaults to None + :type allow_join_before_host: bool, optional + :param start_host_video: start_host_video, defaults to None + :type start_host_video: bool, optional + :param start_participants_video: Starting meetings with participant video on/off (true/false), defaults to None + :type start_participants_video: bool, optional + :param use_personal_meeting_id: If true, then personal user's meeting ID is applied for creation of this meeting, defaults to None + :type use_personal_meeting_id: bool, optional + :param audio_options: audio_options, defaults to None + :type audio_options: List[MeetingRequestResourceAudioOptions], optional + :param recurrence: recurrence, defaults to None + :type recurrence: RecurrenceInfo, optional + :param auto_record_type: Automatic record type, defaults to None + :type auto_record_type: MeetingRequestResourceAutoRecordType, optional + :param enforce_login: If true, then only signed-in users can join this meeting, defaults to None + :type enforce_login: bool, optional + :param mute_participants_on_entry: If true, then participants are muted on entry, defaults to None + :type mute_participants_on_entry: bool, optional + :param enable_waiting_room: If true, then the waiting room for participants is enabled, defaults to None + :type enable_waiting_room: bool, optional + :param global_dial_in_countries: List of global dial-in countries (eg. US, UK, AU, etc.), defaults to None + :type global_dial_in_countries: List[str], optional + :param alternative_hosts: alternative_hosts, defaults to None + :type alternative_hosts: str, optional + """ + + def __init__( + self, + topic: str = None, + meeting_type: MeetingRequestResourceMeetingType = None, + schedule: MeetingScheduleResource = None, + password: str = None, + host: HostInfoRequest = None, + allow_join_before_host: bool = None, + start_host_video: bool = None, + start_participants_video: bool = None, + use_personal_meeting_id: bool = None, + audio_options: List[MeetingRequestResourceAudioOptions] = None, + recurrence: RecurrenceInfo = None, + auto_record_type: MeetingRequestResourceAutoRecordType = None, + enforce_login: bool = None, + mute_participants_on_entry: bool = None, + enable_waiting_room: bool = None, + global_dial_in_countries: List[str] = None, + alternative_hosts: str = None, + ): + if topic is not None: + self.topic = topic + if meeting_type is not None: + self.meeting_type = self._enum_matching( + meeting_type, MeetingRequestResourceMeetingType.list(), "meeting_type" + ) + if schedule is not None: + self.schedule = self._define_object(schedule, MeetingScheduleResource) + if password is not None: + self.password = password + if host is not None: + self.host = self._define_object(host, HostInfoRequest) + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host + if start_host_video is not None: + self.start_host_video = start_host_video + if start_participants_video is not None: + self.start_participants_video = start_participants_video + if use_personal_meeting_id is not None: + self.use_personal_meeting_id = use_personal_meeting_id + if audio_options is not None: + self.audio_options = self._define_list( + audio_options, MeetingRequestResourceAudioOptions + ) + if recurrence is not None: + self.recurrence = self._define_object(recurrence, RecurrenceInfo) + if auto_record_type is not None: + self.auto_record_type = self._enum_matching( + auto_record_type, + MeetingRequestResourceAutoRecordType.list(), + "auto_record_type", + ) + if enforce_login is not None: + self.enforce_login = enforce_login + if mute_participants_on_entry is not None: + self.mute_participants_on_entry = mute_participants_on_entry + if enable_waiting_room is not None: + self.enable_waiting_room = enable_waiting_room + if global_dial_in_countries is not None: + self.global_dial_in_countries = global_dial_in_countries + if alternative_hosts is not None: + self.alternative_hosts = alternative_hosts diff --git a/src/ring_central/models/meeting_response_resource.py b/src/ring_central/models/meeting_response_resource.py new file mode 100644 index 00000000..d998f8c0 --- /dev/null +++ b/src/ring_central/models/meeting_response_resource.py @@ -0,0 +1,249 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_links import MeetingLinks +from .meeting_schedule_resource import MeetingScheduleResource +from .host_info_request import HostInfoRequest +from .recurrence_info import RecurrenceInfo +from .meeting_occurrence_info import MeetingOccurrenceInfo + + +class MeetingResponseResourceMeetingType(Enum): + """An enumeration representing different categories. + + :cvar INSTANT: "Instant" + :vartype INSTANT: str + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar SCHEDULEDRECURRING: "ScheduledRecurring" + :vartype SCHEDULEDRECURRING: str + :cvar RECURRING: "Recurring" + :vartype RECURRING: str + """ + + INSTANT = "Instant" + SCHEDULED = "Scheduled" + SCHEDULEDRECURRING = "ScheduledRecurring" + RECURRING = "Recurring" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingResponseResourceMeetingType._member_map_.values(), + ) + ) + + +class MeetingResponseResourceAudioOptions(Enum): + """An enumeration representing different categories. + + :cvar PHONE: "Phone" + :vartype PHONE: str + :cvar COMPUTERAUDIO: "ComputerAudio" + :vartype COMPUTERAUDIO: str + """ + + PHONE = "Phone" + COMPUTERAUDIO = "ComputerAudio" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingResponseResourceAudioOptions._member_map_.values(), + ) + ) + + +class MeetingResponseResourceAutoRecordType(Enum): + """An enumeration representing different categories. + + :cvar LOCAL: "local" + :vartype LOCAL: str + :cvar CLOUD: "cloud" + :vartype CLOUD: str + :cvar NONE: "none" + :vartype NONE: str + """ + + LOCAL = "local" + CLOUD = "cloud" + NONE = "none" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MeetingResponseResourceAutoRecordType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "meeting_type": "meetingType", + "h323_password": "h323Password", + "allow_join_before_host": "allowJoinBeforeHost", + "start_host_video": "startHostVideo", + "start_participants_video": "startParticipantsVideo", + "audio_options": "audioOptions", + "auto_record_type": "autoRecordType", + "enforce_login": "enforceLogin", + "mute_participants_on_entry": "muteParticipantsOnEntry", + "enable_waiting_room": "enableWaitingRoom", + "global_dial_in_countries": "globalDialInCountries", + "alternative_hosts": "alternativeHosts", + } +) +class MeetingResponseResource(BaseModel): + """MeetingResponseResource + + :param uri: Link to a meeting resource, defaults to None + :type uri: str, optional + :param uuid: Universally unique identifier of a meeting", defaults to None + :type uuid: str, optional + :param id_: Internal identifier of a meeting, defaults to None + :type id_: str, optional + :param topic: Custom topic of a meeting, defaults to None + :type topic: str, optional + :param meeting_type: meeting_type, defaults to None + :type meeting_type: MeetingResponseResourceMeetingType, optional + :param password: Meeting password, defaults to None + :type password: str, optional + :param h323_password: h323_password, defaults to None + :type h323_password: str, optional + :param status: Status of a meeting, defaults to None + :type status: str, optional + :param links: Meeting links, defaults to None + :type links: MeetingLinks, optional + :param schedule: Timing of a meeting, defaults to None + :type schedule: MeetingScheduleResource, optional + :param host: Meeting host information, defaults to None + :type host: HostInfoRequest, optional + :param allow_join_before_host: If true, then participants can join the meeting before host arrives, defaults to None + :type allow_join_before_host: bool, optional + :param start_host_video: Starting meetings with host video on/off (true/false), defaults to None + :type start_host_video: bool, optional + :param start_participants_video: Starting meetings with participant video on/off (true/false), defaults to None + :type start_participants_video: bool, optional + :param audio_options: audio_options, defaults to None + :type audio_options: List[MeetingResponseResourceAudioOptions], optional + :param recurrence: recurrence, defaults to None + :type recurrence: RecurrenceInfo, optional + :param auto_record_type: Automatic record type, defaults to None + :type auto_record_type: MeetingResponseResourceAutoRecordType, optional + :param enforce_login: If true, then only signed-in users can join this meeting, defaults to None + :type enforce_login: bool, optional + :param mute_participants_on_entry: If true, then participants are muted on entry, defaults to None + :type mute_participants_on_entry: bool, optional + :param occurrences: occurrences, defaults to None + :type occurrences: List[MeetingOccurrenceInfo], optional + :param enable_waiting_room: If true, then the waiting room for participants is enabled, defaults to None + :type enable_waiting_room: bool, optional + :param global_dial_in_countries: List of global dial-in countries (eg. US, UK, AU, etc.), defaults to None + :type global_dial_in_countries: List[str], optional + :param alternative_hosts: alternative_hosts, defaults to None + :type alternative_hosts: str, optional + """ + + def __init__( + self, + uri: str = None, + uuid: str = None, + id_: str = None, + topic: str = None, + meeting_type: MeetingResponseResourceMeetingType = None, + password: str = None, + h323_password: str = None, + status: str = None, + links: MeetingLinks = None, + schedule: MeetingScheduleResource = None, + host: HostInfoRequest = None, + allow_join_before_host: bool = None, + start_host_video: bool = None, + start_participants_video: bool = None, + audio_options: List[MeetingResponseResourceAudioOptions] = None, + recurrence: RecurrenceInfo = None, + auto_record_type: MeetingResponseResourceAutoRecordType = None, + enforce_login: bool = None, + mute_participants_on_entry: bool = None, + occurrences: List[MeetingOccurrenceInfo] = None, + enable_waiting_room: bool = None, + global_dial_in_countries: List[str] = None, + alternative_hosts: str = None, + ): + if uri is not None: + self.uri = uri + if uuid is not None: + self.uuid = uuid + if id_ is not None: + self.id_ = id_ + if topic is not None: + self.topic = topic + if meeting_type is not None: + self.meeting_type = self._enum_matching( + meeting_type, MeetingResponseResourceMeetingType.list(), "meeting_type" + ) + if password is not None: + self.password = password + if h323_password is not None: + self.h323_password = h323_password + if status is not None: + self.status = status + if links is not None: + self.links = self._define_object(links, MeetingLinks) + if schedule is not None: + self.schedule = self._define_object(schedule, MeetingScheduleResource) + if host is not None: + self.host = self._define_object(host, HostInfoRequest) + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host + if start_host_video is not None: + self.start_host_video = start_host_video + if start_participants_video is not None: + self.start_participants_video = start_participants_video + if audio_options is not None: + self.audio_options = self._define_list( + audio_options, MeetingResponseResourceAudioOptions + ) + if recurrence is not None: + self.recurrence = self._define_object(recurrence, RecurrenceInfo) + if auto_record_type is not None: + self.auto_record_type = self._enum_matching( + auto_record_type, + MeetingResponseResourceAutoRecordType.list(), + "auto_record_type", + ) + if enforce_login is not None: + self.enforce_login = enforce_login + if mute_participants_on_entry is not None: + self.mute_participants_on_entry = mute_participants_on_entry + if occurrences is not None: + self.occurrences = self._define_list(occurrences, MeetingOccurrenceInfo) + if enable_waiting_room is not None: + self.enable_waiting_room = enable_waiting_room + if global_dial_in_countries is not None: + self.global_dial_in_countries = global_dial_in_countries + if alternative_hosts is not None: + self.alternative_hosts = alternative_hosts diff --git a/src/ring_central/models/meeting_schedule_resource.py b/src/ring_central/models/meeting_schedule_resource.py new file mode 100644 index 00000000..3b801d0a --- /dev/null +++ b/src/ring_central/models/meeting_schedule_resource.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .meetings_timezone_resource import MeetingsTimezoneResource + + +@JsonMap( + { + "start_time": "startTime", + "duration_in_minutes": "durationInMinutes", + "time_zone": "timeZone", + } +) +class MeetingScheduleResource(BaseModel): + """Timing of a meeting + + :param start_time: start_time, defaults to None + :type start_time: str, optional + :param duration_in_minutes: duration_in_minutes, defaults to None + :type duration_in_minutes: int, optional + :param time_zone: time_zone, defaults to None + :type time_zone: MeetingsTimezoneResource, optional + """ + + def __init__( + self, + start_time: str = None, + duration_in_minutes: int = None, + time_zone: MeetingsTimezoneResource = None, + ): + if start_time is not None: + self.start_time = start_time + if duration_in_minutes is not None: + self.duration_in_minutes = duration_in_minutes + if time_zone is not None: + self.time_zone = self._define_object(time_zone, MeetingsTimezoneResource) diff --git a/src/ring_central/models/meeting_service_info_request.py b/src/ring_central/models/meeting_service_info_request.py new file mode 100644 index 00000000..1f7e1a2b --- /dev/null +++ b/src/ring_central/models/meeting_service_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_external_user_info_resource import MeetingExternalUserInfoResource + + +@JsonMap({"external_user_info": "externalUserInfo"}) +class MeetingServiceInfoRequest(BaseModel): + """MeetingServiceInfoRequest + + :param external_user_info: external_user_info, defaults to None + :type external_user_info: MeetingExternalUserInfoResource, optional + """ + + def __init__(self, external_user_info: MeetingExternalUserInfoResource = None): + if external_user_info is not None: + self.external_user_info = self._define_object( + external_user_info, MeetingExternalUserInfoResource + ) diff --git a/src/ring_central/models/meeting_service_info_resource.py b/src/ring_central/models/meeting_service_info_resource.py new file mode 100644 index 00000000..97a340f6 --- /dev/null +++ b/src/ring_central/models/meeting_service_info_resource.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_external_user_info_resource import MeetingExternalUserInfoResource +from .dial_in_number_resource import DialInNumberResource + + +@JsonMap( + { + "support_uri": "supportUri", + "intl_dial_in_numbers_uri": "intlDialInNumbersUri", + "external_user_info": "externalUserInfo", + "dial_in_numbers": "dialInNumbers", + } +) +class MeetingServiceInfoResource(BaseModel): + """MeetingServiceInfoResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param support_uri: support_uri, defaults to None + :type support_uri: str, optional + :param intl_dial_in_numbers_uri: intl_dial_in_numbers_uri, defaults to None + :type intl_dial_in_numbers_uri: str, optional + :param external_user_info: external_user_info, defaults to None + :type external_user_info: MeetingExternalUserInfoResource, optional + :param dial_in_numbers: dial_in_numbers, defaults to None + :type dial_in_numbers: List[DialInNumberResource], optional + """ + + def __init__( + self, + uri: str = None, + support_uri: str = None, + intl_dial_in_numbers_uri: str = None, + external_user_info: MeetingExternalUserInfoResource = None, + dial_in_numbers: List[DialInNumberResource] = None, + ): + if uri is not None: + self.uri = uri + if support_uri is not None: + self.support_uri = support_uri + if intl_dial_in_numbers_uri is not None: + self.intl_dial_in_numbers_uri = intl_dial_in_numbers_uri + if external_user_info is not None: + self.external_user_info = self._define_object( + external_user_info, MeetingExternalUserInfoResource + ) + if dial_in_numbers is not None: + self.dial_in_numbers = self._define_list( + dial_in_numbers, DialInNumberResource + ) diff --git a/src/ring_central/models/meeting_user_settings_response.py b/src/ring_central/models/meeting_user_settings_response.py new file mode 100644 index 00000000..2a207a1e --- /dev/null +++ b/src/ring_central/models/meeting_user_settings_response.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .user_meeting_recording_setting import UserMeetingRecordingSetting +from .schedule_user_meeting_info import ScheduleUserMeetingInfo +from .telephony_user_meeting_settings import TelephonyUserMeetingSettings +from .user_in_meeting_response import UserInMeetingResponse + + +@JsonMap({"schedule_meeting": "scheduleMeeting", "in_meetings": "inMeetings"}) +class MeetingUserSettingsResponse(BaseModel): + """MeetingUserSettingsResponse + + :param recording: Meeting recording settings locked on account level, defaults to None + :type recording: UserMeetingRecordingSetting, optional + :param schedule_meeting: Scheduling meeting settings locked on account level \|\| Settings defining how to schedule user meetings, defaults to None + :type schedule_meeting: ScheduleUserMeetingInfo, optional + :param telephony: telephony, defaults to None + :type telephony: TelephonyUserMeetingSettings, optional + :param in_meetings: in_meetings, defaults to None + :type in_meetings: UserInMeetingResponse, optional + """ + + def __init__( + self, + recording: UserMeetingRecordingSetting = None, + schedule_meeting: ScheduleUserMeetingInfo = None, + telephony: TelephonyUserMeetingSettings = None, + in_meetings: UserInMeetingResponse = None, + ): + if recording is not None: + self.recording = self._define_object(recording, UserMeetingRecordingSetting) + if schedule_meeting is not None: + self.schedule_meeting = self._define_object( + schedule_meeting, ScheduleUserMeetingInfo + ) + if telephony is not None: + self.telephony = self._define_object( + telephony, TelephonyUserMeetingSettings + ) + if in_meetings is not None: + self.in_meetings = self._define_object(in_meetings, UserInMeetingResponse) diff --git a/src/ring_central/models/meetings_country_resource.py b/src/ring_central/models/meetings_country_resource.py new file mode 100644 index 00000000..3ba845e4 --- /dev/null +++ b/src/ring_central/models/meetings_country_resource.py @@ -0,0 +1,64 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "iso_code": "isoCode", + "calling_code": "callingCode", + "emergency_calling": "emergencyCalling", + "number_selling": "numberSelling", + "login_allowed": "loginAllowed", + } +) +class MeetingsCountryResource(BaseModel): + """MeetingsCountryResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param iso_code: iso_code, defaults to None + :type iso_code: str, optional + :param calling_code: calling_code, defaults to None + :type calling_code: str, optional + :param emergency_calling: emergency_calling, defaults to None + :type emergency_calling: bool, optional + :param number_selling: number_selling, defaults to None + :type number_selling: bool, optional + :param login_allowed: login_allowed, defaults to None + :type login_allowed: bool, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + iso_code: str = None, + calling_code: str = None, + emergency_calling: bool = None, + number_selling: bool = None, + login_allowed: bool = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if iso_code is not None: + self.iso_code = iso_code + if calling_code is not None: + self.calling_code = calling_code + if emergency_calling is not None: + self.emergency_calling = emergency_calling + if number_selling is not None: + self.number_selling = number_selling + if login_allowed is not None: + self.login_allowed = login_allowed diff --git a/src/ring_central/models/meetings_navigation_info.py b/src/ring_central/models/meetings_navigation_info.py new file mode 100644 index 00000000..9e3e3326 --- /dev/null +++ b/src/ring_central/models/meetings_navigation_info.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .meetings_navigation_info_uri import MeetingsNavigationInfoUri + + +@JsonMap( + { + "next_page": "nextPage", + "previous_page": "previousPage", + "first_page": "firstPage", + "last_page": "lastPage", + } +) +class MeetingsNavigationInfo(BaseModel): + """MeetingsNavigationInfo + + :param next_page: next_page, defaults to None + :type next_page: MeetingsNavigationInfoUri, optional + :param previous_page: previous_page, defaults to None + :type previous_page: MeetingsNavigationInfoUri, optional + :param first_page: first_page, defaults to None + :type first_page: MeetingsNavigationInfoUri, optional + :param last_page: last_page, defaults to None + :type last_page: MeetingsNavigationInfoUri, optional + """ + + def __init__( + self, + next_page: MeetingsNavigationInfoUri = None, + previous_page: MeetingsNavigationInfoUri = None, + first_page: MeetingsNavigationInfoUri = None, + last_page: MeetingsNavigationInfoUri = None, + ): + if next_page is not None: + self.next_page = self._define_object(next_page, MeetingsNavigationInfoUri) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, MeetingsNavigationInfoUri + ) + if first_page is not None: + self.first_page = self._define_object(first_page, MeetingsNavigationInfoUri) + if last_page is not None: + self.last_page = self._define_object(last_page, MeetingsNavigationInfoUri) diff --git a/src/ring_central/models/meetings_navigation_info_uri.py b/src/ring_central/models/meetings_navigation_info_uri.py new file mode 100644 index 00000000..9175de2c --- /dev/null +++ b/src/ring_central/models/meetings_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class MeetingsNavigationInfoUri(BaseModel): + """MeetingsNavigationInfoUri + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/meetings_paging_info.py b/src/ring_central/models/meetings_paging_info.py new file mode 100644 index 00000000..0f23b844 --- /dev/null +++ b/src/ring_central/models/meetings_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "total_pages": "totalPages", + "per_page": "perPage", + "total_elements": "totalElements", + "page_start": "pageStart", + "page_end": "pageEnd", + } +) +class MeetingsPagingInfo(BaseModel): + """MeetingsPagingInfo + + :param page: page, defaults to None + :type page: int, optional + :param total_pages: total_pages, defaults to None + :type total_pages: int, optional + :param per_page: per_page, defaults to None + :type per_page: int, optional + :param total_elements: total_elements, defaults to None + :type total_elements: int, optional + :param page_start: page_start, defaults to None + :type page_start: int, optional + :param page_end: page_end, defaults to None + :type page_end: int, optional + """ + + def __init__( + self, + page: int = None, + total_pages: int = None, + per_page: int = None, + total_elements: int = None, + page_start: int = None, + page_end: int = None, + ): + if page is not None: + self.page = page + if total_pages is not None: + self.total_pages = total_pages + if per_page is not None: + self.per_page = per_page + if total_elements is not None: + self.total_elements = total_elements + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end diff --git a/src/ring_central/models/meetings_resource.py b/src/ring_central/models/meetings_resource.py new file mode 100644 index 00000000..537d13f5 --- /dev/null +++ b/src/ring_central/models/meetings_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_response_resource import MeetingResponseResource +from .meetings_paging_info import MeetingsPagingInfo +from .meetings_navigation_info import MeetingsNavigationInfo + + +@JsonMap({}) +class MeetingsResource(BaseModel): + """MeetingsResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[MeetingResponseResource], optional + :param paging: paging, defaults to None + :type paging: MeetingsPagingInfo, optional + :param navigation: navigation, defaults to None + :type navigation: MeetingsNavigationInfo, optional + """ + + def __init__( + self, + uri: str = None, + records: List[MeetingResponseResource] = None, + paging: MeetingsPagingInfo = None, + navigation: MeetingsNavigationInfo = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, MeetingResponseResource) + if paging is not None: + self.paging = self._define_object(paging, MeetingsPagingInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, MeetingsNavigationInfo) diff --git a/src/ring_central/models/meetings_timezone_resource.py b/src/ring_central/models/meetings_timezone_resource.py new file mode 100644 index 00000000..9264ef17 --- /dev/null +++ b/src/ring_central/models/meetings_timezone_resource.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class MeetingsTimezoneResource(BaseModel): + """MeetingsTimezoneResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param description: description, defaults to None + :type description: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + description: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if description is not None: + self.description = description diff --git a/src/ring_central/models/members_grouping_options.py b/src/ring_central/models/members_grouping_options.py new file mode 100644 index 00000000..74ccca4d --- /dev/null +++ b/src/ring_central/models/members_grouping_options.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MembersGroupingOptions(Enum): + """An enumeration representing different categories. + + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar USERGROUP: "UserGroup" + :vartype USERGROUP: str + :cvar QUEUE: "Queue" + :vartype QUEUE: str + :cvar SITE: "Site" + :vartype SITE: str + """ + + DEPARTMENT = "Department" + USERGROUP = "UserGroup" + QUEUE = "Queue" + SITE = "Site" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MembersGroupingOptions._member_map_.values()) + ) diff --git a/src/ring_central/models/message_attachment_info.py b/src/ring_central/models/message_attachment_info.py new file mode 100644 index 00000000..df1d532d --- /dev/null +++ b/src/ring_central/models/message_attachment_info.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_attachment_type_enum import MessageAttachmentTypeEnum + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "content_type": "contentType", + "vm_duration": "vmDuration", + "file_name": "fileName", + } +) +class MessageAttachmentInfo(BaseModel): + """MessageAttachmentInfo + + :param id_: Internal identifier of a message attachment, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message attachment, defaults to None + :type uri: str, optional + :param type_: Type of message attachment, defaults to None + :type type_: MessageAttachmentTypeEnum, optional + :param content_type: MIME type for a given attachment, for instance 'audio/wav', defaults to None + :type content_type: str, optional + :param vm_duration: Supported for `Voicemail` only. Duration of a voicemail in seconds , defaults to None + :type vm_duration: int, optional + :param file_name: Name of a file attached, defaults to None + :type file_name: str, optional + :param size: Size of attachment in bytes, defaults to None + :type size: int, optional + :param height: Attachment height in pixels if available, defaults to None + :type height: int, optional + :param width: Attachment width in pixels if available, defaults to None + :type width: int, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + type_: MessageAttachmentTypeEnum = None, + content_type: str = None, + vm_duration: int = None, + file_name: str = None, + size: int = None, + height: int = None, + width: int = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if type_ is not None: + self.type_ = self._enum_matching( + type_, MessageAttachmentTypeEnum.list(), "type_" + ) + if content_type is not None: + self.content_type = content_type + if vm_duration is not None: + self.vm_duration = vm_duration + if file_name is not None: + self.file_name = file_name + if size is not None: + self.size = size + if height is not None: + self.height = height + if width is not None: + self.width = width diff --git a/src/ring_central/models/message_attachment_info_int_id.py b/src/ring_central/models/message_attachment_info_int_id.py new file mode 100644 index 00000000..8ff1fdaf --- /dev/null +++ b/src/ring_central/models/message_attachment_info_int_id.py @@ -0,0 +1,83 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class MessageAttachmentInfoIntIdType(Enum): + """An enumeration representing different categories. + + :cvar AUDIORECORDING: "AudioRecording" + :vartype AUDIORECORDING: str + :cvar AUDIOTRANSCRIPTION: "AudioTranscription" + :vartype AUDIOTRANSCRIPTION: str + :cvar TEXT: "Text" + :vartype TEXT: str + :cvar SOURCEDOCUMENT: "SourceDocument" + :vartype SOURCEDOCUMENT: str + :cvar RENDEREDDOCUMENT: "RenderedDocument" + :vartype RENDEREDDOCUMENT: str + :cvar MMSATTACHMENT: "MmsAttachment" + :vartype MMSATTACHMENT: str + """ + + AUDIORECORDING = "AudioRecording" + AUDIOTRANSCRIPTION = "AudioTranscription" + TEXT = "Text" + SOURCEDOCUMENT = "SourceDocument" + RENDEREDDOCUMENT = "RenderedDocument" + MMSATTACHMENT = "MmsAttachment" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MessageAttachmentInfoIntIdType._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "type_": "type", "content_type": "contentType"}) +class MessageAttachmentInfoIntId(BaseModel): + """MessageAttachmentInfoIntId + + :param id_: Internal identifier of a message attachment, defaults to None + :type id_: int, optional + :param uri: Canonical URI of a message attachment, defaults to None + :type uri: str, optional + :param type_: Type of message attachment, defaults to None + :type type_: MessageAttachmentInfoIntIdType, optional + :param content_type: MIME type for a given attachment, for instance 'audio/wav', defaults to None + :type content_type: str, optional + :param filename: Name of a file attached, defaults to None + :type filename: str, optional + :param size: Size of an attachment in bytes, defaults to None + :type size: int, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + type_: MessageAttachmentInfoIntIdType = None, + content_type: str = None, + filename: str = None, + size: int = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if type_ is not None: + self.type_ = self._enum_matching( + type_, MessageAttachmentInfoIntIdType.list(), "type_" + ) + if content_type is not None: + self.content_type = content_type + if filename is not None: + self.filename = filename + if size is not None: + self.size = size diff --git a/src/ring_central/models/message_attachment_type_enum.py b/src/ring_central/models/message_attachment_type_enum.py new file mode 100644 index 00000000..0d49e2be --- /dev/null +++ b/src/ring_central/models/message_attachment_type_enum.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageAttachmentTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar AUDIORECORDING: "AudioRecording" + :vartype AUDIORECORDING: str + :cvar AUDIOTRANSCRIPTION: "AudioTranscription" + :vartype AUDIOTRANSCRIPTION: str + :cvar TEXT: "Text" + :vartype TEXT: str + :cvar SOURCEDOCUMENT: "SourceDocument" + :vartype SOURCEDOCUMENT: str + :cvar RENDEREDDOCUMENT: "RenderedDocument" + :vartype RENDEREDDOCUMENT: str + :cvar MMSATTACHMENT: "MmsAttachment" + :vartype MMSATTACHMENT: str + """ + + AUDIORECORDING = "AudioRecording" + AUDIOTRANSCRIPTION = "AudioTranscription" + TEXT = "Text" + SOURCEDOCUMENT = "SourceDocument" + RENDEREDDOCUMENT = "RenderedDocument" + MMSATTACHMENT = "MmsAttachment" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MessageAttachmentTypeEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/message_availability_enum.py b/src/ring_central/models/message_availability_enum.py new file mode 100644 index 00000000..be9d5be1 --- /dev/null +++ b/src/ring_central/models/message_availability_enum.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageAvailabilityEnum(Enum): + """An enumeration representing different categories. + + :cvar ALIVE: "Alive" + :vartype ALIVE: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar PURGED: "Purged" + :vartype PURGED: str + """ + + ALIVE = "Alive" + DELETED = "Deleted" + PURGED = "Purged" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MessageAvailabilityEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/message_batch_create_request.py b/src/ring_central/models/message_batch_create_request.py new file mode 100644 index 00000000..6fd62d49 --- /dev/null +++ b/src/ring_central/models/message_batch_create_request.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_create_request import MessageCreateRequest + + +@JsonMap({"from_": "from"}) +class MessageBatchCreateRequest(BaseModel): + """Batch of A2P SMS messages. This object provides specification to + send message(s) to many recipients. It contains top-level attributes, such + as `text` which apply to all `messages`. In addition to that, it is possible + to override this attribute for each message. This way a single API call may + be used to send individual messages to many recipients. + + + :param from_: Sender's phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format. + :type from_: str + :param text: Text to send to `messages.to` phone numbers. Can be overridden on a per-message basis, defaults to None + :type text: str, optional + :param messages: Individual messages + :type messages: List[MessageCreateRequest] + """ + + def __init__( + self, from_: str, messages: List[MessageCreateRequest], text: str = None + ): + self.from_ = from_ + if text is not None: + self.text = text + self.messages = self._define_list(messages, MessageCreateRequest) diff --git a/src/ring_central/models/message_batch_response.py b/src/ring_central/models/message_batch_response.py new file mode 100644 index 00000000..e13b588c --- /dev/null +++ b/src/ring_central/models/message_batch_response.py @@ -0,0 +1,104 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .rejected_recipient_response_resource import RejectedRecipientResponseResource + + +class MessageBatchResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + PROCESSING = "Processing" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MessageBatchResponseStatus._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "from_": "from", + "batch_size": "batchSize", + "processed_count": "processedCount", + "last_modified_time": "lastModifiedTime", + "creation_time": "creationTime", + } +) +class MessageBatchResponse(BaseModel): + """Batch of A2P SMS messages. This object provides a specification + to send message(s) to many recipients. It contains top-level attributes which apply to all messages. In addition + to that, it is possible to override this attribute for each message. This + way a single API call may be used to send individual messages to many recipients + + + :param id_: Unique identifier of the message batch, defaults to None + :type id_: str, optional + :param from_: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the messages are going to be sent, defaults to None + :type from_: str, optional + :param batch_size: Total number of messages in the accepted batch, defaults to None + :type batch_size: int, optional + :param processed_count: Total number of messages currently processed in the batch, defaults to None + :type processed_count: int, optional + :param last_modified_time: The last time the batch was processed. , defaults to None + :type last_modified_time: str, optional + :param status: Current status of a message batch, defaults to None + :type status: MessageBatchResponseStatus, optional + :param creation_time: The time at which the batch was created , defaults to None + :type creation_time: str, optional + :param rejected: The list of rejected/invalid recipients, defaults to None + :type rejected: List[RejectedRecipientResponseResource], optional + :param cost: The estimated batch cost for completed batch. Calculated after batch processing is completed. , defaults to None + :type cost: float, optional + """ + + def __init__( + self, + id_: str = None, + from_: str = None, + batch_size: int = None, + processed_count: int = None, + last_modified_time: str = None, + status: MessageBatchResponseStatus = None, + creation_time: str = None, + rejected: List[RejectedRecipientResponseResource] = None, + cost: float = None, + ): + if id_ is not None: + self.id_ = id_ + if from_ is not None: + self.from_ = from_ + if batch_size is not None: + self.batch_size = batch_size + if processed_count is not None: + self.processed_count = processed_count + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if status is not None: + self.status = self._enum_matching( + status, MessageBatchResponseStatus.list(), "status" + ) + if creation_time is not None: + self.creation_time = creation_time + if rejected is not None: + self.rejected = self._define_list( + rejected, RejectedRecipientResponseResource + ) + if cost is not None: + self.cost = cost diff --git a/src/ring_central/models/message_create_request.py b/src/ring_central/models/message_create_request.py new file mode 100644 index 00000000..cbde5c85 --- /dev/null +++ b/src/ring_central/models/message_create_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class MessageCreateRequest(BaseModel): + """Single individual SMS resource + + :param to: List of phone numbers in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, recipients of this message. Currently only one number is supported + :type to: List[str] + :param text: Text to send, maximum number of characters is 1000, defaults to None + :type text: str, optional + """ + + def __init__(self, to: List[str], text: str = None): + self.to = to + if text is not None: + self.text = text diff --git a/src/ring_central/models/message_details_response.py b/src/ring_central/models/message_details_response.py new file mode 100644 index 00000000..dd74feed --- /dev/null +++ b/src/ring_central/models/message_details_response.py @@ -0,0 +1,94 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .sms_status_enum import SmsStatusEnum +from .sms_direction_enum import SmsDirectionEnum + + +@JsonMap( + { + "id_": "id", + "from_": "from", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "message_status": "messageStatus", + "segment_count": "segmentCount", + "batch_id": "batchId", + "error_code": "errorCode", + } +) +class MessageDetailsResponse(BaseModel): + """Complete details of the message + + :param id_: Internal identifier of a message, defaults to None + :type id_: str, optional + :param from_: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the message was sent, defaults to None + :type from_: str, optional + :param to: List of phone numbers in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format to which the message was sent, defaults to None + :type to: List[str], optional + :param text: Text of a message, maximum number of characters is 1000, defaults to None + :type text: str, optional + :param creation_time: The time when this is message was created., defaults to None + :type creation_time: str, optional + :param last_modified_time: The time when this message was last updated., defaults to None + :type last_modified_time: str, optional + :param message_status: Current status of a message, defaults to None + :type message_status: SmsStatusEnum, optional + :param segment_count: Number of segments of a message, defaults to None + :type segment_count: int, optional + :param cost: Cost of a message, defaults to None + :type cost: float, optional + :param batch_id: The batch in which the message was submitted, defaults to None + :type batch_id: str, optional + :param direction: Direction of the SMS message, defaults to None + :type direction: SmsDirectionEnum, optional + :param error_code: The RC error code of the message sending failure reason, defaults to None + :type error_code: str, optional + """ + + def __init__( + self, + id_: str = None, + from_: str = None, + to: List[str] = None, + text: str = None, + creation_time: str = None, + last_modified_time: str = None, + message_status: SmsStatusEnum = None, + segment_count: int = None, + cost: float = None, + batch_id: str = None, + direction: SmsDirectionEnum = None, + error_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to + if text is not None: + self.text = text + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if message_status is not None: + self.message_status = self._enum_matching( + message_status, SmsStatusEnum.list(), "message_status" + ) + if segment_count is not None: + self.segment_count = segment_count + if cost is not None: + self.cost = cost + if batch_id is not None: + self.batch_id = batch_id + if direction is not None: + self.direction = self._enum_matching( + direction, SmsDirectionEnum.list(), "direction" + ) + if error_code is not None: + self.error_code = error_code diff --git a/src/ring_central/models/message_direction_enum.py b/src/ring_central/models/message_direction_enum.py new file mode 100644 index 00000000..1f907e54 --- /dev/null +++ b/src/ring_central/models/message_direction_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageDirectionEnum(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MessageDirectionEnum._member_map_.values())) diff --git a/src/ring_central/models/message_list_message_response.py b/src/ring_central/models/message_list_message_response.py new file mode 100644 index 00000000..074bca91 --- /dev/null +++ b/src/ring_central/models/message_list_message_response.py @@ -0,0 +1,94 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .sms_status_enum import SmsStatusEnum +from .sms_direction_enum import SmsDirectionEnum + + +@JsonMap( + { + "id_": "id", + "batch_id": "batchId", + "from_": "from", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "message_status": "messageStatus", + "segment_count": "segmentCount", + "error_code": "errorCode", + } +) +class MessageListMessageResponse(BaseModel): + """The short detail of the message in the get batch response + + :param id_: The Id of the message, defaults to None + :type id_: int, optional + :param batch_id: Internal identifier of a batch the message was submitted in, defaults to None + :type batch_id: str, optional + :param from_: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the message is sent, defaults to None + :type from_: str, optional + :param to: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format to which a message is sent, defaults to None + :type to: List[str], optional + :param creation_time: The time at which the message was created, defaults to None + :type creation_time: str, optional + :param last_modified_time: The time at which the messages was last updated, defaults to None + :type last_modified_time: str, optional + :param message_status: Current status of a message, defaults to None + :type message_status: SmsStatusEnum, optional + :param segment_count: Number of segments of a message, defaults to None + :type segment_count: int, optional + :param text: Text of a message. Returned if the `view` parameter is set to 'Detailed', defaults to None + :type text: str, optional + :param cost: Cost of a message, defaults to None + :type cost: float, optional + :param direction: Direction of the SMS message, defaults to None + :type direction: SmsDirectionEnum, optional + :param error_code: The RC error code of the message sending failure reason, defaults to None + :type error_code: str, optional + """ + + def __init__( + self, + id_: int = None, + batch_id: str = None, + from_: str = None, + to: List[str] = None, + creation_time: str = None, + last_modified_time: str = None, + message_status: SmsStatusEnum = None, + segment_count: int = None, + text: str = None, + cost: float = None, + direction: SmsDirectionEnum = None, + error_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if batch_id is not None: + self.batch_id = batch_id + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if message_status is not None: + self.message_status = self._enum_matching( + message_status, SmsStatusEnum.list(), "message_status" + ) + if segment_count is not None: + self.segment_count = segment_count + if text is not None: + self.text = text + if cost is not None: + self.cost = cost + if direction is not None: + self.direction = self._enum_matching( + direction, SmsDirectionEnum.list(), "direction" + ) + if error_code is not None: + self.error_code = error_code diff --git a/src/ring_central/models/message_list_response.py b/src/ring_central/models/message_list_response.py new file mode 100644 index 00000000..e670056a --- /dev/null +++ b/src/ring_central/models/message_list_response.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_list_message_response import MessageListMessageResponse +from .paging_resource import PagingResource + + +@JsonMap({}) +class MessageListResponse(BaseModel): + """List of messages retrieved for an account and other filter criteria such as `batchId` and `fromPhoneNumber` specified in the request + + :param records: An array containing individual messages, defaults to None + :type records: List[MessageListMessageResponse], optional + :param paging: Pagination details, defaults to None + :type paging: PagingResource, optional + """ + + def __init__( + self, + records: List[MessageListMessageResponse] = None, + paging: PagingResource = None, + ): + if records is not None: + self.records = self._define_list(records, MessageListMessageResponse) + if paging is not None: + self.paging = self._define_object(paging, PagingResource) diff --git a/src/ring_central/models/message_priority_enum.py b/src/ring_central/models/message_priority_enum.py new file mode 100644 index 00000000..fbbe96ab --- /dev/null +++ b/src/ring_central/models/message_priority_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessagePriorityEnum(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar HIGH: "High" + :vartype HIGH: str + """ + + NORMAL = "Normal" + HIGH = "High" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MessagePriorityEnum._member_map_.values())) diff --git a/src/ring_central/models/message_read_status_enum.py b/src/ring_central/models/message_read_status_enum.py new file mode 100644 index 00000000..4df3a09e --- /dev/null +++ b/src/ring_central/models/message_read_status_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageReadStatusEnum(Enum): + """An enumeration representing different categories. + + :cvar READ: "Read" + :vartype READ: str + :cvar UNREAD: "Unread" + :vartype UNREAD: str + """ + + READ = "Read" + UNREAD = "Unread" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MessageReadStatusEnum._member_map_.values())) diff --git a/src/ring_central/models/message_status_counts.py b/src/ring_central/models/message_status_counts.py new file mode 100644 index 00000000..e134ec26 --- /dev/null +++ b/src/ring_central/models/message_status_counts.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_code_counts": "errorCodeCounts"}) +class MessageStatusCounts(BaseModel): + """Message status parameters + + :param cost: Total cost of all messages with this status code, defaults to None + :type cost: float, optional + :param count: Count of messages with this status code, defaults to None + :type count: int, optional + :param error_code_counts: Message sending/delivery errors. Returned in `deliveryFailed` and `sendingFailed` resources, defaults to None + :type error_code_counts: dict, optional + """ + + def __init__( + self, cost: float = None, count: int = None, error_code_counts: dict = None + ): + if cost is not None: + self.cost = cost + if count is not None: + self.count = count + if error_code_counts is not None: + self.error_code_counts = error_code_counts diff --git a/src/ring_central/models/message_status_enum.py b/src/ring_central/models/message_status_enum.py new file mode 100644 index 00000000..824ec2f1 --- /dev/null +++ b/src/ring_central/models/message_status_enum.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageStatusEnum(Enum): + """An enumeration representing different categories. + + :cvar QUEUED: "Queued" + :vartype QUEUED: str + :cvar SENT: "Sent" + :vartype SENT: str + :cvar DELIVERED: "Delivered" + :vartype DELIVERED: str + :cvar DELIVERYFAILED: "DeliveryFailed" + :vartype DELIVERYFAILED: str + :cvar SENDINGFAILED: "SendingFailed" + :vartype SENDINGFAILED: str + :cvar RECEIVED: "Received" + :vartype RECEIVED: str + """ + + QUEUED = "Queued" + SENT = "Sent" + DELIVERED = "Delivered" + DELIVERYFAILED = "DeliveryFailed" + SENDINGFAILED = "SendingFailed" + RECEIVED = "Received" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MessageStatusEnum._member_map_.values())) diff --git a/src/ring_central/models/message_statuses_response.py b/src/ring_central/models/message_statuses_response.py new file mode 100644 index 00000000..bf480a45 --- /dev/null +++ b/src/ring_central/models/message_statuses_response.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_status_counts import MessageStatusCounts + + +@JsonMap({"delivery_failed": "deliveryFailed", "sending_failed": "sendingFailed"}) +class MessageStatusesResponse(BaseModel): + """The messages status object with details of each status + + :param queued: Message status parameters, defaults to None + :type queued: MessageStatusCounts, optional + :param delivered: Message status parameters, defaults to None + :type delivered: MessageStatusCounts, optional + :param delivery_failed: Message status parameters, defaults to None + :type delivery_failed: MessageStatusCounts, optional + :param sent: Message status parameters, defaults to None + :type sent: MessageStatusCounts, optional + :param sending_failed: Message status parameters, defaults to None + :type sending_failed: MessageStatusCounts, optional + """ + + def __init__( + self, + queued: MessageStatusCounts = None, + delivered: MessageStatusCounts = None, + delivery_failed: MessageStatusCounts = None, + sent: MessageStatusCounts = None, + sending_failed: MessageStatusCounts = None, + ): + if queued is not None: + self.queued = self._define_object(queued, MessageStatusCounts) + if delivered is not None: + self.delivered = self._define_object(delivered, MessageStatusCounts) + if delivery_failed is not None: + self.delivery_failed = self._define_object( + delivery_failed, MessageStatusCounts + ) + if sent is not None: + self.sent = self._define_object(sent, MessageStatusCounts) + if sending_failed is not None: + self.sending_failed = self._define_object( + sending_failed, MessageStatusCounts + ) diff --git a/src/ring_central/models/message_store_caller_info_request.py b/src/ring_central/models/message_store_caller_info_request.py new file mode 100644 index 00000000..055674c2 --- /dev/null +++ b/src/ring_central/models/message_store_caller_info_request.py @@ -0,0 +1,18 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class MessageStoreCallerInfoRequest(BaseModel): + """Message sender information. The `phoneNumber` value should be one + the account phone numbers allowed to send the current type of messages + + + :param phone_number: Phone number in E.164 format + :type phone_number: str + """ + + def __init__(self, phone_number: str): + self.phone_number = phone_number diff --git a/src/ring_central/models/message_store_caller_info_response_from.py b/src/ring_central/models/message_store_caller_info_response_from.py new file mode 100644 index 00000000..cf147501 --- /dev/null +++ b/src/ring_central/models/message_store_caller_info_response_from.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "extension_number": "extensionNumber", + "extension_id": "extensionId", + "phone_number": "phoneNumber", + } +) +class MessageStoreCallerInfoResponseFrom(BaseModel): + """Sender information + + :param extension_number: Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager message , defaults to None + :type extension_number: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param location: Contains party location (city, state) if one can be determined from phoneNumber. This property is filled only when phoneNumber is not empty and server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) , defaults to None + :type location: str, optional + :param name: Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then , defaults to None + :type name: str, optional + :param phone_number: Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS , defaults to None + :type phone_number: str, optional + """ + + def __init__( + self, + extension_number: str = None, + extension_id: str = None, + location: str = None, + name: str = None, + phone_number: str = None, + ): + if extension_number is not None: + self.extension_number = extension_number + if extension_id is not None: + self.extension_id = extension_id + if location is not None: + self.location = location + if name is not None: + self.name = name + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/message_store_caller_info_response_to.py b/src/ring_central/models/message_store_caller_info_response_to.py new file mode 100644 index 00000000..9ff43438 --- /dev/null +++ b/src/ring_central/models/message_store_caller_info_response_to.py @@ -0,0 +1,76 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_status_enum import MessageStatusEnum +from .fax_error_code_enum import FaxErrorCodeEnum + + +@JsonMap( + { + "extension_number": "extensionNumber", + "extension_id": "extensionId", + "message_status": "messageStatus", + "fax_error_code": "faxErrorCode", + "phone_number": "phoneNumber", + "recipient_id": "recipientId", + } +) +class MessageStoreCallerInfoResponseTo(BaseModel): + """MessageStoreCallerInfoResponseTo + + :param extension_number: Extension short number (usually 3 or 4 digits). This property is filled when parties communicate by means of short internal numbers, for example when calling to other extension or sending/receiving Company Pager messages , defaults to None + :type extension_number: str, optional + :param extension_id: extension_id, defaults to None + :type extension_id: str, optional + :param location: Contains party location (city, state) if one can be determined from a phone number. This property is filled only when `phoneNumber` is not empty and a server can calculate location information from it (for example, this information is unavailable for US toll-free numbers) , defaults to None + :type location: str, optional + :param target: The `true` value specifies that message is sent exactly to this recipient. Returned in the `to` field for group MMS. Useful if one extension has several phone numbers' , defaults to None + :type target: bool, optional + :param message_status: Message status. Different message types may have different allowed status values. For outbound faxes the aggregated message status is returned. If, for outbound message, a status for at least one recipient is 'Queued', then the 'Queued' value is returned. If a status for at least one recipient is 'SendingFailed', then the 'SendingFailed' value is returned. In other cases the 'Sent' status is returned , defaults to None + :type message_status: MessageStatusEnum, optional + :param fax_error_code: fax_error_code, defaults to None + :type fax_error_code: FaxErrorCodeEnum, optional + :param name: Symbolic name associated with a party. If the phone does not belong to the known extension, only the location is returned, the name is not determined then , defaults to None + :type name: str, optional + :param phone_number: Phone number of a party. Usually it is a plain number including country and area code like 18661234567. But sometimes it could be returned from database with some formatting applied, for example (866)123-4567. This property is filled in all cases where parties communicate by means of global phone numbers, for example when calling to direct numbers or sending/receiving SMS , defaults to None + :type phone_number: str, optional + :param recipient_id: Internal identifier of a message recipient, defaults to None + :type recipient_id: str, optional + """ + + def __init__( + self, + extension_number: str = None, + extension_id: str = None, + location: str = None, + target: bool = None, + message_status: MessageStatusEnum = None, + fax_error_code: FaxErrorCodeEnum = None, + name: str = None, + phone_number: str = None, + recipient_id: str = None, + ): + if extension_number is not None: + self.extension_number = extension_number + if extension_id is not None: + self.extension_id = extension_id + if location is not None: + self.location = location + if target is not None: + self.target = target + if message_status is not None: + self.message_status = self._enum_matching( + message_status, MessageStatusEnum.list(), "message_status" + ) + if fax_error_code is not None: + self.fax_error_code = self._enum_matching( + fax_error_code, FaxErrorCodeEnum.list(), "fax_error_code" + ) + if name is not None: + self.name = name + if phone_number is not None: + self.phone_number = phone_number + if recipient_id is not None: + self.recipient_id = recipient_id diff --git a/src/ring_central/models/message_store_configuration.py b/src/ring_central/models/message_store_configuration.py new file mode 100644 index 00000000..f1e3105f --- /dev/null +++ b/src/ring_central/models/message_store_configuration.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"retention_period": "retentionPeriod"}) +class MessageStoreConfiguration(BaseModel): + """MessageStoreConfiguration + + :param retention_period: Retention policy setting, specifying how long to keep messages; the supported value range is 7-90 days. Currently, the retention period is supported for `Fax` and `Voicemail` messages only. SMS messages are stored with no time limits , defaults to None + :type retention_period: int, optional + """ + + def __init__(self, retention_period: int = None): + if retention_period is not None: + self.retention_period = retention_period diff --git a/src/ring_central/models/message_store_report.py b/src/ring_central/models/message_store_report.py new file mode 100644 index 00000000..67d9c984 --- /dev/null +++ b/src/ring_central/models/message_store_report.py @@ -0,0 +1,120 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .pic_message_type_enum import PicMessageTypeEnum + + +class MessageStoreReportStatus(Enum): + """An enumeration representing different categories. + + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar ATTEMPTFAILED: "AttemptFailed" + :vartype ATTEMPTFAILED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar CANCELLED: "Cancelled" + :vartype CANCELLED: str + """ + + ACCEPTED = "Accepted" + PENDING = "Pending" + INPROGRESS = "InProgress" + ATTEMPTFAILED = "AttemptFailed" + FAILED = "Failed" + COMPLETED = "Completed" + CANCELLED = "Cancelled" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MessageStoreReportStatus._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "account_id": "accountId", + "extension_id": "extensionId", + "date_to": "dateTo", + "date_from": "dateFrom", + "start_time": "startTime", + "finish_time": "finishTime", + "message_types": "messageTypes", + } +) +class MessageStoreReport(BaseModel): + """MessageStoreReport + + :param id_: Internal identifier of a message store report task, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a task, defaults to None + :type uri: str, optional + :param status: Status of a message store report task, defaults to None + :type status: MessageStoreReportStatus, optional + :param account_id: Internal identifier of an account, defaults to None + :type account_id: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + :param date_to: The end of the time range to collect message records in ISO 8601 format including timezone, defaults to None + :type date_to: str, optional + :param date_from: The beginning of the time range to collect call log records in ISO 8601 format including timezone, defaults to None + :type date_from: str, optional + :param start_time: The time when this task was started, defaults to None + :type start_time: str, optional + :param finish_time: The time when this task was finished, defaults to None + :type finish_time: str, optional + :param message_types: Type of messages to be collected., defaults to None + :type message_types: List[PicMessageTypeEnum], optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + status: MessageStoreReportStatus = None, + account_id: str = None, + extension_id: str = None, + date_to: str = None, + date_from: str = None, + start_time: str = None, + finish_time: str = None, + message_types: List[PicMessageTypeEnum] = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if status is not None: + self.status = self._enum_matching( + status, MessageStoreReportStatus.list(), "status" + ) + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id + if date_to is not None: + self.date_to = date_to + if date_from is not None: + self.date_from = date_from + if start_time is not None: + self.start_time = start_time + if finish_time is not None: + self.finish_time = finish_time + if message_types is not None: + self.message_types = self._define_list(message_types, PicMessageTypeEnum) diff --git a/src/ring_central/models/message_store_report_archive.py b/src/ring_central/models/message_store_report_archive.py new file mode 100644 index 00000000..4ced6559 --- /dev/null +++ b/src/ring_central/models/message_store_report_archive.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .archive_info import ArchiveInfo + + +@JsonMap({}) +class MessageStoreReportArchive(BaseModel): + """MessageStoreReportArchive + + :param records: records, defaults to None + :type records: List[ArchiveInfo], optional + """ + + def __init__(self, records: List[ArchiveInfo] = None): + if records is not None: + self.records = self._define_list(records, ArchiveInfo) diff --git a/src/ring_central/models/message_template_request.py b/src/ring_central/models/message_template_request.py new file mode 100644 index 00000000..9f1089f1 --- /dev/null +++ b/src/ring_central/models/message_template_request.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .template_info import TemplateInfo +from .site import Site + + +@JsonMap({"display_name": "displayName"}) +class MessageTemplateRequest(BaseModel): + """MessageTemplateRequest + + :param display_name: Name of a template + :type display_name: str + :param body: Text message template information, defaults to None + :type body: TemplateInfo, optional + :param site: Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. The default is `main-site` value. , defaults to None + :type site: Site, optional + """ + + def __init__(self, display_name: str, body: TemplateInfo = None, site: Site = None): + self.display_name = display_name + if body is not None: + self.body = self._define_object(body, TemplateInfo) + if site is not None: + self.site = self._define_object(site, Site) diff --git a/src/ring_central/models/message_template_response.py b/src/ring_central/models/message_template_response.py new file mode 100644 index 00000000..eaf4848f --- /dev/null +++ b/src/ring_central/models/message_template_response.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .template_info import TemplateInfo +from .visibility_type import VisibilityType +from .site import Site + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class MessageTemplateResponse(BaseModel): + """MessageTemplateResponse + + :param id_: Internal identifier of a template, defaults to None + :type id_: str, optional + :param display_name: Name of a template, defaults to None + :type display_name: str, optional + :param body: Text message template information, defaults to None + :type body: TemplateInfo, optional + :param scope: Specifies if a template is available on a user (Personal) or a company (Company) level, defaults to None + :type scope: VisibilityType, optional + :param site: Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. The default is `main-site` value. , defaults to None + :type site: Site, optional + """ + + def __init__( + self, + id_: str = None, + display_name: str = None, + body: TemplateInfo = None, + scope: VisibilityType = None, + site: Site = None, + ): + if id_ is not None: + self.id_ = id_ + if display_name is not None: + self.display_name = display_name + if body is not None: + self.body = self._define_object(body, TemplateInfo) + if scope is not None: + self.scope = self._enum_matching(scope, VisibilityType.list(), "scope") + if site is not None: + self.site = self._define_object(site, Site) diff --git a/src/ring_central/models/message_templates_list_response.py b/src/ring_central/models/message_templates_list_response.py new file mode 100644 index 00000000..1f2039c0 --- /dev/null +++ b/src/ring_central/models/message_templates_list_response.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_template_response import MessageTemplateResponse + + +@JsonMap({}) +class MessageTemplatesListResponse(BaseModel): + """MessageTemplatesListResponse + + :param records: List of text message templates, defaults to None + :type records: List[MessageTemplateResponse], optional + """ + + def __init__(self, records: List[MessageTemplateResponse] = None): + if records is not None: + self.records = self._define_list(records, MessageTemplateResponse) diff --git a/src/ring_central/models/message_type_enum.py b/src/ring_central/models/message_type_enum.py new file mode 100644 index 00000000..d816d21b --- /dev/null +++ b/src/ring_central/models/message_type_enum.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MessageTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MessageTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/messaging_navigation_info.py b/src/ring_central/models/messaging_navigation_info.py new file mode 100644 index 00000000..1015757b --- /dev/null +++ b/src/ring_central/models/messaging_navigation_info.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .messaging_navigation_info_uri import MessagingNavigationInfoUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class MessagingNavigationInfo(BaseModel): + """Information on navigation + + :param first_page: Canonical URI for the corresponding page of the list, defaults to None + :type first_page: MessagingNavigationInfoUri, optional + :param next_page: Canonical URI for the corresponding page of the list, defaults to None + :type next_page: MessagingNavigationInfoUri, optional + :param previous_page: Canonical URI for the corresponding page of the list, defaults to None + :type previous_page: MessagingNavigationInfoUri, optional + :param last_page: Canonical URI for the corresponding page of the list, defaults to None + :type last_page: MessagingNavigationInfoUri, optional + """ + + def __init__( + self, + first_page: MessagingNavigationInfoUri = None, + next_page: MessagingNavigationInfoUri = None, + previous_page: MessagingNavigationInfoUri = None, + last_page: MessagingNavigationInfoUri = None, + ): + if first_page is not None: + self.first_page = self._define_object( + first_page, MessagingNavigationInfoUri + ) + if next_page is not None: + self.next_page = self._define_object(next_page, MessagingNavigationInfoUri) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, MessagingNavigationInfoUri + ) + if last_page is not None: + self.last_page = self._define_object(last_page, MessagingNavigationInfoUri) diff --git a/src/ring_central/models/messaging_navigation_info_uri.py b/src/ring_central/models/messaging_navigation_info_uri.py new file mode 100644 index 00000000..9d035403 --- /dev/null +++ b/src/ring_central/models/messaging_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class MessagingNavigationInfoUri(BaseModel): + """Canonical URI for the corresponding page of the list + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/messaging_paging_info.py b/src/ring_central/models/messaging_paging_info.py new file mode 100644 index 00000000..23438ac3 --- /dev/null +++ b/src/ring_central/models/messaging_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class MessagingPagingInfo(BaseModel): + """Information on paging + + :param page: Current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) , defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied , defaults to None + :type per_page: int, optional + :param page_start: Zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty , defaults to None + :type page_start: int, optional + :param page_end: Zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty , defaults to None + :type page_end: int, optional + :param total_pages: Total number of pages in a dataset. May be omitted for some resources due to performance reasons , defaults to None + :type total_pages: int, optional + :param total_elements: Total number of elements in a dataset. May be omitted for some resource due to performance reasons , defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/missed_call_extension_info.py b/src/ring_central/models/missed_call_extension_info.py new file mode 100644 index 00000000..b665b723 --- /dev/null +++ b/src/ring_central/models/missed_call_extension_info.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .missed_call_extension_info_external_number import ( + MissedCallExtensionInfoExternalNumber, +) + + +@JsonMap({"id_": "id", "external_number": "externalNumber"}) +class MissedCallExtensionInfo(BaseModel): + """Specifies an extension (a calling group) which should be used for the missed call transfer. Returned only if the `actionType` is set to 'ConnectToExtension' + + :param id_: Internal identifier of an extension which should be used for the missed call transfer, defaults to None + :type id_: str, optional + :param external_number: Specifies an external PSTN number which should be used for the missed call transfer. Returned only if the actionType is set to `ConnectToExternalNumber`, defaults to None + :type external_number: MissedCallExtensionInfoExternalNumber, optional + """ + + def __init__( + self, + id_: str = None, + external_number: MissedCallExtensionInfoExternalNumber = None, + ): + if id_ is not None: + self.id_ = id_ + if external_number is not None: + self.external_number = self._define_object( + external_number, MissedCallExtensionInfoExternalNumber + ) diff --git a/src/ring_central/models/missed_call_extension_info_external_number.py b/src/ring_central/models/missed_call_extension_info_external_number.py new file mode 100644 index 00000000..7aebd487 --- /dev/null +++ b/src/ring_central/models/missed_call_extension_info_external_number.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber"}) +class MissedCallExtensionInfoExternalNumber(BaseModel): + """Specifies an external PSTN number which should be used for the missed call transfer. Returned only if the actionType is set to `ConnectToExternalNumber` + + :param phone_number: Phone number to which the call is forwarded. In addition to common [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, the following number patterns are supported: 11xxxxxxxxxxx, 444xxxxxxxxxxx, 616xxxxxxxxxxx, 1700yyyy; where `xxxxxxxxxxx` is a phone number in e.164 format (without '+' sign) and `yyyy` is an external short extension number. Maximum number of digits is 15, defaults to None + :type phone_number: str, optional + """ + + def __init__(self, phone_number: str = None): + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/missed_call_info.py b/src/ring_central/models/missed_call_info.py new file mode 100644 index 00000000..ac1fb45a --- /dev/null +++ b/src/ring_central/models/missed_call_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .missed_call_extension_info import MissedCallExtensionInfo + + +class ActionType(Enum): + """An enumeration representing different categories. + + :cvar PLAYGREETINGANDDISCONNECT: "PlayGreetingAndDisconnect" + :vartype PLAYGREETINGANDDISCONNECT: str + :cvar CONNECTTOEXTENSION: "ConnectToExtension" + :vartype CONNECTTOEXTENSION: str + :cvar CONNECTTOEXTERNALNUMBER: "ConnectToExternalNumber" + :vartype CONNECTTOEXTERNALNUMBER: str + """ + + PLAYGREETINGANDDISCONNECT = "PlayGreetingAndDisconnect" + CONNECTTOEXTENSION = "ConnectToExtension" + CONNECTTOEXTERNALNUMBER = "ConnectToExternalNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ActionType._member_map_.values())) + + +@JsonMap({"action_type": "actionType"}) +class MissedCallInfo(BaseModel): + """Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false' + + :param action_type: Specifies the action that should be executed on a missed call. It can either be playing greeting message and disconnection, or sending call to a calling group. If 'ConnectToExtension' is set, then calling group extension should be specified, defaults to None + :type action_type: ActionType, optional + :param extension: Specifies an extension (a calling group) which should be used for the missed call transfer. Returned only if the `actionType` is set to 'ConnectToExtension', defaults to None + :type extension: MissedCallExtensionInfo, optional + """ + + def __init__( + self, action_type: ActionType = None, extension: MissedCallExtensionInfo = None + ): + if action_type is not None: + self.action_type = self._enum_matching( + action_type, ActionType.list(), "action_type" + ) + if extension is not None: + self.extension = self._define_object(extension, MissedCallExtensionInfo) diff --git a/src/ring_central/models/missed_calls_info.py b/src/ring_central/models/missed_calls_info.py new file mode 100644 index 00000000..bec706a9 --- /dev/null +++ b/src/ring_central/models/missed_calls_info.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "notify_by_email": "notifyByEmail", + "notify_by_sms": "notifyBySms", + "advanced_email_addresses": "advancedEmailAddresses", + "advanced_sms_email_addresses": "advancedSmsEmailAddresses", + } +) +class MissedCallsInfo(BaseModel): + """MissedCallsInfo + + :param notify_by_email: Email notification flag, defaults to None + :type notify_by_email: bool, optional + :param notify_by_sms: SMS notification flag, defaults to None + :type notify_by_sms: bool, optional + :param advanced_email_addresses: List of recipient email addresses for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_email_addresses: List[str], optional + :param advanced_sms_email_addresses: List of recipient phone numbers for missed call notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_sms_email_addresses: List[str], optional + """ + + def __init__( + self, + notify_by_email: bool = None, + notify_by_sms: bool = None, + advanced_email_addresses: List[str] = None, + advanced_sms_email_addresses: List[str] = None, + ): + if notify_by_email is not None: + self.notify_by_email = notify_by_email + if notify_by_sms is not None: + self.notify_by_sms = notify_by_sms + if advanced_email_addresses is not None: + self.advanced_email_addresses = advanced_email_addresses + if advanced_sms_email_addresses is not None: + self.advanced_sms_email_addresses = advanced_sms_email_addresses diff --git a/src/ring_central/models/mobile_delivery_mode.py b/src/ring_central/models/mobile_delivery_mode.py new file mode 100644 index 00000000..0cf83b27 --- /dev/null +++ b/src/ring_central/models/mobile_delivery_mode.py @@ -0,0 +1,87 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class MobileDeliveryModeTransportType(Enum): + """An enumeration representing different categories. + + :cvar RC_APNS: "RC/APNS" + :vartype RC_APNS: str + :cvar RC_GCM: "RC/GCM" + :vartype RC_GCM: str + """ + + RC_APNS = "RC/APNS" + RC_GCM = "RC/GCM" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, MobileDeliveryModeTransportType._member_map_.values() + ) + ) + + +class MobileDeliveryModeEncryption(Enum): + """An enumeration representing different categories. + + :cvar FALSE: "false" + :vartype FALSE: str + """ + + FALSE = "false" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, MobileDeliveryModeEncryption._member_map_.values()) + ) + + +@JsonMap( + { + "transport_type": "transportType", + "certificate_name": "certificateName", + "registration_id": "registrationId", + } +) +class MobileDeliveryMode(BaseModel): + """MobileDeliveryMode + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: MobileDeliveryModeTransportType + :param certificate_name: Certificate name for mobile notification transports + :type certificate_name: str + :param registration_id: Device instance ID for mobile notification transports + :type registration_id: str + :param encryption: Specifies if notification messages will be encrypted or not. + :type encryption: MobileDeliveryModeEncryption + """ + + def __init__( + self, + transport_type: MobileDeliveryModeTransportType, + certificate_name: str, + registration_id: str, + encryption: MobileDeliveryModeEncryption, + ): + self.transport_type = self._enum_matching( + transport_type, MobileDeliveryModeTransportType.list(), "transport_type" + ) + self.certificate_name = certificate_name + self.registration_id = registration_id + self.encryption = self._enum_matching( + encryption, MobileDeliveryModeEncryption.list(), "encryption" + ) diff --git a/src/ring_central/models/mobile_delivery_mode_request.py b/src/ring_central/models/mobile_delivery_mode_request.py new file mode 100644 index 00000000..f2bbd74b --- /dev/null +++ b/src/ring_central/models/mobile_delivery_mode_request.py @@ -0,0 +1,64 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class MobileDeliveryModeRequestTransportType(Enum): + """An enumeration representing different categories. + + :cvar RC_APNS: "RC/APNS" + :vartype RC_APNS: str + :cvar RC_GCM: "RC/GCM" + :vartype RC_GCM: str + """ + + RC_APNS = "RC/APNS" + RC_GCM = "RC/GCM" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + MobileDeliveryModeRequestTransportType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "transport_type": "transportType", + "certificate_name": "certificateName", + "registration_id": "registrationId", + } +) +class MobileDeliveryModeRequest(BaseModel): + """MobileDeliveryModeRequest + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: MobileDeliveryModeRequestTransportType + :param certificate_name: Certificate name for mobile notification transports + :type certificate_name: str + :param registration_id: Device instance ID for mobile notification transports + :type registration_id: str + """ + + def __init__( + self, + transport_type: MobileDeliveryModeRequestTransportType, + certificate_name: str, + registration_id: str, + ): + self.transport_type = self._enum_matching( + transport_type, + MobileDeliveryModeRequestTransportType.list(), + "transport_type", + ) + self.certificate_name = certificate_name + self.registration_id = registration_id diff --git a/src/ring_central/models/model_info.py b/src/ring_central/models/model_info.py new file mode 100644 index 00000000..11d2df12 --- /dev/null +++ b/src/ring_central/models/model_info.py @@ -0,0 +1,49 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .addon_info import AddonInfo +from .device_feature_enum import DeviceFeatureEnum + + +@JsonMap({"id_": "id", "device_class": "deviceClass", "line_count": "lineCount"}) +class ModelInfo(BaseModel): + """HardPhone model information + + :param id_: Internal identifier of a HardPhone device model, defaults to None + :type id_: str, optional + :param name: Device name, defaults to None + :type name: str, optional + :param addons: Add-ons description, defaults to None + :type addons: List[AddonInfo], optional + :param device_class: device_class, defaults to None + :type device_class: str, optional + :param features: Device feature or multiple features supported, defaults to None + :type features: List[DeviceFeatureEnum], optional + :param line_count: Max supported count of phone lines, defaults to None + :type line_count: int, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + addons: List[AddonInfo] = None, + device_class: str = None, + features: List[DeviceFeatureEnum] = None, + line_count: int = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if addons is not None: + self.addons = self._define_list(addons, AddonInfo) + if device_class is not None: + self.device_class = device_class + if features is not None: + self.features = self._define_list(features, DeviceFeatureEnum) + if line_count is not None: + self.line_count = line_count diff --git a/src/ring_central/models/modify_account_business_address_request.py b/src/ring_central/models/modify_account_business_address_request.py new file mode 100644 index 00000000..c3ce3db5 --- /dev/null +++ b/src/ring_central/models/modify_account_business_address_request.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .business_address_info import BusinessAddressInfo + + +@JsonMap({"business_address": "businessAddress", "main_site_name": "mainSiteName"}) +class ModifyAccountBusinessAddressRequest(BaseModel): + """ModifyAccountBusinessAddressRequest + + :param company: Company business name, defaults to None + :type company: str, optional + :param email: Company business email address, defaults to None + :type email: str, optional + :param business_address: Company business address, defaults to None + :type business_address: BusinessAddressInfo, optional + :param main_site_name: Custom site name, defaults to None + :type main_site_name: str, optional + """ + + def __init__( + self, + company: str = None, + email: str = None, + business_address: BusinessAddressInfo = None, + main_site_name: str = None, + ): + if company is not None: + self.company = company + if email is not None: + self.email = email + if business_address is not None: + self.business_address = self._define_object( + business_address, BusinessAddressInfo + ) + if main_site_name is not None: + self.main_site_name = main_site_name diff --git a/src/ring_central/models/monthly_week.py b/src/ring_central/models/monthly_week.py new file mode 100644 index 00000000..b972fe72 --- /dev/null +++ b/src/ring_central/models/monthly_week.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class MonthlyWeek(Enum): + """An enumeration representing different categories. + + :cvar LAST: "Last" + :vartype LAST: str + :cvar FIRST: "First" + :vartype FIRST: str + :cvar SECOND: "Second" + :vartype SECOND: str + :cvar THIRD: "Third" + :vartype THIRD: str + :cvar FOURTH: "Fourth" + :vartype FOURTH: str + """ + + LAST = "Last" + FIRST = "First" + SECOND = "Second" + THIRD = "Third" + FOURTH = "Fourth" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MonthlyWeek._member_map_.values())) diff --git a/src/ring_central/models/network_info.py b/src/ring_central/models/network_info.py new file mode 100644 index 00000000..582ae7d6 --- /dev/null +++ b/src/ring_central/models/network_info.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo +from .public_ip_range_info import PublicIpRangeInfo +from .private_ip_range_info import PrivateIpRangeInfo + + +@JsonMap( + { + "id_": "id", + "public_ip_ranges": "publicIpRanges", + "private_ip_ranges": "privateIpRanges", + } +) +class NetworkInfo(BaseModel): + """NetworkInfo + + :param id_: Internal identifier of a network, defaults to None + :type id_: str, optional + :param uri: Link to a network resource, defaults to None + :type uri: str, optional + :param name: name, defaults to None + :type name: str, optional + :param site: Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` , defaults to None + :type site: AutomaticLocationUpdatesSiteInfo, optional + :param public_ip_ranges: public_ip_ranges, defaults to None + :type public_ip_ranges: List[PublicIpRangeInfo], optional + :param private_ip_ranges: private_ip_ranges, defaults to None + :type private_ip_ranges: List[PrivateIpRangeInfo], optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + site: AutomaticLocationUpdatesSiteInfo = None, + public_ip_ranges: List[PublicIpRangeInfo] = None, + private_ip_ranges: List[PrivateIpRangeInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, AutomaticLocationUpdatesSiteInfo) + if public_ip_ranges is not None: + self.public_ip_ranges = self._define_list( + public_ip_ranges, PublicIpRangeInfo + ) + if private_ip_ranges is not None: + self.private_ip_ranges = self._define_list( + private_ip_ranges, PrivateIpRangeInfo + ) diff --git a/src/ring_central/models/networks_list.py b/src/ring_central/models/networks_list.py new file mode 100644 index 00000000..09ac32ef --- /dev/null +++ b/src/ring_central/models/networks_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .network_info import NetworkInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class NetworksList(BaseModel): + """NetworksList + + :param uri: Link to a networks resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[NetworkInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[NetworkInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, NetworkInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/non_enumerated_paging_model.py b/src/ring_central/models/non_enumerated_paging_model.py new file mode 100644 index 00000000..45e36d25 --- /dev/null +++ b/src/ring_central/models/non_enumerated_paging_model.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_token": "pageToken", + "next_page_token": "nextPageToken", + "previous_page_token": "previousPageToken", + "first_page_token": "firstPageToken", + } +) +class NonEnumeratedPagingModel(BaseModel): + """NonEnumeratedPagingModel + + :param per_page: Current page size, describes how many items are in each page. Matches "perPage" parameter from the request. + :type per_page: int + :param page_token: Current page token. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested) , defaults to None + :type page_token: str, optional + :param next_page_token: A page token to be used to fetch the next page of the result set. May be omitted if the current page is the last one., defaults to None + :type next_page_token: str, optional + :param previous_page_token: A page token to be used to fetch the previous page of the result set. May be omitted if the current page is the first one or if the result set does not support backward navigation. , defaults to None + :type previous_page_token: str, optional + :param first_page_token: A page token to be used to fetch the first page of the result set., defaults to None + :type first_page_token: str, optional + """ + + def __init__( + self, + per_page: int, + page_token: str = None, + next_page_token: str = None, + previous_page_token: str = None, + first_page_token: str = None, + ): + self.per_page = per_page + if page_token is not None: + self.page_token = page_token + if next_page_token is not None: + self.next_page_token = next_page_token + if previous_page_token is not None: + self.previous_page_token = previous_page_token + if first_page_token is not None: + self.first_page_token = first_page_token diff --git a/src/ring_central/models/notification_delivery_mode.py b/src/ring_central/models/notification_delivery_mode.py new file mode 100644 index 00000000..8288e08c --- /dev/null +++ b/src/ring_central/models/notification_delivery_mode.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .webhook_delivery_mode import WebhookDeliveryMode +from .mobile_delivery_mode import MobileDeliveryMode +from .pub_nub_delivery_mode import PubNubDeliveryMode +from .web_socket_delivery_mode import WebSocketDeliveryMode + + +class NotificationDeliveryModeGuard(OneOfBaseModel): + class_list = { + "WebhookDeliveryMode": WebhookDeliveryMode, + "MobileDeliveryMode": MobileDeliveryMode, + "PubNubDeliveryMode": PubNubDeliveryMode, + "WebSocketDeliveryMode": WebSocketDeliveryMode, + } + + +NotificationDeliveryMode = Union[ + WebhookDeliveryMode, MobileDeliveryMode, PubNubDeliveryMode, WebSocketDeliveryMode +] diff --git a/src/ring_central/models/notification_delivery_mode_request.py b/src/ring_central/models/notification_delivery_mode_request.py new file mode 100644 index 00000000..b96a4b61 --- /dev/null +++ b/src/ring_central/models/notification_delivery_mode_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .webhook_delivery_mode_request import WebhookDeliveryModeRequest +from .mobile_delivery_mode_request import MobileDeliveryModeRequest +from .pub_nub_delivery_mode_request import PubNubDeliveryModeRequest + + +class NotificationDeliveryModeRequestGuard(OneOfBaseModel): + class_list = { + "WebhookDeliveryModeRequest": WebhookDeliveryModeRequest, + "MobileDeliveryModeRequest": MobileDeliveryModeRequest, + "PubNubDeliveryModeRequest": PubNubDeliveryModeRequest, + } + + +NotificationDeliveryModeRequest = Union[ + WebhookDeliveryModeRequest, MobileDeliveryModeRequest, PubNubDeliveryModeRequest +] diff --git a/src/ring_central/models/notification_settings.py b/src/ring_central/models/notification_settings.py new file mode 100644 index 00000000..28929bf3 --- /dev/null +++ b/src/ring_central/models/notification_settings.py @@ -0,0 +1,92 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .email_recipient_info import EmailRecipientInfo +from .voicemails_info import VoicemailsInfo +from .inbound_faxes_info import InboundFaxesInfo +from .outbound_faxes_info import OutboundFaxesInfo +from .inbound_texts_info import InboundTextsInfo +from .missed_calls_info import MissedCallsInfo + + +@JsonMap( + { + "email_recipients": "emailRecipients", + "email_addresses": "emailAddresses", + "include_managers": "includeManagers", + "sms_email_addresses": "smsEmailAddresses", + "advanced_mode": "advancedMode", + "inbound_faxes": "inboundFaxes", + "outbound_faxes": "outboundFaxes", + "inbound_texts": "inboundTexts", + "missed_calls": "missedCalls", + } +) +class NotificationSettings(BaseModel): + """NotificationSettings + + :param uri: Canonical URI of notifications settings resource, defaults to None + :type uri: str, optional + :param email_recipients: List of extensions specified as email notification recipients. Returned only for call queues where queue managers are assigned as user extensions. , defaults to None + :type email_recipients: List[EmailRecipientInfo], optional + :param email_addresses: List of notification recipient email addresses , defaults to None + :type email_addresses: List[str], optional + :param include_managers: Specifies if managers' emails are included in the list of emails to which notifications are sent , defaults to None + :type include_managers: bool, optional + :param sms_email_addresses: List of notification recipient email addresses, defaults to None + :type sms_email_addresses: List[str], optional + :param advanced_mode: Specifies notifications settings mode. If `true` then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If `false` then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied , defaults to None + :type advanced_mode: bool, optional + :param voicemails: voicemails, defaults to None + :type voicemails: VoicemailsInfo, optional + :param inbound_faxes: inbound_faxes, defaults to None + :type inbound_faxes: InboundFaxesInfo, optional + :param outbound_faxes: outbound_faxes, defaults to None + :type outbound_faxes: OutboundFaxesInfo, optional + :param inbound_texts: inbound_texts, defaults to None + :type inbound_texts: InboundTextsInfo, optional + :param missed_calls: missed_calls, defaults to None + :type missed_calls: MissedCallsInfo, optional + """ + + def __init__( + self, + uri: str = None, + email_recipients: List[EmailRecipientInfo] = None, + email_addresses: List[str] = None, + include_managers: bool = None, + sms_email_addresses: List[str] = None, + advanced_mode: bool = None, + voicemails: VoicemailsInfo = None, + inbound_faxes: InboundFaxesInfo = None, + outbound_faxes: OutboundFaxesInfo = None, + inbound_texts: InboundTextsInfo = None, + missed_calls: MissedCallsInfo = None, + ): + if uri is not None: + self.uri = uri + if email_recipients is not None: + self.email_recipients = self._define_list( + email_recipients, EmailRecipientInfo + ) + if email_addresses is not None: + self.email_addresses = email_addresses + if include_managers is not None: + self.include_managers = include_managers + if sms_email_addresses is not None: + self.sms_email_addresses = sms_email_addresses + if advanced_mode is not None: + self.advanced_mode = advanced_mode + if voicemails is not None: + self.voicemails = self._define_object(voicemails, VoicemailsInfo) + if inbound_faxes is not None: + self.inbound_faxes = self._define_object(inbound_faxes, InboundFaxesInfo) + if outbound_faxes is not None: + self.outbound_faxes = self._define_object(outbound_faxes, OutboundFaxesInfo) + if inbound_texts is not None: + self.inbound_texts = self._define_object(inbound_texts, InboundTextsInfo) + if missed_calls is not None: + self.missed_calls = self._define_object(missed_calls, MissedCallsInfo) diff --git a/src/ring_central/models/notification_settings_update_request.py b/src/ring_central/models/notification_settings_update_request.py new file mode 100644 index 00000000..a4441a88 --- /dev/null +++ b/src/ring_central/models/notification_settings_update_request.py @@ -0,0 +1,78 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .voicemails_info import VoicemailsInfo +from .inbound_faxes_info import InboundFaxesInfo +from .outbound_faxes_info import OutboundFaxesInfo +from .inbound_texts_info import InboundTextsInfo +from .missed_calls_info import MissedCallsInfo + + +@JsonMap( + { + "email_addresses": "emailAddresses", + "sms_email_addresses": "smsEmailAddresses", + "advanced_mode": "advancedMode", + "inbound_faxes": "inboundFaxes", + "outbound_faxes": "outboundFaxes", + "inbound_texts": "inboundTexts", + "missed_calls": "missedCalls", + "include_managers": "includeManagers", + } +) +class NotificationSettingsUpdateRequest(BaseModel): + """NotificationSettingsUpdateRequest + + :param email_addresses: List of notification recipient email addresses. Should not be empty if 'includeManagers' parameter is set to false , defaults to None + :type email_addresses: List[str], optional + :param sms_email_addresses: List of notification recipient email addresses, defaults to None + :type sms_email_addresses: List[str], optional + :param advanced_mode: Specifies notifications settings mode. If `true` then advanced mode is on, it allows using different emails and/or phone numbers for each notification type. If `false` then basic mode is on. Advanced mode settings are returned in both modes, if specified once, but if basic mode is switched on, they are not applied , defaults to None + :type advanced_mode: bool, optional + :param voicemails: voicemails, defaults to None + :type voicemails: VoicemailsInfo, optional + :param inbound_faxes: inbound_faxes, defaults to None + :type inbound_faxes: InboundFaxesInfo, optional + :param outbound_faxes: outbound_faxes, defaults to None + :type outbound_faxes: OutboundFaxesInfo, optional + :param inbound_texts: inbound_texts, defaults to None + :type inbound_texts: InboundTextsInfo, optional + :param missed_calls: missed_calls, defaults to None + :type missed_calls: MissedCallsInfo, optional + :param include_managers: Specifies if managers' emails are included in the list of emails to which notifications are sent. If not specified, then the value is `true` , defaults to None + :type include_managers: bool, optional + """ + + def __init__( + self, + email_addresses: List[str] = None, + sms_email_addresses: List[str] = None, + advanced_mode: bool = None, + voicemails: VoicemailsInfo = None, + inbound_faxes: InboundFaxesInfo = None, + outbound_faxes: OutboundFaxesInfo = None, + inbound_texts: InboundTextsInfo = None, + missed_calls: MissedCallsInfo = None, + include_managers: bool = None, + ): + if email_addresses is not None: + self.email_addresses = email_addresses + if sms_email_addresses is not None: + self.sms_email_addresses = sms_email_addresses + if advanced_mode is not None: + self.advanced_mode = advanced_mode + if voicemails is not None: + self.voicemails = self._define_object(voicemails, VoicemailsInfo) + if inbound_faxes is not None: + self.inbound_faxes = self._define_object(inbound_faxes, InboundFaxesInfo) + if outbound_faxes is not None: + self.outbound_faxes = self._define_object(outbound_faxes, OutboundFaxesInfo) + if inbound_texts is not None: + self.inbound_texts = self._define_object(inbound_texts, InboundTextsInfo) + if missed_calls is not None: + self.missed_calls = self._define_object(missed_calls, MissedCallsInfo) + if include_managers is not None: + self.include_managers = include_managers diff --git a/src/ring_central/models/on_demand_resource.py b/src/ring_central/models/on_demand_resource.py new file mode 100644 index 00000000..c79547c1 --- /dev/null +++ b/src/ring_central/models/on_demand_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"retention_period": "retentionPeriod"}) +class OnDemandResource(BaseModel): + """OnDemandResource + + :param enabled: Flag for controlling OnDemand Call Recording settings, defaults to None + :type enabled: bool, optional + :param retention_period: Retention period of a call recording, the default value is 90 days, defaults to None + :type retention_period: int, optional + """ + + def __init__(self, enabled: bool = None, retention_period: int = None): + if enabled is not None: + self.enabled = enabled + if retention_period is not None: + self.retention_period = retention_period diff --git a/src/ring_central/models/operator_info.py b/src/ring_central/models/operator_info.py new file mode 100644 index 00000000..ea0d495e --- /dev/null +++ b/src/ring_central/models/operator_info.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class OperatorInfo(BaseModel): + """Site Fax/SMS recipient (operator) reference. Multi-level IVR should + be enabled + + + :param id_: Internal identifier of an operator, defaults to None + :type id_: str, optional + :param uri: Link to an operator resource, defaults to None + :type uri: str, optional + :param extension_number: Extension number (pin), defaults to None + :type extension_number: str, optional + :param name: Operator extension user full name, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/opt_out_bulk_assign_failed_entry.py b/src/ring_central/models/opt_out_bulk_assign_failed_entry.py new file mode 100644 index 00000000..a47d1db6 --- /dev/null +++ b/src/ring_central/models/opt_out_bulk_assign_failed_entry.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_message": "errorMessage"}) +class OptOutBulkAssignFailedEntry(BaseModel): + """Represents a failure of adding opt-out / opt-in. A pair of a recipient phone number and an error message + + :param to: A recipient phone number, defaults to None + :type to: str, optional + :param error_message: An error happened on adding opt-out / opt-in, defaults to None + :type error_message: str, optional + """ + + def __init__(self, to: str = None, error_message: str = None): + if to is not None: + self.to = to + if error_message is not None: + self.error_message = error_message diff --git a/src/ring_central/models/opt_out_bulk_assign_request.py b/src/ring_central/models/opt_out_bulk_assign_request.py new file mode 100644 index 00000000..79472e28 --- /dev/null +++ b/src/ring_central/models/opt_out_bulk_assign_request.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_": "from", "opt_outs": "optOuts", "opt_ins": "optIns"}) +class OptOutBulkAssignRequest(BaseModel): + """Consists of `from` field and `optOuts` and `optIns` lists. Both `optOuts` and `optIns` can be empty but not simultaneously - at least one of the lists must be entered." + + :param from_: The phone number of a sender which the recipients should be opted out from or opted in to + :type from_: str + :param opt_outs: The list of phone numbers to be opted out, defaults to None + :type opt_outs: List[str], optional + :param opt_ins: The list of phone numbers to be opted in, defaults to None + :type opt_ins: List[str], optional + """ + + def __init__( + self, from_: str, opt_outs: List[str] = None, opt_ins: List[str] = None + ): + self.from_ = from_ + if opt_outs is not None: + self.opt_outs = opt_outs + if opt_ins is not None: + self.opt_ins = opt_ins diff --git a/src/ring_central/models/opt_out_bulk_assign_response.py b/src/ring_central/models/opt_out_bulk_assign_response.py new file mode 100644 index 00000000..379d01ed --- /dev/null +++ b/src/ring_central/models/opt_out_bulk_assign_response.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .opt_out_bulk_assign_failed_entry import OptOutBulkAssignFailedEntry + + +@JsonMap({}) +class OptIns(BaseModel): + """Contains successful and failed opt-ins + + :param successful: Recipients' phone numbers which opt-ins were successfully added for., defaults to None + :type successful: List[str], optional + :param failed: Recipients' phone numbers which opt-ins were failed to be added for. Plus, error messages, defaults to None + :type failed: List[OptOutBulkAssignFailedEntry], optional + """ + + def __init__( + self, + successful: List[str] = None, + failed: List[OptOutBulkAssignFailedEntry] = None, + ): + if successful is not None: + self.successful = successful + if failed is not None: + self.failed = self._define_list(failed, OptOutBulkAssignFailedEntry) + + +@JsonMap({}) +class OptOuts(BaseModel): + """Contains successful and failed opt-outs + + :param successful: Recipients' phone numbers which opt-outs were successfully added for., defaults to None + :type successful: List[str], optional + :param failed: Recipients' phone numbers which opt-outs were failed to be added for. Plus, error messages, defaults to None + :type failed: List[OptOutBulkAssignFailedEntry], optional + """ + + def __init__( + self, + successful: List[str] = None, + failed: List[OptOutBulkAssignFailedEntry] = None, + ): + if successful is not None: + self.successful = successful + if failed is not None: + self.failed = self._define_list(failed, OptOutBulkAssignFailedEntry) + + +@JsonMap({"opt_ins": "optIns", "opt_outs": "optOuts"}) +class OptOutBulkAssignResponse(BaseModel): + """The results of adding opt-outs and opt-ins + + :param opt_ins: Contains successful and failed opt-ins, defaults to None + :type opt_ins: OptIns, optional + :param opt_outs: Contains successful and failed opt-outs, defaults to None + :type opt_outs: OptOuts, optional + """ + + def __init__(self, opt_ins: OptIns = None, opt_outs: OptOuts = None): + if opt_ins is not None: + self.opt_ins = self._define_object(opt_ins, OptIns) + if opt_outs is not None: + self.opt_outs = self._define_object(opt_outs, OptOuts) diff --git a/src/ring_central/models/opt_out_list_response.py b/src/ring_central/models/opt_out_list_response.py new file mode 100644 index 00000000..7320b46a --- /dev/null +++ b/src/ring_central/models/opt_out_list_response.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .opt_out_response import OptOutResponse +from .paging_resource import PagingResource + + +@JsonMap({}) +class OptOutListResponse(BaseModel): + """The list of opt outs + + :param records: List of individual opt-out number records, defaults to None + :type records: List[OptOutResponse], optional + :param paging: Pagination details, defaults to None + :type paging: PagingResource, optional + """ + + def __init__( + self, records: List[OptOutResponse] = None, paging: PagingResource = None + ): + if records is not None: + self.records = self._define_list(records, OptOutResponse) + if paging is not None: + self.paging = self._define_object(paging, PagingResource) diff --git a/src/ring_central/models/opt_out_response.py b/src/ring_central/models/opt_out_response.py new file mode 100644 index 00000000..ad7bca0a --- /dev/null +++ b/src/ring_central/models/opt_out_response.py @@ -0,0 +1,86 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class OptOutResponseStatus(Enum): + """An enumeration representing different categories. + + :cvar OPTIN: "OptIn" + :vartype OPTIN: str + :cvar OPTOUT: "OptOut" + :vartype OPTOUT: str + """ + + OPTIN = "OptIn" + OPTOUT = "OptOut" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, OptOutResponseStatus._member_map_.values())) + + +class Source(Enum): + """An enumeration representing different categories. + + :cvar RECIPIENT: "Recipient" + :vartype RECIPIENT: str + :cvar ACCOUNT: "Account" + :vartype ACCOUNT: str + :cvar UPSTREAM: "Upstream" + :vartype UPSTREAM: str + :cvar CARRIER: "Carrier" + :vartype CARRIER: str + """ + + RECIPIENT = "Recipient" + ACCOUNT = "Account" + UPSTREAM = "Upstream" + CARRIER = "Carrier" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Source._member_map_.values())) + + +@JsonMap({"from_": "from"}) +class OptOutResponse(BaseModel): + """Opt-out record + + :param from_: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format from which the recipient has opted out, defaults to None + :type from_: str, optional + :param to: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format which is opted out, defaults to None + :type to: str, optional + :param status: Status of a phone number, defaults to None + :type status: OptOutResponseStatus, optional + :param source: source, defaults to None + :type source: Source, optional + """ + + def __init__( + self, + from_: str = None, + to: str = None, + status: OptOutResponseStatus = None, + source: Source = None, + ): + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to + if status is not None: + self.status = self._enum_matching( + status, OptOutResponseStatus.list(), "status" + ) + if source is not None: + self.source = self._enum_matching(source, Source.list(), "source") diff --git a/src/ring_central/models/order_by.py b/src/ring_central/models/order_by.py new file mode 100644 index 00000000..90c2e906 --- /dev/null +++ b/src/ring_central/models/order_by.py @@ -0,0 +1,92 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class FieldName(Enum): + """An enumeration representing different categories. + + :cvar FIRSTNAME: "firstName" + :vartype FIRSTNAME: str + :cvar LASTNAME: "lastName" + :vartype LASTNAME: str + :cvar EXTENSIONNUMBER: "extensionNumber" + :vartype EXTENSIONNUMBER: str + :cvar PHONENUMBER: "phoneNumber" + :vartype PHONENUMBER: str + :cvar EMAIL: "email" + :vartype EMAIL: str + :cvar JOBTITLE: "jobTitle" + :vartype JOBTITLE: str + :cvar DEPARTMENT: "department" + :vartype DEPARTMENT: str + """ + + FIRSTNAME = "firstName" + LASTNAME = "lastName" + EXTENSIONNUMBER = "extensionNumber" + PHONENUMBER = "phoneNumber" + EMAIL = "email" + JOBTITLE = "jobTitle" + DEPARTMENT = "department" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, FieldName._member_map_.values())) + + +class OrderByDirection(Enum): + """An enumeration representing different categories. + + :cvar ASC: "Asc" + :vartype ASC: str + :cvar DESC: "Desc" + :vartype DESC: str + """ + + ASC = "Asc" + DESC = "Desc" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, OrderByDirection._member_map_.values())) + + +@JsonMap({"field_name": "fieldName"}) +class OrderBy(BaseModel): + """OrderBy + + :param index: Sorting priority index, starting from '1'. Optional if only one element in `orderBy` array is specified, defaults to None + :type index: int, optional + :param field_name: Field name by which to sort the contacts, defaults to None + :type field_name: FieldName, optional + :param direction: Sorting direction, defaults to None + :type direction: OrderByDirection, optional + """ + + def __init__( + self, + index: int = None, + field_name: FieldName = None, + direction: OrderByDirection = None, + ): + if index is not None: + self.index = index + if field_name is not None: + self.field_name = self._enum_matching( + field_name, FieldName.list(), "field_name" + ) + if direction is not None: + self.direction = self._enum_matching( + direction, OrderByDirection.list(), "direction" + ) diff --git a/src/ring_central/models/origin.py b/src/ring_central/models/origin.py new file mode 100644 index 00000000..c24f9fc0 --- /dev/null +++ b/src/ring_central/models/origin.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class Origin(Enum): + """An enumeration representing different categories. + + :cvar INTERNAL: "Internal" + :vartype INTERNAL: str + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + """ + + INTERNAL = "Internal" + EXTERNAL = "External" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Origin._member_map_.values())) diff --git a/src/ring_central/models/origin_info.py b/src/ring_central/models/origin_info.py new file mode 100644 index 00000000..519513ad --- /dev/null +++ b/src/ring_central/models/origin_info.py @@ -0,0 +1,57 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class OriginInfoType(Enum): + """An enumeration representing different categories. + + :cvar CALL: "Call" + :vartype CALL: str + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar RINGME: "RingMe" + :vartype RINGME: str + :cvar CONFERENCE: "Conference" + :vartype CONFERENCE: str + :cvar GREETINGSRECORDING: "GreetingsRecording" + :vartype GREETINGSRECORDING: str + :cvar VERIFICATIONCALL: "VerificationCall" + :vartype VERIFICATIONCALL: str + :cvar ZOOM: "Zoom" + :vartype ZOOM: str + :cvar CALLOUT: "CallOut" + :vartype CALLOUT: str + """ + + CALL = "Call" + RINGOUT = "RingOut" + RINGME = "RingMe" + CONFERENCE = "Conference" + GREETINGSRECORDING = "GreetingsRecording" + VERIFICATIONCALL = "VerificationCall" + ZOOM = "Zoom" + CALLOUT = "CallOut" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, OriginInfoType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class OriginInfo(BaseModel): + """Session origin details + + :param type_: Session origin type, defaults to None + :type type_: OriginInfoType, optional + """ + + def __init__(self, type_: OriginInfoType = None): + if type_ is not None: + self.type_ = self._enum_matching(type_, OriginInfoType.list(), "type_") diff --git a/src/ring_central/models/outbound_faxes_info.py b/src/ring_central/models/outbound_faxes_info.py new file mode 100644 index 00000000..809880f2 --- /dev/null +++ b/src/ring_central/models/outbound_faxes_info.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "notify_by_email": "notifyByEmail", + "notify_by_sms": "notifyBySms", + "advanced_email_addresses": "advancedEmailAddresses", + "advanced_sms_email_addresses": "advancedSmsEmailAddresses", + } +) +class OutboundFaxesInfo(BaseModel): + """OutboundFaxesInfo + + :param notify_by_email: Email notification flag, defaults to None + :type notify_by_email: bool, optional + :param notify_by_sms: SMS notification flag, defaults to None + :type notify_by_sms: bool, optional + :param advanced_email_addresses: List of recipient email addresses for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_email_addresses: List[str], optional + :param advanced_sms_email_addresses: List of recipient phone numbers for outbound fax notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_sms_email_addresses: List[str], optional + """ + + def __init__( + self, + notify_by_email: bool = None, + notify_by_sms: bool = None, + advanced_email_addresses: List[str] = None, + advanced_sms_email_addresses: List[str] = None, + ): + if notify_by_email is not None: + self.notify_by_email = notify_by_email + if notify_by_sms is not None: + self.notify_by_sms = notify_by_sms + if advanced_email_addresses is not None: + self.advanced_email_addresses = advanced_email_addresses + if advanced_sms_email_addresses is not None: + self.advanced_sms_email_addresses = advanced_sms_email_addresses diff --git a/src/ring_central/models/outbound_proxy_info.py b/src/ring_central/models/outbound_proxy_info.py new file mode 100644 index 00000000..7284c015 --- /dev/null +++ b/src/ring_central/models/outbound_proxy_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"proxy_tls": "proxyTLS"}) +class OutboundProxyInfo(BaseModel): + """OutboundProxyInfo + + :param region: Geographical region, defaults to None + :type region: str, optional + :param proxy: SIP outbound proxy, defaults to None + :type proxy: str, optional + :param proxy_tls: SIP details for TLS (Transport Layer Security), defaults to None + :type proxy_tls: str, optional + """ + + def __init__(self, region: str = None, proxy: str = None, proxy_tls: str = None): + if region is not None: + self.region = region + if proxy is not None: + self.proxy = proxy + if proxy_tls is not None: + self.proxy_tls = proxy_tls diff --git a/src/ring_central/models/owner_info.py b/src/ring_central/models/owner_info.py new file mode 100644 index 00000000..dfa7f0d2 --- /dev/null +++ b/src/ring_central/models/owner_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"account_id": "accountId", "extension_id": "extensionId"}) +class OwnerInfo(BaseModel): + """Deprecated. Information on a call owner + + :param account_id: Internal identifier of an account that monitors a call, defaults to None + :type account_id: str, optional + :param extension_id: Internal identifier of an extension that monitors a call, defaults to None + :type extension_id: str, optional + """ + + def __init__(self, account_id: str = None, extension_id: str = None): + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id diff --git a/src/ring_central/models/package_info.py b/src/ring_central/models/package_info.py new file mode 100644 index 00000000..0d2af2c6 --- /dev/null +++ b/src/ring_central/models/package_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class PackageInfo(BaseModel): + """PackageInfo + + :param version: Billing package version, defaults to None + :type version: str, optional + :param id_: Billing package identifier, defaults to None + :type id_: str, optional + """ + + def __init__(self, version: str = None, id_: str = None): + if version is not None: + self.version = version + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/page_navigation_model.py b/src/ring_central/models/page_navigation_model.py new file mode 100644 index 00000000..a37bc6c6 --- /dev/null +++ b/src/ring_central/models/page_navigation_model.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .page_navigation_uri import PageNavigationUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class PageNavigationModel(BaseModel): + """Links to other pages of the current result set + + :param first_page: first_page, defaults to None + :type first_page: PageNavigationUri, optional + :param next_page: next_page, defaults to None + :type next_page: PageNavigationUri, optional + :param previous_page: previous_page, defaults to None + :type previous_page: PageNavigationUri, optional + :param last_page: last_page, defaults to None + :type last_page: PageNavigationUri, optional + """ + + def __init__( + self, + first_page: PageNavigationUri = None, + next_page: PageNavigationUri = None, + previous_page: PageNavigationUri = None, + last_page: PageNavigationUri = None, + ): + if first_page is not None: + self.first_page = self._define_object(first_page, PageNavigationUri) + if next_page is not None: + self.next_page = self._define_object(next_page, PageNavigationUri) + if previous_page is not None: + self.previous_page = self._define_object(previous_page, PageNavigationUri) + if last_page is not None: + self.last_page = self._define_object(last_page, PageNavigationUri) diff --git a/src/ring_central/models/page_navigation_uri.py b/src/ring_central/models/page_navigation_uri.py new file mode 100644 index 00000000..3b4d9967 --- /dev/null +++ b/src/ring_central/models/page_navigation_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PageNavigationUri(BaseModel): + """PageNavigationUri + + :param uri: Canonical URI to retrieve the particular page of the result set, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/pager_caller_info_request.py b/src/ring_central/models/pager_caller_info_request.py new file mode 100644 index 00000000..2e88ae00 --- /dev/null +++ b/src/ring_central/models/pager_caller_info_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"extension_id": "extensionId", "extension_number": "extensionNumber"}) +class PagerCallerInfoRequest(BaseModel): + """Sender of a pager message. + + :param extension_id: Extension identifier, defaults to None + :type extension_id: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + """ + + def __init__(self, extension_id: str = None, extension_number: str = None): + if extension_id is not None: + self.extension_id = extension_id + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/paging.py b/src/ring_central/models/paging.py new file mode 100644 index 00000000..84c305b4 --- /dev/null +++ b/src/ring_central/models/paging.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"current_page_token": "currentPageToken", "next_page_token": "nextPageToken"}) +class Paging(BaseModel): + """Paging information + + :param current_page_token: Current offset token + :type current_page_token: str + :param next_page_token: Next page offset token, defaults to None + :type next_page_token: str, optional + """ + + def __init__(self, current_page_token: str, next_page_token: str = None): + self.current_page_token = current_page_token + if next_page_token is not None: + self.next_page_token = next_page_token diff --git a/src/ring_central/models/paging_device_info.py b/src/ring_central/models/paging_device_info.py new file mode 100644 index 00000000..9d03ab49 --- /dev/null +++ b/src/ring_central/models/paging_device_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class PagingDeviceInfo(BaseModel): + """PagingDeviceInfo + + :param id_: Internal identifier of a paging device, defaults to None + :type id_: str, optional + :param uri: Link to a paging device resource, defaults to None + :type uri: str, optional + :param name: Name of a paging device, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/paging_group_extension_info.py b/src/ring_central/models/paging_group_extension_info.py new file mode 100644 index 00000000..148db3bf --- /dev/null +++ b/src/ring_central/models/paging_group_extension_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class PagingGroupExtensionInfo(BaseModel): + """PagingGroupExtensionInfo + + :param id_: Internal identifier of a paging group user extension, defaults to None + :type id_: str, optional + :param uri: Link to a paging group user extension, defaults to None + :type uri: str, optional + :param extension_number: Extension number of a paging group user, defaults to None + :type extension_number: str, optional + :param name: Name of a paging group user, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + extension_number: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if name is not None: + self.name = name diff --git a/src/ring_central/models/paging_only_group_devices.py b/src/ring_central/models/paging_only_group_devices.py new file mode 100644 index 00000000..c308b5cf --- /dev/null +++ b/src/ring_central/models/paging_only_group_devices.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .paging_device_info import PagingDeviceInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class PagingOnlyGroupDevices(BaseModel): + """PagingOnlyGroupDevices + + :param uri: Link to a list of devices assigned to the paging only group, defaults to None + :type uri: str, optional + :param records: List of paging devices assigned to this group, defaults to None + :type records: List[PagingDeviceInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PagingDeviceInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PagingDeviceInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/paging_only_group_users.py b/src/ring_central/models/paging_only_group_users.py new file mode 100644 index 00000000..67380496 --- /dev/null +++ b/src/ring_central/models/paging_only_group_users.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .paging_group_extension_info import PagingGroupExtensionInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class PagingOnlyGroupUsers(BaseModel): + """PagingOnlyGroupUsers + + :param uri: Link to a list of users allowed to page the Paging Only group , defaults to None + :type uri: str, optional + :param records: List of users allowed to page the Paging Only group, defaults to None + :type records: List[PagingGroupExtensionInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PagingGroupExtensionInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PagingGroupExtensionInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/paging_resource.py b/src/ring_central/models/paging_resource.py new file mode 100644 index 00000000..aa79c1ee --- /dev/null +++ b/src/ring_central/models/paging_resource.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "page_token": "pageToken", + "per_page": "perPage", + "first_page_token": "firstPageToken", + "previous_page_token": "previousPageToken", + "next_page_token": "nextPageToken", + } +) +class PagingResource(BaseModel): + """Pagination details + + :param page_token: Page token of the current response list, defaults to None + :type page_token: str, optional + :param per_page: Number of records per page, defaults to None + :type per_page: int, optional + :param first_page_token: First page token of the current filter criteria, defaults to None + :type first_page_token: str, optional + :param previous_page_token: Previous page token of the current filter criteria, defaults to None + :type previous_page_token: str, optional + :param next_page_token: Next page token of the current filter criteria, defaults to None + :type next_page_token: str, optional + """ + + def __init__( + self, + page_token: str = None, + per_page: int = None, + first_page_token: str = None, + previous_page_token: str = None, + next_page_token: str = None, + ): + if page_token is not None: + self.page_token = page_token + if per_page is not None: + self.per_page = per_page + if first_page_token is not None: + self.first_page_token = first_page_token + if previous_page_token is not None: + self.previous_page_token = previous_page_token + if next_page_token is not None: + self.next_page_token = next_page_token diff --git a/src/ring_central/models/paging_schema.py b/src/ring_central/models/paging_schema.py new file mode 100644 index 00000000..c92138d5 --- /dev/null +++ b/src/ring_central/models/paging_schema.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"total_pages": "totalPages", "per_page": "perPage"}) +class PagingSchema(BaseModel): + """PagingSchema + + :param page: page + :type page: int + :param total_pages: total_pages + :type total_pages: int + :param per_page: per_page + :type per_page: int + """ + + def __init__(self, page: int, total_pages: int, per_page: int): + self.page = page + self.total_pages = total_pages + self.per_page = per_page diff --git a/src/ring_central/models/params_info.py b/src/ring_central/models/params_info.py new file mode 100644 index 00000000..bd72102c --- /dev/null +++ b/src/ring_central/models/params_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ParamsInfo(BaseModel): + """ParamsInfo + + :param name: Parameter name, defaults to None + :type name: str, optional + :param value: Parameter value, defaults to None + :type value: str, optional + """ + + def __init__(self, name: str = None, value: str = None): + if name is not None: + self.name = name + if value is not None: + self.value = value diff --git a/src/ring_central/models/park_info.py b/src/ring_central/models/park_info.py new file mode 100644 index 00000000..a207753b --- /dev/null +++ b/src/ring_central/models/park_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ParkInfo(BaseModel): + """Call park information + + :param id_: Call park identifier, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/parse_phone_number_request.py b/src/ring_central/models/parse_phone_number_request.py new file mode 100644 index 00000000..7b983337 --- /dev/null +++ b/src/ring_central/models/parse_phone_number_request.py @@ -0,0 +1,18 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"original_strings": "originalStrings"}) +class ParsePhoneNumberRequest(BaseModel): + """ParsePhoneNumberRequest + + :param original_strings: The list of phone numbers passed as an array of strings (not more than 64 items). The maximum size of each string is 64 characters, defaults to None + :type original_strings: List[str], optional + """ + + def __init__(self, original_strings: List[str] = None): + if original_strings is not None: + self.original_strings = original_strings diff --git a/src/ring_central/models/parse_phone_number_response.py b/src/ring_central/models/parse_phone_number_response.py new file mode 100644 index 00000000..7de6fca1 --- /dev/null +++ b/src/ring_central/models/parse_phone_number_response.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_country_info_number_parser import GetCountryInfoNumberParser +from .phone_number_info_number_parser import PhoneNumberInfoNumberParser + + +@JsonMap({"home_country": "homeCountry", "phone_numbers": "phoneNumbers"}) +class ParsePhoneNumberResponse(BaseModel): + """ParsePhoneNumberResponse + + :param uri: Canonical URI of a resource, defaults to None + :type uri: str, optional + :param home_country: home_country + :type home_country: GetCountryInfoNumberParser + :param phone_numbers: Parsed phone numbers information + :type phone_numbers: List[PhoneNumberInfoNumberParser] + """ + + def __init__( + self, + home_country: GetCountryInfoNumberParser, + phone_numbers: List[PhoneNumberInfoNumberParser], + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.home_country = self._define_object( + home_country, GetCountryInfoNumberParser + ) + self.phone_numbers = self._define_list( + phone_numbers, PhoneNumberInfoNumberParser + ) diff --git a/src/ring_central/models/participant.py b/src/ring_central/models/participant.py new file mode 100644 index 00000000..55995e10 --- /dev/null +++ b/src/ring_central/models/participant.py @@ -0,0 +1,58 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "type_": "type", + "id_": "id", + "account_id": "accountId", + "extension_id": "extensionId", + "display_name": "displayName", + "caller_id": "callerId", + "correlation_id": "correlationId", + } +) +class Participant(BaseModel): + """Participant information + + :param type_: Participant type + :type type_: str + :param id_: id + :type id_: str + :param account_id: Account id, defaults to None + :type account_id: str, optional + :param extension_id: Extension id, defaults to None + :type extension_id: str, optional + :param display_name: Display name, defaults to None + :type display_name: str, optional + :param caller_id: Caller id, defaults to None + :type caller_id: str, optional + :param correlation_id: Pass-thru parameter in join url, defaults to None + :type correlation_id: str, optional + """ + + def __init__( + self, + type_: str, + id_: str, + account_id: str = None, + extension_id: str = None, + display_name: str = None, + caller_id: str = None, + correlation_id: str = None, + ): + self.type_ = type_ + self.id_ = id_ + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id + if display_name is not None: + self.display_name = display_name + if caller_id is not None: + self.caller_id = caller_id + if correlation_id is not None: + self.correlation_id = correlation_id diff --git a/src/ring_central/models/participant_extended_model.py b/src/ring_central/models/participant_extended_model.py new file mode 100644 index 00000000..553de01d --- /dev/null +++ b/src/ring_central/models/participant_extended_model.py @@ -0,0 +1,140 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_domain_user_model import RcwDomainUserModel + + +class ParticipantExtendedModelType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + USER = "User" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ParticipantExtendedModelType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "original_role": "originalRole", + "linked_user": "linkedUser", + "avatar_token": "avatarToken", + "type_": "type", + "qna_blocked": "qnaBlocked", + "join_time": "joinTime", + "leave_time": "leaveTime", + "was_ejected": "wasEjected", + "invitee_id": "inviteeId", + "registrant_id": "registrantId", + "unique_user_hash": "uniqueUserHash", + } +) +class ParticipantExtendedModel(BaseModel): + """ParticipantExtendedModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param original_role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type original_role: RcwRoleEnum + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + :param avatar_token: A token to access avatar image from CDN. Available only for authenticated panelists, defaults to None + :type avatar_token: str, optional + :param type_: The type of the participant specified in invite or determined at join time + :type type_: ParticipantExtendedModelType + :param email: User's contact email, defaults to None + :type email: str, optional + :param qna_blocked: Boolean to indicate if the participant was blocked from Q&A , defaults to None + :type qna_blocked: bool, optional + :param join_time: The time (earliest) when this participant joined the session, defaults to None + :type join_time: str, optional + :param leave_time: The time (latest) when this participant left the session, defaults to None + :type leave_time: str, optional + :param was_ejected: Indicates if this participant was ejected from the webinar, defaults to None + :type was_ejected: bool, optional + :param invitee_id: For invited participants - Invitee ID (matches Configuration API Invitee IDs), defaults to None + :type invitee_id: str, optional + :param registrant_id: Registrant ID, defaults to None + :type registrant_id: str, optional + :param unique_user_hash: The hash string which is unique for each unique user, defaults to None + :type unique_user_hash: str, optional + """ + + def __init__( + self, + role: RcwRoleEnum, + original_role: RcwRoleEnum, + type_: ParticipantExtendedModelType, + id_: str = None, + first_name: str = None, + last_name: str = None, + linked_user: RcwDomainUserModel = None, + avatar_token: str = None, + email: str = None, + qna_blocked: bool = None, + join_time: str = None, + leave_time: str = None, + was_ejected: bool = None, + invitee_id: str = None, + registrant_id: str = None, + unique_user_hash: str = None, + ): + if id_ is not None: + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + self.original_role = self._enum_matching( + original_role, RcwRoleEnum.list(), "original_role" + ) + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) + if avatar_token is not None: + self.avatar_token = avatar_token + self.type_ = self._enum_matching( + type_, ParticipantExtendedModelType.list(), "type_" + ) + if email is not None: + self.email = email + if qna_blocked is not None: + self.qna_blocked = qna_blocked + if join_time is not None: + self.join_time = join_time + if leave_time is not None: + self.leave_time = leave_time + if was_ejected is not None: + self.was_ejected = was_ejected + if invitee_id is not None: + self.invitee_id = invitee_id + if registrant_id is not None: + self.registrant_id = registrant_id + if unique_user_hash is not None: + self.unique_user_hash = unique_user_hash diff --git a/src/ring_central/models/participant_list_resource.py b/src/ring_central/models/participant_list_resource.py new file mode 100644 index 00000000..c2c4830d --- /dev/null +++ b/src/ring_central/models/participant_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .participant_extended_model import ParticipantExtendedModel +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class ParticipantListResource(BaseModel): + """ParticipantListResource + + :param records: records + :type records: List[ParticipantExtendedModel] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[ParticipantExtendedModel], paging: RcwPagingModel): + self.records = self._define_list(records, ParticipantExtendedModel) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/participant_reduced_model.py b/src/ring_central/models/participant_reduced_model.py new file mode 100644 index 00000000..a1c18eff --- /dev/null +++ b/src/ring_central/models/participant_reduced_model.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_domain_user_model import RcwDomainUserModel + + +class ParticipantReducedModelType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + USER = "User" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ParticipantReducedModelType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "original_role": "originalRole", + "linked_user": "linkedUser", + "avatar_token": "avatarToken", + "type_": "type", + } +) +class ParticipantReducedModel(BaseModel): + """ParticipantReducedModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param original_role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type original_role: RcwRoleEnum + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + :param avatar_token: A token to access avatar image from CDN. Available only for authenticated panelists, defaults to None + :type avatar_token: str, optional + :param type_: The type of the participant specified in invite or determined at join time + :type type_: ParticipantReducedModelType + """ + + def __init__( + self, + role: RcwRoleEnum, + original_role: RcwRoleEnum, + type_: ParticipantReducedModelType, + id_: str = None, + first_name: str = None, + last_name: str = None, + linked_user: RcwDomainUserModel = None, + avatar_token: str = None, + ): + if id_ is not None: + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + self.original_role = self._enum_matching( + original_role, RcwRoleEnum.list(), "original_role" + ) + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) + if avatar_token is not None: + self.avatar_token = avatar_token + self.type_ = self._enum_matching( + type_, ParticipantReducedModelType.list(), "type_" + ) diff --git a/src/ring_central/models/party_info.py b/src/ring_central/models/party_info.py new file mode 100644 index 00000000..e401ca74 --- /dev/null +++ b/src/ring_central/models/party_info.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "phone_number": "phoneNumber", + "device_id": "deviceId", + "extension_id": "extensionId", + } +) +class PartyInfo(BaseModel): + """PartyInfo + + :param phone_number: Phone number of a party, defaults to None + :type phone_number: str, optional + :param name: Displayed name of a party, defaults to None + :type name: str, optional + :param device_id: Internal identifier of a device, defaults to None + :type device_id: str, optional + :param extension_id: Internal identifier of an extension, defaults to None + :type extension_id: str, optional + """ + + def __init__( + self, + phone_number: str = None, + name: str = None, + device_id: str = None, + extension_id: str = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if name is not None: + self.name = name + if device_id is not None: + self.device_id = device_id + if extension_id is not None: + self.extension_id = extension_id diff --git a/src/ring_central/models/party_supervise_request.py b/src/ring_central/models/party_supervise_request.py new file mode 100644 index 00000000..011a0a2c --- /dev/null +++ b/src/ring_central/models/party_supervise_request.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PartySuperviseRequestMode(Enum): + """An enumeration representing different categories. + + :cvar LISTEN: "Listen" + :vartype LISTEN: str + """ + + LISTEN = "Listen" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PartySuperviseRequestMode._member_map_.values()) + ) + + +class PartySuperviseRequestMediaSdp(Enum): + """An enumeration representing different categories. + + :cvar SENDONLY: "sendOnly" + :vartype SENDONLY: str + :cvar SENDRECV: "sendRecv" + :vartype SENDRECV: str + """ + + SENDONLY = "sendOnly" + SENDRECV = "sendRecv" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PartySuperviseRequestMediaSdp._member_map_.values()) + ) + + +@JsonMap( + { + "supervisor_device_id": "supervisorDeviceId", + "agent_extension_id": "agentExtensionId", + "auto_answer": "autoAnswer", + "media_sdp": "mediaSDP", + } +) +class PartySuperviseRequest(BaseModel): + """PartySuperviseRequest + + :param mode: Supervising mode + :type mode: PartySuperviseRequestMode + :param supervisor_device_id: Internal identifier of a supervisor's device + :type supervisor_device_id: str + :param agent_extension_id: Mailbox ID of a user that will be monitored + :type agent_extension_id: str + :param auto_answer: Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call, defaults to None + :type auto_answer: bool, optional + :param media_sdp: Specifies session description protocol (SDP) setting. The possible values are 'sendOnly' (only sending) meaning one-way audio streaming; and 'sendRecv' (sending/receiving) meaning two-way audio streaming, defaults to None + :type media_sdp: PartySuperviseRequestMediaSdp, optional + """ + + def __init__( + self, + mode: PartySuperviseRequestMode, + supervisor_device_id: str, + agent_extension_id: str, + auto_answer: bool = None, + media_sdp: PartySuperviseRequestMediaSdp = None, + ): + self.mode = self._enum_matching(mode, PartySuperviseRequestMode.list(), "mode") + self.supervisor_device_id = supervisor_device_id + self.agent_extension_id = agent_extension_id + if auto_answer is not None: + self.auto_answer = auto_answer + if media_sdp is not None: + self.media_sdp = self._enum_matching( + media_sdp, PartySuperviseRequestMediaSdp.list(), "media_sdp" + ) diff --git a/src/ring_central/models/party_supervise_response.py b/src/ring_central/models/party_supervise_response.py new file mode 100644 index 00000000..038d1d9a --- /dev/null +++ b/src/ring_central/models/party_supervise_response.py @@ -0,0 +1,105 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .party_info import PartyInfo +from .owner_info import OwnerInfo +from .call_status_info import CallStatusInfo + + +class PartySuperviseResponseDirection(Enum): + """An enumeration representing different categories. + + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + """ + + OUTBOUND = "Outbound" + INBOUND = "Inbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, PartySuperviseResponseDirection._member_map_.values() + ) + ) + + +@JsonMap( + { + "from_": "from", + "id_": "id", + "account_id": "accountId", + "extension_id": "extensionId", + "stand_alone": "standAlone", + } +) +class PartySuperviseResponse(BaseModel): + """PartySuperviseResponse + + :param from_: from_, defaults to None + :type from_: PartyInfo, optional + :param to: to, defaults to None + :type to: PartyInfo, optional + :param direction: Direction of a call, defaults to None + :type direction: PartySuperviseResponseDirection, optional + :param id_: Internal identifier of a party that monitors a call, defaults to None + :type id_: str, optional + :param account_id: Internal identifier of an account that monitors a call, defaults to None + :type account_id: str, optional + :param extension_id: Internal identifier of an extension that monitors a call, defaults to None + :type extension_id: str, optional + :param muted: Specifies if a call party is muted, defaults to None + :type muted: bool, optional + :param owner: Deprecated. Information on a call owner, defaults to None + :type owner: OwnerInfo, optional + :param stand_alone: Specifies if a device is stand-alone, defaults to None + :type stand_alone: bool, optional + :param status: Status data of a call session, defaults to None + :type status: CallStatusInfo, optional + """ + + def __init__( + self, + from_: PartyInfo = None, + to: PartyInfo = None, + direction: PartySuperviseResponseDirection = None, + id_: str = None, + account_id: str = None, + extension_id: str = None, + muted: bool = None, + owner: OwnerInfo = None, + stand_alone: bool = None, + status: CallStatusInfo = None, + ): + if from_ is not None: + self.from_ = self._define_object(from_, PartyInfo) + if to is not None: + self.to = self._define_object(to, PartyInfo) + if direction is not None: + self.direction = self._enum_matching( + direction, PartySuperviseResponseDirection.list(), "direction" + ) + if id_ is not None: + self.id_ = id_ + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id + if muted is not None: + self.muted = muted + if owner is not None: + self.owner = self._define_object(owner, OwnerInfo) + if stand_alone is not None: + self.stand_alone = stand_alone + if status is not None: + self.status = self._define_object(status, CallStatusInfo) diff --git a/src/ring_central/models/party_update_info.py b/src/ring_central/models/party_update_info.py new file mode 100644 index 00000000..254dfb81 --- /dev/null +++ b/src/ring_central/models/party_update_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"stand_alone": "standAlone"}) +class PartyUpdateInfo(BaseModel): + """Party update data + + :param muted: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces, defaults to None + :type muted: bool, optional + :param stand_alone: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session, defaults to None + :type stand_alone: bool, optional + """ + + def __init__(self, muted: bool = None, stand_alone: bool = None): + if muted is not None: + self.muted = muted + if stand_alone is not None: + self.stand_alone = stand_alone diff --git a/src/ring_central/models/party_update_request.py b/src/ring_central/models/party_update_request.py new file mode 100644 index 00000000..a3bd223c --- /dev/null +++ b/src/ring_central/models/party_update_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .party_update_info import PartyUpdateInfo + + +@JsonMap({}) +class PartyUpdateRequest(BaseModel): + """PartyUpdateRequest + + :param party: Party update data, defaults to None + :type party: PartyUpdateInfo, optional + """ + + def __init__(self, party: PartyUpdateInfo = None): + if party is not None: + self.party = self._define_object(party, PartyUpdateInfo) diff --git a/src/ring_central/models/patch_message_bulk_request.py b/src/ring_central/models/patch_message_bulk_request.py new file mode 100644 index 00000000..7587658d --- /dev/null +++ b/src/ring_central/models/patch_message_bulk_request.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .patch_message_request import PatchMessageRequest + + +@JsonMap({"resource_id": "resourceId"}) +class PatchMessageBulkRequest(BaseModel): + """PatchMessageBulkRequest + + :param resource_id: Internal identifier of a resource (required when alternative syntax with '*' is used), defaults to None + :type resource_id: str, optional + :param body: Either `readStatus` or `availability` or both are required + :type body: PatchMessageRequest + """ + + def __init__(self, body: PatchMessageRequest, resource_id: str = None): + if resource_id is not None: + self.resource_id = resource_id + self.body = self._define_object(body, PatchMessageRequest) diff --git a/src/ring_central/models/patch_message_request.py b/src/ring_central/models/patch_message_request.py new file mode 100644 index 00000000..4cda88cc --- /dev/null +++ b/src/ring_central/models/patch_message_request.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_read_status_enum import MessageReadStatusEnum +from .message_availability_enum import MessageAvailabilityEnum + + +@JsonMap({"read_status": "readStatus"}) +class PatchMessageRequest(BaseModel): + """Either `readStatus` or `availability` or both are required + + :param read_status: Message read status, defaults to None + :type read_status: MessageReadStatusEnum, optional + :param availability: Message availability status. Message in 'Deleted' state is still preserved with all its attachments and can be restored. 'Purged' means that all attachments are already deleted and the message itself is about to be physically deleted shortly , defaults to None + :type availability: MessageAvailabilityEnum, optional + """ + + def __init__( + self, + read_status: MessageReadStatusEnum = None, + availability: MessageAvailabilityEnum = None, + ): + if read_status is not None: + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) + if availability is not None: + self.availability = self._enum_matching( + availability, MessageAvailabilityEnum.list(), "availability" + ) diff --git a/src/ring_central/models/peer_info.py b/src/ring_central/models/peer_info.py new file mode 100644 index 00000000..2a696f0a --- /dev/null +++ b/src/ring_central/models/peer_info.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "session_id": "sessionId", + "telephony_session_id": "telephonySessionId", + "party_id": "partyId", + } +) +class PeerInfo(BaseModel): + """Peer session/party details. Valid in 'Gone' state of a call + + :param session_id: session_id, defaults to None + :type session_id: str, optional + :param telephony_session_id: telephony_session_id, defaults to None + :type telephony_session_id: str, optional + :param party_id: party_id, defaults to None + :type party_id: str, optional + """ + + def __init__( + self, + session_id: str = None, + telephony_session_id: str = None, + party_id: str = None, + ): + if session_id is not None: + self.session_id = session_id + if telephony_session_id is not None: + self.telephony_session_id = telephony_session_id + if party_id is not None: + self.party_id = party_id diff --git a/src/ring_central/models/per_page.py b/src/ring_central/models/per_page.py new file mode 100644 index 00000000..dd1a0be7 --- /dev/null +++ b/src/ring_central/models/per_page.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .base import OneOfBaseModel + + +class PerPage2(Enum): + """An enumeration representing different categories. + + :cvar MAX: "max" + :vartype MAX: str + :cvar ALL: "all" + :vartype ALL: str + """ + + MAX = "max" + ALL = "all" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PerPage2._member_map_.values())) + + +class PerPageGuard(OneOfBaseModel): + class_list = {"int": int, "PerPage2Enum": str} + + +PerPage = Union[int, str] diff --git a/src/ring_central/models/permission_category_collection_resource.py b/src/ring_central/models/permission_category_collection_resource.py new file mode 100644 index 00000000..bd8f2589 --- /dev/null +++ b/src/ring_central/models/permission_category_collection_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_category_resource import PermissionCategoryResource +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class PermissionCategoryCollectionResource(BaseModel): + """PermissionCategoryCollectionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[PermissionCategoryResource], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PermissionCategoryResource] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PermissionCategoryResource) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/permission_category_id_resource.py b/src/ring_central/models/permission_category_id_resource.py new file mode 100644 index 00000000..6e6937c8 --- /dev/null +++ b/src/ring_central/models/permission_category_id_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class PermissionCategoryIdResource(BaseModel): + """PermissionCategoryIdResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/permission_category_resource.py b/src/ring_central/models/permission_category_resource.py new file mode 100644 index 00000000..b48a3e6a --- /dev/null +++ b/src/ring_central/models/permission_category_resource.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "display_name": "displayName"}) +class PermissionCategoryResource(BaseModel): + """PermissionCategoryResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + :param description: description, defaults to None + :type description: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + display_name: str = None, + description: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if display_name is not None: + self.display_name = display_name + if description is not None: + self.description = description diff --git a/src/ring_central/models/permission_collection_resource.py b/src/ring_central/models/permission_collection_resource.py new file mode 100644 index 00000000..3c261413 --- /dev/null +++ b/src/ring_central/models/permission_collection_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_resource import PermissionResource +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class PermissionCollectionResource(BaseModel): + """PermissionCollectionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[PermissionResource], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[PermissionResource] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, PermissionResource) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/permission_id_resource.py b/src/ring_central/models/permission_id_resource.py new file mode 100644 index 00000000..4ee57930 --- /dev/null +++ b/src/ring_central/models/permission_id_resource.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .permissions_capabilities import PermissionsCapabilities + + +class PermissionIdResourceSiteCompatible(Enum): + """An enumeration representing different categories. + + :cvar COMPATIBLE: "Compatible" + :vartype COMPATIBLE: str + :cvar INCOMPATIBLE: "Incompatible" + :vartype INCOMPATIBLE: str + :cvar INDEPENDENT: "Independent" + :vartype INDEPENDENT: str + """ + + COMPATIBLE = "Compatible" + INCOMPATIBLE = "Incompatible" + INDEPENDENT = "Independent" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PermissionIdResourceSiteCompatible._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "site_compatible": "siteCompatible", + "read_only": "readOnly", + "permissions_capabilities": "permissionsCapabilities", + } +) +class PermissionIdResource(BaseModel): + """PermissionIdResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param site_compatible: Site compatibility flag set for permission, defaults to None + :type site_compatible: PermissionIdResourceSiteCompatible, optional + :param read_only: Specifies if the permission is editable on UI (if set to `true`) or not (if set to `false`), defaults to None + :type read_only: bool, optional + :param assignable: Specifies if the permission can be assigned by the account administrator, defaults to None + :type assignable: bool, optional + :param permissions_capabilities: Advanced permissions capabilities. Returned if `advancedPermissions` query parameter is set to `true`., defaults to None + :type permissions_capabilities: PermissionsCapabilities, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + site_compatible: PermissionIdResourceSiteCompatible = None, + read_only: bool = None, + assignable: bool = None, + permissions_capabilities: PermissionsCapabilities = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if site_compatible is not None: + self.site_compatible = self._enum_matching( + site_compatible, + PermissionIdResourceSiteCompatible.list(), + "site_compatible", + ) + if read_only is not None: + self.read_only = read_only + if assignable is not None: + self.assignable = assignable + if permissions_capabilities is not None: + self.permissions_capabilities = self._define_object( + permissions_capabilities, PermissionsCapabilities + ) diff --git a/src/ring_central/models/permission_info_admin.py b/src/ring_central/models/permission_info_admin.py new file mode 100644 index 00000000..eae9ed7a --- /dev/null +++ b/src/ring_central/models/permission_info_admin.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PermissionInfoAdmin(BaseModel): + """Admin permission + + :param enabled: Specifies if a permission is enabled or not, defaults to None + :type enabled: bool, optional + """ + + def __init__(self, enabled: bool = None): + if enabled is not None: + self.enabled = enabled diff --git a/src/ring_central/models/permission_info_int.py b/src/ring_central/models/permission_info_int.py new file mode 100644 index 00000000..d613f77c --- /dev/null +++ b/src/ring_central/models/permission_info_int.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PermissionInfoInt(BaseModel): + """International Calling permission + + :param enabled: Specifies if a permission is enabled or not, defaults to None + :type enabled: bool, optional + """ + + def __init__(self, enabled: bool = None): + if enabled is not None: + self.enabled = enabled diff --git a/src/ring_central/models/permission_resource.py b/src/ring_central/models/permission_resource.py new file mode 100644 index 00000000..196934c5 --- /dev/null +++ b/src/ring_central/models/permission_resource.py @@ -0,0 +1,108 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_category_id_resource import PermissionCategoryIdResource +from .permission_id_resource import PermissionIdResource + + +class PermissionResourceSiteCompatible(Enum): + """An enumeration representing different categories. + + :cvar INCOMPATIBLE: "Incompatible" + :vartype INCOMPATIBLE: str + :cvar COMPATIBLE: "Compatible" + :vartype COMPATIBLE: str + :cvar INDEPENDENT: "Independent" + :vartype INDEPENDENT: str + """ + + INCOMPATIBLE = "Incompatible" + COMPATIBLE = "Compatible" + INDEPENDENT = "Independent" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PermissionResourceSiteCompatible._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "display_name": "displayName", + "read_only": "readOnly", + "site_compatible": "siteCompatible", + "included_permissions": "includedPermissions", + } +) +class PermissionResource(BaseModel): + """PermissionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + :param description: description, defaults to None + :type description: str, optional + :param assignable: assignable, defaults to None + :type assignable: bool, optional + :param read_only: read_only, defaults to None + :type read_only: bool, optional + :param site_compatible: Site compatibility flag set for permission, defaults to None + :type site_compatible: PermissionResourceSiteCompatible, optional + :param category: category, defaults to None + :type category: PermissionCategoryIdResource, optional + :param included_permissions: included_permissions, defaults to None + :type included_permissions: List[PermissionIdResource], optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + display_name: str = None, + description: str = None, + assignable: bool = None, + read_only: bool = None, + site_compatible: PermissionResourceSiteCompatible = None, + category: PermissionCategoryIdResource = None, + included_permissions: List[PermissionIdResource] = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if display_name is not None: + self.display_name = display_name + if description is not None: + self.description = description + if assignable is not None: + self.assignable = assignable + if read_only is not None: + self.read_only = read_only + if site_compatible is not None: + self.site_compatible = self._enum_matching( + site_compatible, + PermissionResourceSiteCompatible.list(), + "site_compatible", + ) + if category is not None: + self.category = self._define_object(category, PermissionCategoryIdResource) + if included_permissions is not None: + self.included_permissions = self._define_list( + included_permissions, PermissionIdResource + ) diff --git a/src/ring_central/models/permissions_capabilities.py b/src/ring_central/models/permissions_capabilities.py new file mode 100644 index 00000000..cda26992 --- /dev/null +++ b/src/ring_central/models/permissions_capabilities.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"manage_enabled": "manageEnabled", "grant_enabled": "grantEnabled"}) +class PermissionsCapabilities(BaseModel): + """Advanced permissions capabilities. Returned if `advancedPermissions` query parameter is set to `true`. + + :param enabled: Specifies whether the user is enabled with the listed permission or not, defaults to None + :type enabled: bool, optional + :param manage_enabled: Specifies if the user can manage the listed permission and is allowed to enable it on other users, defaults to None + :type manage_enabled: bool, optional + :param grant_enabled: Specifies if the users who were enabled with the listed permission can grant it further to other users, defaults to None + :type grant_enabled: bool, optional + """ + + def __init__( + self, + enabled: bool = None, + manage_enabled: bool = None, + grant_enabled: bool = None, + ): + if enabled is not None: + self.enabled = enabled + if manage_enabled is not None: + self.manage_enabled = manage_enabled + if grant_enabled is not None: + self.grant_enabled = grant_enabled diff --git a/src/ring_central/models/personal_contact_request.py b/src/ring_central/models/personal_contact_request.py new file mode 100644 index 00000000..76f686aa --- /dev/null +++ b/src/ring_central/models/personal_contact_request.py @@ -0,0 +1,184 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_address_info import ContactAddressInfo + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "middle_name": "middleName", + "nick_name": "nickName", + "job_title": "jobTitle", + "web_page": "webPage", + "home_phone": "homePhone", + "home_phone2": "homePhone2", + "business_phone": "businessPhone", + "business_phone2": "businessPhone2", + "mobile_phone": "mobilePhone", + "business_fax": "businessFax", + "company_phone": "companyPhone", + "assistant_phone": "assistantPhone", + "car_phone": "carPhone", + "other_phone": "otherPhone", + "other_fax": "otherFax", + "callback_phone": "callbackPhone", + "home_address": "homeAddress", + "business_address": "businessAddress", + "other_address": "otherAddress", + "ringtone_index": "ringtoneIndex", + } +) +class PersonalContactRequest(BaseModel): + """PersonalContactRequest + + :param first_name: First name of a contact, defaults to None + :type first_name: str, optional + :param last_name: Last name of a contact, defaults to None + :type last_name: str, optional + :param middle_name: Middle name of a contact, defaults to None + :type middle_name: str, optional + :param nick_name: Nick name of a contact, defaults to None + :type nick_name: str, optional + :param company: Company name of a contact, defaults to None + :type company: str, optional + :param job_title: Job title of a contact, defaults to None + :type job_title: str, optional + :param email: Email of a contact, defaults to None + :type email: str, optional + :param email2: Second email of a contact, defaults to None + :type email2: str, optional + :param email3: Third email of a contact, defaults to None + :type email3: str, optional + :param birthday: Date of birth of a contact, defaults to None + :type birthday: str, optional + :param web_page: Contact home page URL, defaults to None + :type web_page: str, optional + :param notes: Notes for a contact, defaults to None + :type notes: str, optional + :param home_phone: Home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone: str, optional + :param home_phone2: Second home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone2: str, optional + :param business_phone: Business phone of a contact in e.164 (with "+") format, defaults to None + :type business_phone: str, optional + :param business_phone2: Second business phone of a contact in e.164 (with "+") format, defaults to None + :type business_phone2: str, optional + :param mobile_phone: Mobile phone of a contact in e.164 (with "+") format, defaults to None + :type mobile_phone: str, optional + :param business_fax: Business fax number of a contact in e.164 (with "+") format, defaults to None + :type business_fax: str, optional + :param company_phone: Company number of a contact in e.164 (with "+") format, defaults to None + :type company_phone: str, optional + :param assistant_phone: Phone number of a contact assistant in e.164 (with "+") format, defaults to None + :type assistant_phone: str, optional + :param car_phone: Car phone number of a contact in e.164 (with "+") format, defaults to None + :type car_phone: str, optional + :param other_phone: Other phone number of a contact in e.164 (with "+") format, defaults to None + :type other_phone: str, optional + :param other_fax: Other fax number of a contact in e.164 (with "+") format, defaults to None + :type other_fax: str, optional + :param callback_phone: Callback phone number of a contact in e.164 (with "+") format, defaults to None + :type callback_phone: str, optional + :param home_address: home_address, defaults to None + :type home_address: ContactAddressInfo, optional + :param business_address: business_address, defaults to None + :type business_address: ContactAddressInfo, optional + :param other_address: other_address, defaults to None + :type other_address: ContactAddressInfo, optional + :param ringtone_index: Contact ringtone. Max number of symbols is 64, defaults to None + :type ringtone_index: str, optional + """ + + def __init__( + self, + first_name: str = None, + last_name: str = None, + middle_name: str = None, + nick_name: str = None, + company: str = None, + job_title: str = None, + email: str = None, + email2: str = None, + email3: str = None, + birthday: str = None, + web_page: str = None, + notes: str = None, + home_phone: str = None, + home_phone2: str = None, + business_phone: str = None, + business_phone2: str = None, + mobile_phone: str = None, + business_fax: str = None, + company_phone: str = None, + assistant_phone: str = None, + car_phone: str = None, + other_phone: str = None, + other_fax: str = None, + callback_phone: str = None, + home_address: ContactAddressInfo = None, + business_address: ContactAddressInfo = None, + other_address: ContactAddressInfo = None, + ringtone_index: str = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if middle_name is not None: + self.middle_name = middle_name + if nick_name is not None: + self.nick_name = nick_name + if company is not None: + self.company = company + if job_title is not None: + self.job_title = job_title + if email is not None: + self.email = email + if email2 is not None: + self.email2 = email2 + if email3 is not None: + self.email3 = email3 + if birthday is not None: + self.birthday = birthday + if web_page is not None: + self.web_page = web_page + if notes is not None: + self.notes = notes + if home_phone is not None: + self.home_phone = home_phone + if home_phone2 is not None: + self.home_phone2 = home_phone2 + if business_phone is not None: + self.business_phone = business_phone + if business_phone2 is not None: + self.business_phone2 = business_phone2 + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_fax is not None: + self.business_fax = business_fax + if company_phone is not None: + self.company_phone = company_phone + if assistant_phone is not None: + self.assistant_phone = assistant_phone + if car_phone is not None: + self.car_phone = car_phone + if other_phone is not None: + self.other_phone = other_phone + if other_fax is not None: + self.other_fax = other_fax + if callback_phone is not None: + self.callback_phone = callback_phone + if home_address is not None: + self.home_address = self._define_object(home_address, ContactAddressInfo) + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactAddressInfo + ) + if other_address is not None: + self.other_address = self._define_object(other_address, ContactAddressInfo) + if ringtone_index is not None: + self.ringtone_index = ringtone_index diff --git a/src/ring_central/models/personal_contact_resource.py b/src/ring_central/models/personal_contact_resource.py new file mode 100644 index 00000000..b781495d --- /dev/null +++ b/src/ring_central/models/personal_contact_resource.py @@ -0,0 +1,232 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_address_info import ContactAddressInfo + + +class PersonalContactResourceAvailability(Enum): + """An enumeration representing different categories. + + :cvar ALIVE: "Alive" + :vartype ALIVE: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar PURGED: "Purged" + :vartype PURGED: str + """ + + ALIVE = "Alive" + DELETED = "Deleted" + PURGED = "Purged" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PersonalContactResourceAvailability._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "web_page": "webPage", + "middle_name": "middleName", + "nick_name": "nickName", + "home_phone": "homePhone", + "home_phone2": "homePhone2", + "business_phone": "businessPhone", + "business_phone2": "businessPhone2", + "mobile_phone": "mobilePhone", + "business_fax": "businessFax", + "company_phone": "companyPhone", + "assistant_phone": "assistantPhone", + "car_phone": "carPhone", + "other_phone": "otherPhone", + "other_fax": "otherFax", + "callback_phone": "callbackPhone", + "business_address": "businessAddress", + "home_address": "homeAddress", + "other_address": "otherAddress", + "ringtone_index": "ringtoneIndex", + } +) +class PersonalContactResource(BaseModel): + """PersonalContactResource + + :param uri: Canonical URI of a contact, defaults to None + :type uri: str, optional + :param availability: This property has a special meaning only on Address Book Sync (e.g. a contact can be `Deleted`). For simple contact list reading it has always the default value - `Alive` , defaults to None + :type availability: PersonalContactResourceAvailability, optional + :param email: Email of a contact, defaults to None + :type email: str, optional + :param id_: Internal identifier of availability contact, defaults to None + :type id_: int, optional + :param notes: Notes for a contact, defaults to None + :type notes: str, optional + :param company: Company name of a contact, defaults to None + :type company: str, optional + :param first_name: First name of a contact, defaults to None + :type first_name: str, optional + :param last_name: Last name of a contact, defaults to None + :type last_name: str, optional + :param job_title: Job title of a contact, defaults to None + :type job_title: str, optional + :param birthday: Date of birth of a contact, defaults to None + :type birthday: str, optional + :param web_page: The contact home page URL, defaults to None + :type web_page: str, optional + :param middle_name: Middle name of a contact, defaults to None + :type middle_name: str, optional + :param nick_name: Nick name of a contact, defaults to None + :type nick_name: str, optional + :param email2: Second email of a contact, defaults to None + :type email2: str, optional + :param email3: Third email of a contact, defaults to None + :type email3: str, optional + :param home_phone: Home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone: str, optional + :param home_phone2: Second home phone number of a contact in e.164 (with "+") format, defaults to None + :type home_phone2: str, optional + :param business_phone: Business phone of the contact in e.164 (with "+") format, defaults to None + :type business_phone: str, optional + :param business_phone2: Second business phone of a contact in e.164 (with "+") format, defaults to None + :type business_phone2: str, optional + :param mobile_phone: Mobile phone of a contact in e.164 (with "+") format, defaults to None + :type mobile_phone: str, optional + :param business_fax: Business fax number of a contact in e.164 (with "+") format, defaults to None + :type business_fax: str, optional + :param company_phone: Company number of a contact in e.164 (with "+") format, defaults to None + :type company_phone: str, optional + :param assistant_phone: Phone number of a contact assistant in e.164 (with "+") format, defaults to None + :type assistant_phone: str, optional + :param car_phone: Car phone number of a contact in e.164 (with "+") format, defaults to None + :type car_phone: str, optional + :param other_phone: Other phone number of a contact in e.164 (with "+") format, defaults to None + :type other_phone: str, optional + :param other_fax: Other fax number of a contact in e.164 (with "+") format, defaults to None + :type other_fax: str, optional + :param callback_phone: Callback phone number of a contact in e.164 (with "+") format, defaults to None + :type callback_phone: str, optional + :param business_address: business_address, defaults to None + :type business_address: ContactAddressInfo, optional + :param home_address: home_address, defaults to None + :type home_address: ContactAddressInfo, optional + :param other_address: other_address, defaults to None + :type other_address: ContactAddressInfo, optional + :param ringtone_index: Contact ringtone. Max number of symbols is 64, defaults to None + :type ringtone_index: str, optional + """ + + def __init__( + self, + uri: str = None, + availability: PersonalContactResourceAvailability = None, + email: str = None, + id_: int = None, + notes: str = None, + company: str = None, + first_name: str = None, + last_name: str = None, + job_title: str = None, + birthday: str = None, + web_page: str = None, + middle_name: str = None, + nick_name: str = None, + email2: str = None, + email3: str = None, + home_phone: str = None, + home_phone2: str = None, + business_phone: str = None, + business_phone2: str = None, + mobile_phone: str = None, + business_fax: str = None, + company_phone: str = None, + assistant_phone: str = None, + car_phone: str = None, + other_phone: str = None, + other_fax: str = None, + callback_phone: str = None, + business_address: ContactAddressInfo = None, + home_address: ContactAddressInfo = None, + other_address: ContactAddressInfo = None, + ringtone_index: str = None, + ): + if uri is not None: + self.uri = uri + if availability is not None: + self.availability = self._enum_matching( + availability, PersonalContactResourceAvailability.list(), "availability" + ) + if email is not None: + self.email = email + if id_ is not None: + self.id_ = id_ + if notes is not None: + self.notes = notes + if company is not None: + self.company = company + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if job_title is not None: + self.job_title = job_title + if birthday is not None: + self.birthday = birthday + if web_page is not None: + self.web_page = web_page + if middle_name is not None: + self.middle_name = middle_name + if nick_name is not None: + self.nick_name = nick_name + if email2 is not None: + self.email2 = email2 + if email3 is not None: + self.email3 = email3 + if home_phone is not None: + self.home_phone = home_phone + if home_phone2 is not None: + self.home_phone2 = home_phone2 + if business_phone is not None: + self.business_phone = business_phone + if business_phone2 is not None: + self.business_phone2 = business_phone2 + if mobile_phone is not None: + self.mobile_phone = mobile_phone + if business_fax is not None: + self.business_fax = business_fax + if company_phone is not None: + self.company_phone = company_phone + if assistant_phone is not None: + self.assistant_phone = assistant_phone + if car_phone is not None: + self.car_phone = car_phone + if other_phone is not None: + self.other_phone = other_phone + if other_fax is not None: + self.other_fax = other_fax + if callback_phone is not None: + self.callback_phone = callback_phone + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactAddressInfo + ) + if home_address is not None: + self.home_address = self._define_object(home_address, ContactAddressInfo) + if other_address is not None: + self.other_address = self._define_object(other_address, ContactAddressInfo) + if ringtone_index is not None: + self.ringtone_index = ringtone_index diff --git a/src/ring_central/models/phone_line_type_enum.py b/src/ring_central/models/phone_line_type_enum.py new file mode 100644 index 00000000..d8926da1 --- /dev/null +++ b/src/ring_central/models/phone_line_type_enum.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PhoneLineTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar STANDALONE: "Standalone" + :vartype STANDALONE: str + :cvar STANDALONEFREE: "StandaloneFree" + :vartype STANDALONEFREE: str + :cvar BLAPRIMARY: "BlaPrimary" + :vartype BLAPRIMARY: str + :cvar BLASECONDARY: "BlaSecondary" + :vartype BLASECONDARY: str + """ + + UNKNOWN = "Unknown" + STANDALONE = "Standalone" + STANDALONEFREE = "StandaloneFree" + BLAPRIMARY = "BlaPrimary" + BLASECONDARY = "BlaSecondary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PhoneLineTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/phone_lines_info.py b/src/ring_central/models/phone_lines_info.py new file mode 100644 index 00000000..09963cb9 --- /dev/null +++ b/src/ring_central/models/phone_lines_info.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_line_type_enum import PhoneLineTypeEnum +from .phone_number_info_int_id import PhoneNumberInfoIntId +from .emergency_address import EmergencyAddress + + +@JsonMap( + { + "id_": "id", + "line_type": "lineType", + "phone_info": "phoneInfo", + "emergency_address": "emergencyAddress", + } +) +class PhoneLinesInfo(BaseModel): + """PhoneLinesInfo + + :param id_: Internal identifier of a phone line, defaults to None + :type id_: str, optional + :param line_type: The type of phone line, defaults to None + :type line_type: PhoneLineTypeEnum, optional + :param phone_info: Phone number information, defaults to None + :type phone_info: PhoneNumberInfoIntId, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddress, optional + """ + + def __init__( + self, + id_: str = None, + line_type: PhoneLineTypeEnum = None, + phone_info: PhoneNumberInfoIntId = None, + emergency_address: EmergencyAddress = None, + ): + if id_ is not None: + self.id_ = id_ + if line_type is not None: + self.line_type = self._enum_matching( + line_type, PhoneLineTypeEnum.list(), "line_type" + ) + if phone_info is not None: + self.phone_info = self._define_object(phone_info, PhoneNumberInfoIntId) + if emergency_address is not None: + self.emergency_address = self._define_object( + emergency_address, EmergencyAddress + ) diff --git a/src/ring_central/models/phone_number_country_info.py b/src/ring_central/models/phone_number_country_info.py new file mode 100644 index 00000000..8d47268f --- /dev/null +++ b/src/ring_central/models/phone_number_country_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class PhoneNumberCountryInfo(BaseModel): + """Brief information on a phone number country + + :param id_: Internal identifier of a home country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a home country, defaults to None + :type uri: str, optional + :param name: Official name of a home country, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/phone_number_definition_direct_number_with_reservation_id.py b/src/ring_central/models/phone_number_definition_direct_number_with_reservation_id.py new file mode 100644 index 00000000..e65f7018 --- /dev/null +++ b/src/ring_central/models/phone_number_definition_direct_number_with_reservation_id.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number": "phoneNumber", "reservation_id": "reservationId"}) +class PhoneNumberDefinitionDirectNumberWithReservationId(BaseModel): + """To be used for direct number assignment in case number pool is not supported + + :param phone_number: Phone number ID + :type phone_number: str + :param reservation_id: Phone number reservation ID, defaults to None + :type reservation_id: str, optional + """ + + def __init__(self, phone_number: str, reservation_id: str = None): + self.phone_number = phone_number + if reservation_id is not None: + self.reservation_id = reservation_id diff --git a/src/ring_central/models/phone_number_definition_number_id.py b/src/ring_central/models/phone_number_definition_number_id.py new file mode 100644 index 00000000..7b1f1220 --- /dev/null +++ b/src/ring_central/models/phone_number_definition_number_id.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"phone_number_id": "phoneNumberId"}) +class PhoneNumberDefinitionNumberId(BaseModel): + """To be used to assign a number by ID + + :param phone_number_id: Phone number ID + :type phone_number_id: str + """ + + def __init__(self, phone_number_id: str): + self.phone_number_id = phone_number_id diff --git a/src/ring_central/models/phone_number_definition_preferred_area_code.py b/src/ring_central/models/phone_number_definition_preferred_area_code.py new file mode 100644 index 00000000..66aeb12c --- /dev/null +++ b/src/ring_central/models/phone_number_definition_preferred_area_code.py @@ -0,0 +1,18 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"preferred_area_code": "preferredAreaCode"}) +class PhoneNumberDefinitionPreferredAreaCode(BaseModel): + """To use as selection hint when a "toll" number to be selected from the number pool. + + :param preferred_area_code: Preferred area code to use if numbers available + :type preferred_area_code: str + """ + + def __init__(self, preferred_area_code: str): + self.preferred_area_code = self._pattern_matching( + preferred_area_code, "^[1-9]\d{1,3}$", "preferred_area_code" + ) diff --git a/src/ring_central/models/phone_number_definition_toll_type.py b/src/ring_central/models/phone_number_definition_toll_type.py new file mode 100644 index 00000000..2508064c --- /dev/null +++ b/src/ring_central/models/phone_number_definition_toll_type.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_toll_type import PhoneNumberTollType + + +@JsonMap({"toll_type": "tollType"}) +class PhoneNumberDefinitionTollType(BaseModel): + """To use as selection criteria when a number to be selected from the number pool. + + :param toll_type: Indicates if a number is toll or toll-free + :type toll_type: PhoneNumberTollType + """ + + def __init__(self, toll_type: PhoneNumberTollType): + self.toll_type = self._enum_matching( + toll_type, PhoneNumberTollType.list(), "toll_type" + ) diff --git a/src/ring_central/models/phone_number_info_conferencing.py b/src/ring_central/models/phone_number_info_conferencing.py new file mode 100644 index 00000000..5f6b83f2 --- /dev/null +++ b/src/ring_central/models/phone_number_info_conferencing.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_short_model import CountryInfoShortModel + + +@JsonMap({"has_greeting": "hasGreeting", "phone_number": "phoneNumber"}) +class PhoneNumberInfoConferencing(BaseModel): + """PhoneNumberInfoConferencing + + :param country: country, defaults to None + :type country: CountryInfoShortModel, optional + :param default: The value should be `true` if the number is default for the conference. Default conference number is a domestic number that can be set by user (otherwise it is set by the system). Only one default number per country is allowed , defaults to None + :type default: bool, optional + :param has_greeting: The value should be `true` if any greeting message is played on this number , defaults to None + :type has_greeting: bool, optional + :param location: Location (city, region, state) of a conference phone number , defaults to None + :type location: str, optional + :param phone_number: Dial-in phone number to connect to a conference, defaults to None + :type phone_number: str, optional + :param premium: Indicates if the number is 'premium' (account phone number with the `ConferencingNumber` usageType) , defaults to None + :type premium: bool, optional + """ + + def __init__( + self, + country: CountryInfoShortModel = None, + default: bool = None, + has_greeting: bool = None, + location: str = None, + phone_number: str = None, + premium: bool = None, + ): + if country is not None: + self.country = self._define_object(country, CountryInfoShortModel) + if default is not None: + self.default = default + if has_greeting is not None: + self.has_greeting = has_greeting + if location is not None: + self.location = location + if phone_number is not None: + self.phone_number = phone_number + if premium is not None: + self.premium = premium diff --git a/src/ring_central/models/phone_number_info_int_id.py b/src/ring_central/models/phone_number_info_int_id.py new file mode 100644 index 00000000..0e02c0a0 --- /dev/null +++ b/src/ring_central/models/phone_number_info_int_id.py @@ -0,0 +1,177 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .phone_number_country_info import PhoneNumberCountryInfo +from .device_provisioning_extension_info import DeviceProvisioningExtensionInfo + + +class PhoneNumberInfoIntIdPaymentType(Enum): + """An enumeration representing different categories. + + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + :cvar LOCAL: "Local" + :vartype LOCAL: str + """ + + EXTERNAL = "External" + LOCAL = "Local" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, PhoneNumberInfoIntIdPaymentType._member_map_.values() + ) + ) + + +class PhoneNumberInfoIntIdType(Enum): + """An enumeration representing different categories. + + :cvar VOICEFAX: "VoiceFax" + :vartype VOICEFAX: str + :cvar FAXONLY: "FaxOnly" + :vartype FAXONLY: str + :cvar VOICEONLY: "VoiceOnly" + :vartype VOICEONLY: str + """ + + VOICEFAX = "VoiceFax" + FAXONLY = "FaxOnly" + VOICEONLY = "VoiceOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PhoneNumberInfoIntIdType._member_map_.values()) + ) + + +class PhoneNumberInfoIntIdUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PhoneNumberInfoIntIdUsageType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "payment_type": "paymentType", + "phone_number": "phoneNumber", + "type_": "type", + "usage_type": "usageType", + } +) +class PhoneNumberInfoIntId(BaseModel): + """Phone number information + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: int, optional + :param country: Brief information on a phone number country, defaults to None + :type country: PhoneNumberCountryInfo, optional + :param extension: Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list, defaults to None + :type extension: DeviceProvisioningExtensionInfo, optional + :param label: Custom user-defined name of a phone number, if any, defaults to None + :type label: str, optional + :param location: Location (City, State). Filled for local US numbers, defaults to None + :type location: str, optional + :param payment_type: Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system , defaults to None + :type payment_type: PhoneNumberInfoIntIdPaymentType, optional + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param status: Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral , defaults to None + :type status: str, optional + :param type_: Phone number type, defaults to None + :type type_: PhoneNumberInfoIntIdType, optional + :param usage_type: Usage type of the phone number, defaults to None + :type usage_type: PhoneNumberInfoIntIdUsageType, optional + """ + + def __init__( + self, + id_: int = None, + country: PhoneNumberCountryInfo = None, + extension: DeviceProvisioningExtensionInfo = None, + label: str = None, + location: str = None, + payment_type: PhoneNumberInfoIntIdPaymentType = None, + phone_number: str = None, + status: str = None, + type_: PhoneNumberInfoIntIdType = None, + usage_type: PhoneNumberInfoIntIdUsageType = None, + ): + if id_ is not None: + self.id_ = id_ + if country is not None: + self.country = self._define_object(country, PhoneNumberCountryInfo) + if extension is not None: + self.extension = self._define_object( + extension, DeviceProvisioningExtensionInfo + ) + if label is not None: + self.label = label + if location is not None: + self.location = location + if payment_type is not None: + self.payment_type = self._enum_matching( + payment_type, PhoneNumberInfoIntIdPaymentType.list(), "payment_type" + ) + if phone_number is not None: + self.phone_number = phone_number + if status is not None: + self.status = status + if type_ is not None: + self.type_ = self._enum_matching( + type_, PhoneNumberInfoIntIdType.list(), "type_" + ) + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, PhoneNumberInfoIntIdUsageType.list(), "usage_type" + ) diff --git a/src/ring_central/models/phone_number_info_number_parser.py b/src/ring_central/models/phone_number_info_number_parser.py new file mode 100644 index 00000000..cb375366 --- /dev/null +++ b/src/ring_central/models/phone_number_info_number_parser.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .get_country_info_number_parser import GetCountryInfoNumberParser + + +@JsonMap( + { + "original_string": "originalString", + "area_code": "areaCode", + "formatted_international": "formattedInternational", + "formatted_national": "formattedNational", + "toll_free": "tollFree", + "sub_address": "subAddress", + "subscriber_number": "subscriberNumber", + "dtmf_postfix": "dtmfPostfix", + } +) +class PhoneNumberInfoNumberParser(BaseModel): + """PhoneNumberInfoNumberParser + + :param original_string: Original phone number string as it was passed in the request, defaults to None + :type original_string: str, optional + :param country: country, defaults to None + :type country: GetCountryInfoNumberParser, optional + :param area_code: Area code of location. The portion of the [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) number that identifies a specific geographic region/numbering area of the national numbering plan (NANP); that can be summarized as `NPA-NXX-xxxx` and covers Canada, the United States, parts of the Caribbean Sea, and some Atlantic and Pacific islands. See [North American Numbering Plan](https://en.wikipedia.org/wiki/North_American_Numbering_Plan) for details , defaults to None + :type area_code: str, optional + :param dialable: Dialing format of a phone number, defaults to None + :type dialable: str, optional + :param e164: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format, defaults to None + :type e164: str, optional + :param formatted_international: The formatted phone number string in international format, defaults to None + :type formatted_international: str, optional + :param formatted_national: The formatted phone number string in domestic format, defaults to None + :type formatted_national: str, optional + :param special: Indicates if the number is in a special format (for example N11 code)', defaults to None + :type special: bool, optional + :param normalized: Phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format without plus sign ('+'), defaults to None + :type normalized: str, optional + :param toll_free: Indicates if the number is toll free, defaults to None + :type toll_free: bool, optional + :param sub_address: Sub-Address. The portion of the number that identifies a subscriber into the subscriber internal (non-public) network., defaults to None + :type sub_address: str, optional + :param subscriber_number: Subscriber number. The portion of the [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) number that identifies a subscriber in a network or numbering area., defaults to None + :type subscriber_number: str, optional + :param dtmf_postfix: DTMF (Dual Tone Multi-Frequency) postfix, defaults to None + :type dtmf_postfix: str, optional + """ + + def __init__( + self, + original_string: str = None, + country: GetCountryInfoNumberParser = None, + area_code: str = None, + dialable: str = None, + e164: str = None, + formatted_international: str = None, + formatted_national: str = None, + special: bool = None, + normalized: str = None, + toll_free: bool = None, + sub_address: str = None, + subscriber_number: str = None, + dtmf_postfix: str = None, + ): + if original_string is not None: + self.original_string = original_string + if country is not None: + self.country = self._define_object(country, GetCountryInfoNumberParser) + if area_code is not None: + self.area_code = area_code + if dialable is not None: + self.dialable = dialable + if e164 is not None: + self.e164 = e164 + if formatted_international is not None: + self.formatted_international = formatted_international + if formatted_national is not None: + self.formatted_national = formatted_national + if special is not None: + self.special = special + if normalized is not None: + self.normalized = normalized + if toll_free is not None: + self.toll_free = toll_free + if sub_address is not None: + self.sub_address = sub_address + if subscriber_number is not None: + self.subscriber_number = subscriber_number + if dtmf_postfix is not None: + self.dtmf_postfix = dtmf_postfix diff --git a/src/ring_central/models/phone_number_resource.py b/src/ring_central/models/phone_number_resource.py new file mode 100644 index 00000000..370a6d97 --- /dev/null +++ b/src/ring_central/models/phone_number_resource.py @@ -0,0 +1,89 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PhoneNumberResourceUsageType(Enum): + """An enumeration representing different categories. + + :cvar MOBILENUMBER: "MobileNumber" + :vartype MOBILENUMBER: str + :cvar CONTACTNUMBER: "ContactNumber" + :vartype CONTACTNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + """ + + MOBILENUMBER = "MobileNumber" + CONTACTNUMBER = "ContactNumber" + DIRECTNUMBER = "DirectNumber" + FORWARDEDNUMBER = "ForwardedNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PhoneNumberResourceUsageType._member_map_.values()) + ) + + +@JsonMap( + { + "formatted_phone_number": "formattedPhoneNumber", + "phone_number": "phoneNumber", + "type_": "type", + "usage_type": "usageType", + } +) +class PhoneNumberResource(BaseModel): + """PhoneNumberResource + + :param formatted_phone_number: formatted_phone_number, defaults to None + :type formatted_phone_number: str, optional + :param phone_number: phone_number, defaults to None + :type phone_number: str, optional + :param type_: type_, defaults to None + :type type_: str, optional + :param label: Custom user name of a phone number, if any, defaults to None + :type label: str, optional + :param usage_type: Usage type of phone number, defaults to None + :type usage_type: PhoneNumberResourceUsageType, optional + :param hidden: Specifies if a phone number should be hidden or not, defaults to None + :type hidden: bool, optional + :param primary: Specifies if the number is primary, i.e. displayed as 'main number' and called by default, defaults to None + :type primary: bool, optional + """ + + def __init__( + self, + formatted_phone_number: str = None, + phone_number: str = None, + type_: str = None, + label: str = None, + usage_type: PhoneNumberResourceUsageType = None, + hidden: bool = None, + primary: bool = None, + ): + if formatted_phone_number is not None: + self.formatted_phone_number = formatted_phone_number + if phone_number is not None: + self.phone_number = phone_number + if type_ is not None: + self.type_ = type_ + if label is not None: + self.label = label + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, PhoneNumberResourceUsageType.list(), "usage_type" + ) + if hidden is not None: + self.hidden = hidden + if primary is not None: + self.primary = primary diff --git a/src/ring_central/models/phone_number_status.py b/src/ring_central/models/phone_number_status.py new file mode 100644 index 00000000..9e04e537 --- /dev/null +++ b/src/ring_central/models/phone_number_status.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PhoneNumberStatus(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar PORTEDIN: "PortedIn" + :vartype PORTEDIN: str + :cvar TEMPORARY: "Temporary" + :vartype TEMPORARY: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + NORMAL = "Normal" + PENDING = "Pending" + PORTEDIN = "PortedIn" + TEMPORARY = "Temporary" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PhoneNumberStatus._member_map_.values())) diff --git a/src/ring_central/models/phone_number_toll_type.py b/src/ring_central/models/phone_number_toll_type.py new file mode 100644 index 00000000..20bfc186 --- /dev/null +++ b/src/ring_central/models/phone_number_toll_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PhoneNumberTollType(Enum): + """An enumeration representing different categories. + + :cvar TOLL: "Toll" + :vartype TOLL: str + :cvar TOLLFREE: "TollFree" + :vartype TOLLFREE: str + """ + + TOLL = "Toll" + TOLLFREE = "TollFree" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PhoneNumberTollType._member_map_.values())) diff --git a/src/ring_central/models/phone_number_type.py b/src/ring_central/models/phone_number_type.py new file mode 100644 index 00000000..730f2128 --- /dev/null +++ b/src/ring_central/models/phone_number_type.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PhoneNumberType(Enum): + """An enumeration representing different categories. + + :cvar VOICEFAX: "VoiceFax" + :vartype VOICEFAX: str + :cvar VOICEONLY: "VoiceOnly" + :vartype VOICEONLY: str + :cvar FAXONLY: "FaxOnly" + :vartype FAXONLY: str + """ + + VOICEFAX = "VoiceFax" + VOICEONLY = "VoiceOnly" + FAXONLY = "FaxOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PhoneNumberType._member_map_.values())) diff --git a/src/ring_central/models/phone_number_usage_type.py b/src/ring_central/models/phone_number_usage_type.py new file mode 100644 index 00000000..1228e468 --- /dev/null +++ b/src/ring_central/models/phone_number_usage_type.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PhoneNumberUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar INVENTORY: "Inventory" + :vartype INVENTORY: str + :cvar INVENTORYPARTNERBUSINESSMOBILENUMBER: "InventoryPartnerBusinessMobileNumber" + :vartype INVENTORYPARTNERBUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar MEETINGSNUMBER: "MeetingsNumber" + :vartype MEETINGSNUMBER: str + :cvar BUSINESSMOBILENUMBER: "BusinessMobileNumber" + :vartype BUSINESSMOBILENUMBER: str + :cvar ELIN: "ELIN" + :vartype ELIN: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + DIRECTNUMBER = "DirectNumber" + INVENTORY = "Inventory" + INVENTORYPARTNERBUSINESSMOBILENUMBER = "InventoryPartnerBusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + PHONELINE = "PhoneLine" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + CONFERENCINGNUMBER = "ConferencingNumber" + MEETINGSNUMBER = "MeetingsNumber" + BUSINESSMOBILENUMBER = "BusinessMobileNumber" + ELIN = "ELIN" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PhoneNumberUsageType._member_map_.values())) diff --git a/src/ring_central/models/pic_message_type_enum.py b/src/ring_central/models/pic_message_type_enum.py new file mode 100644 index 00000000..2fd2d7ea --- /dev/null +++ b/src/ring_central/models/pic_message_type_enum.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PicMessageTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar FAX: "Fax" + :vartype FAX: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar VOICEMAIL: "VoiceMail" + :vartype VOICEMAIL: str + :cvar PAGER: "Pager" + :vartype PAGER: str + """ + + FAX = "Fax" + SMS = "SMS" + VOICEMAIL = "VoiceMail" + PAGER = "Pager" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PicMessageTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/pickup_target.py b/src/ring_central/models/pickup_target.py new file mode 100644 index 00000000..15a2681b --- /dev/null +++ b/src/ring_central/models/pickup_target.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"device_id": "deviceId"}) +class PickupTarget(BaseModel): + """PickupTarget + + :param device_id: Device identifier that is used to pick up the parked call. + :type device_id: str + """ + + def __init__(self, device_id: str): + self.device_id = device_id diff --git a/src/ring_central/models/platform_payment_type.py b/src/ring_central/models/platform_payment_type.py new file mode 100644 index 00000000..65629d7e --- /dev/null +++ b/src/ring_central/models/platform_payment_type.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class PlatformPaymentType(Enum): + """An enumeration representing different categories. + + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + :cvar TOLLFREE: "TollFree" + :vartype TOLLFREE: str + :cvar LOCAL: "Local" + :vartype LOCAL: str + :cvar BUSINESSMOBILENUMBERPROVIDER: "BusinessMobileNumberProvider" + :vartype BUSINESSMOBILENUMBERPROVIDER: str + :cvar EXTERNALNUMBERPROVIDER: "ExternalNumberProvider" + :vartype EXTERNALNUMBERPROVIDER: str + :cvar EXTERNALNUMBERPROVIDERTOLLFREE: "ExternalNumberProviderTollFree" + :vartype EXTERNALNUMBERPROVIDERTOLLFREE: str + """ + + EXTERNAL = "External" + TOLLFREE = "TollFree" + LOCAL = "Local" + BUSINESSMOBILENUMBERPROVIDER = "BusinessMobileNumberProvider" + EXTERNALNUMBERPROVIDER = "ExternalNumberProvider" + EXTERNALNUMBERPROVIDERTOLLFREE = "ExternalNumberProviderTollFree" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PlatformPaymentType._member_map_.values())) diff --git a/src/ring_central/models/postal_address.py b/src/ring_central/models/postal_address.py new file mode 100644 index 00000000..b6a7c1cb --- /dev/null +++ b/src/ring_central/models/postal_address.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PostalAddress(BaseModel): + """Postal address/location + + :param street: Street address + :type street: str + :param street2: Street address (2nd line), defaults to None + :type street2: str, optional + :param city: City name + :type city: str + :param state: State or province information in the target country, defaults to None + :type state: str, optional + :param zip: Postal code in the target country + :type zip: str + :param country: ISO-3166-1 2-letter country code (alpha2) + :type country: str + """ + + def __init__( + self, + street: str, + city: str, + zip: str, + country: str, + street2: str = None, + state: str = None, + ): + self.street = street + if street2 is not None: + self.street2 = street2 + self.city = city + if state is not None: + self.state = state + self.zip = zip + self.country = country diff --git a/src/ring_central/models/presence_call_queue_info.py b/src/ring_central/models/presence_call_queue_info.py new file mode 100644 index 00000000..fa2d7dd1 --- /dev/null +++ b/src/ring_central/models/presence_call_queue_info.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "editable_member_status": "editableMemberStatus", + } +) +class PresenceCallQueueInfo(BaseModel): + """Call queue information + + :param id_: Internal identifier of a call queue, defaults to None + :type id_: str, optional + :param name: Name of a call queue, defaults to None + :type name: str, optional + :param extension_number: Extension number of a call queue, defaults to None + :type extension_number: str, optional + :param editable_member_status: Flag allow members to change their queue status, defaults to None + :type editable_member_status: bool, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + extension_number: str = None, + editable_member_status: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if editable_member_status is not None: + self.editable_member_status = editable_member_status diff --git a/src/ring_central/models/presence_info_request.py b/src/ring_central/models/presence_info_request.py new file mode 100644 index 00000000..2e8e621d --- /dev/null +++ b/src/ring_central/models/presence_info_request.py @@ -0,0 +1,155 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PresenceInfoRequestUserStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + """ + + OFFLINE = "Offline" + BUSY = "Busy" + AVAILABLE = "Available" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PresenceInfoRequestUserStatus._member_map_.values()) + ) + + +class PresenceInfoRequestDndStatus(Enum): + """An enumeration representing different categories. + + :cvar TAKEALLCALLS: "TakeAllCalls" + :vartype TAKEALLCALLS: str + :cvar DONOTACCEPTDEPARTMENTCALLS: "DoNotAcceptDepartmentCalls" + :vartype DONOTACCEPTDEPARTMENTCALLS: str + :cvar TAKEDEPARTMENTCALLSONLY: "TakeDepartmentCallsOnly" + :vartype TAKEDEPARTMENTCALLSONLY: str + :cvar DONOTACCEPTANYCALLS: "DoNotAcceptAnyCalls" + :vartype DONOTACCEPTANYCALLS: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + TAKEALLCALLS = "TakeAllCalls" + DONOTACCEPTDEPARTMENTCALLS = "DoNotAcceptDepartmentCalls" + TAKEDEPARTMENTCALLSONLY = "TakeDepartmentCallsOnly" + DONOTACCEPTANYCALLS = "DoNotAcceptAnyCalls" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PresenceInfoRequestDndStatus._member_map_.values()) + ) + + +class PresenceInfoRequestCallerIdVisibility(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar NONE: "None" + :vartype NONE: str + :cvar PERMITTEDUSERS: "PermittedUsers" + :vartype PERMITTEDUSERS: str + """ + + ALL = "All" + NONE = "None" + PERMITTEDUSERS = "PermittedUsers" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PresenceInfoRequestCallerIdVisibility._member_map_.values(), + ) + ) + + +@JsonMap( + { + "user_status": "userStatus", + "dnd_status": "dndStatus", + "allow_see_my_presence": "allowSeeMyPresence", + "ring_on_monitored_call": "ringOnMonitoredCall", + "pick_up_calls_on_hold": "pickUpCallsOnHold", + "caller_id_visibility": "callerIdVisibility", + } +) +class PresenceInfoRequest(BaseModel): + """PresenceInfoRequest + + :param user_status: user_status, defaults to None + :type user_status: PresenceInfoRequestUserStatus, optional + :param dnd_status: dnd_status, defaults to None + :type dnd_status: PresenceInfoRequestDndStatus, optional + :param message: message, defaults to None + :type message: str, optional + :param allow_see_my_presence: allow_see_my_presence, defaults to None + :type allow_see_my_presence: bool, optional + :param ring_on_monitored_call: ring_on_monitored_call, defaults to None + :type ring_on_monitored_call: bool, optional + :param pick_up_calls_on_hold: pick_up_calls_on_hold, defaults to None + :type pick_up_calls_on_hold: bool, optional + :param caller_id_visibility: Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers , defaults to None + :type caller_id_visibility: PresenceInfoRequestCallerIdVisibility, optional + """ + + def __init__( + self, + user_status: PresenceInfoRequestUserStatus = None, + dnd_status: PresenceInfoRequestDndStatus = None, + message: str = None, + allow_see_my_presence: bool = None, + ring_on_monitored_call: bool = None, + pick_up_calls_on_hold: bool = None, + caller_id_visibility: PresenceInfoRequestCallerIdVisibility = None, + ): + if user_status is not None: + self.user_status = self._enum_matching( + user_status, PresenceInfoRequestUserStatus.list(), "user_status" + ) + if dnd_status is not None: + self.dnd_status = self._enum_matching( + dnd_status, PresenceInfoRequestDndStatus.list(), "dnd_status" + ) + if message is not None: + self.message = message + if allow_see_my_presence is not None: + self.allow_see_my_presence = allow_see_my_presence + if ring_on_monitored_call is not None: + self.ring_on_monitored_call = ring_on_monitored_call + if pick_up_calls_on_hold is not None: + self.pick_up_calls_on_hold = pick_up_calls_on_hold + if caller_id_visibility is not None: + self.caller_id_visibility = self._enum_matching( + caller_id_visibility, + PresenceInfoRequestCallerIdVisibility.list(), + "caller_id_visibility", + ) diff --git a/src/ring_central/models/presence_info_response.py b/src/ring_central/models/presence_info_response.py new file mode 100644 index 00000000..b98e4dce --- /dev/null +++ b/src/ring_central/models/presence_info_response.py @@ -0,0 +1,295 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .active_call_info import ActiveCallInfo +from .get_presence_extension_info import GetPresenceExtensionInfo + + +class PresenceInfoResponseUserStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + """ + + OFFLINE = "Offline" + BUSY = "Busy" + AVAILABLE = "Available" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PresenceInfoResponseUserStatus._member_map_.values()) + ) + + +class PresenceInfoResponseDndStatus(Enum): + """An enumeration representing different categories. + + :cvar TAKEALLCALLS: "TakeAllCalls" + :vartype TAKEALLCALLS: str + :cvar DONOTACCEPTDEPARTMENTCALLS: "DoNotAcceptDepartmentCalls" + :vartype DONOTACCEPTDEPARTMENTCALLS: str + :cvar TAKEDEPARTMENTCALLSONLY: "TakeDepartmentCallsOnly" + :vartype TAKEDEPARTMENTCALLSONLY: str + :cvar DONOTACCEPTANYCALLS: "DoNotAcceptAnyCalls" + :vartype DONOTACCEPTANYCALLS: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + TAKEALLCALLS = "TakeAllCalls" + DONOTACCEPTDEPARTMENTCALLS = "DoNotAcceptDepartmentCalls" + TAKEDEPARTMENTCALLSONLY = "TakeDepartmentCallsOnly" + DONOTACCEPTANYCALLS = "DoNotAcceptAnyCalls" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PresenceInfoResponseDndStatus._member_map_.values()) + ) + + +class PresenceInfoResponseCallerIdVisibility(Enum): + """An enumeration representing different categories. + + :cvar ALL: "All" + :vartype ALL: str + :cvar NONE: "None" + :vartype NONE: str + :cvar PERMITTEDUSERS: "PermittedUsers" + :vartype PERMITTEDUSERS: str + """ + + ALL = "All" + NONE = "None" + PERMITTEDUSERS = "PermittedUsers" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PresenceInfoResponseCallerIdVisibility._member_map_.values(), + ) + ) + + +class PresenceInfoResponseMeetingStatus(Enum): + """An enumeration representing different categories. + + :cvar CONNECTED: "Connected" + :vartype CONNECTED: str + :cvar DISCONNECTED: "Disconnected" + :vartype DISCONNECTED: str + """ + + CONNECTED = "Connected" + DISCONNECTED = "Disconnected" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PresenceInfoResponseMeetingStatus._member_map_.values(), + ) + ) + + +class PresenceInfoResponseTelephonyStatus(Enum): + """An enumeration representing different categories. + + :cvar NOCALL: "NoCall" + :vartype NOCALL: str + :cvar CALLCONNECTED: "CallConnected" + :vartype CALLCONNECTED: str + :cvar RINGING: "Ringing" + :vartype RINGING: str + :cvar ONHOLD: "OnHold" + :vartype ONHOLD: str + :cvar PARKEDCALL: "ParkedCall" + :vartype PARKEDCALL: str + """ + + NOCALL = "NoCall" + CALLCONNECTED = "CallConnected" + RINGING = "Ringing" + ONHOLD = "OnHold" + PARKEDCALL = "ParkedCall" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PresenceInfoResponseTelephonyStatus._member_map_.values(), + ) + ) + + +class PresenceInfoResponsePresenceStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + """ + + OFFLINE = "Offline" + BUSY = "Busy" + AVAILABLE = "Available" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PresenceInfoResponsePresenceStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "user_status": "userStatus", + "dnd_status": "dndStatus", + "allow_see_my_presence": "allowSeeMyPresence", + "caller_id_visibility": "callerIdVisibility", + "ring_on_monitored_call": "ringOnMonitoredCall", + "pick_up_calls_on_hold": "pickUpCallsOnHold", + "active_calls": "activeCalls", + "meeting_status": "meetingStatus", + "telephony_status": "telephonyStatus", + "presence_status": "presenceStatus", + } +) +class PresenceInfoResponse(BaseModel): + """PresenceInfoResponse + + :param uri: Link to the presence resource, defaults to None + :type uri: str, optional + :param user_status: user_status, defaults to None + :type user_status: PresenceInfoResponseUserStatus, optional + :param dnd_status: dnd_status, defaults to None + :type dnd_status: PresenceInfoResponseDndStatus, optional + :param message: message, defaults to None + :type message: str, optional + :param allow_see_my_presence: allow_see_my_presence, defaults to None + :type allow_see_my_presence: bool, optional + :param caller_id_visibility: Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers , defaults to None + :type caller_id_visibility: PresenceInfoResponseCallerIdVisibility, optional + :param ring_on_monitored_call: ring_on_monitored_call, defaults to None + :type ring_on_monitored_call: bool, optional + :param pick_up_calls_on_hold: pick_up_calls_on_hold, defaults to None + :type pick_up_calls_on_hold: bool, optional + :param active_calls: active_calls, defaults to None + :type active_calls: List[ActiveCallInfo], optional + :param extension: Information on extension, for which this presence data is returned, defaults to None + :type extension: GetPresenceExtensionInfo, optional + :param meeting_status: Meetings presence status, defaults to None + :type meeting_status: PresenceInfoResponseMeetingStatus, optional + :param telephony_status: Telephony presence status. Returned if telephony status is changed, defaults to None + :type telephony_status: PresenceInfoResponseTelephonyStatus, optional + :param presence_status: Aggregated presence status, calculated from a number of sources, defaults to None + :type presence_status: PresenceInfoResponsePresenceStatus, optional + """ + + def __init__( + self, + uri: str = None, + user_status: PresenceInfoResponseUserStatus = None, + dnd_status: PresenceInfoResponseDndStatus = None, + message: str = None, + allow_see_my_presence: bool = None, + caller_id_visibility: PresenceInfoResponseCallerIdVisibility = None, + ring_on_monitored_call: bool = None, + pick_up_calls_on_hold: bool = None, + active_calls: List[ActiveCallInfo] = None, + extension: GetPresenceExtensionInfo = None, + meeting_status: PresenceInfoResponseMeetingStatus = None, + telephony_status: PresenceInfoResponseTelephonyStatus = None, + presence_status: PresenceInfoResponsePresenceStatus = None, + ): + if uri is not None: + self.uri = uri + if user_status is not None: + self.user_status = self._enum_matching( + user_status, PresenceInfoResponseUserStatus.list(), "user_status" + ) + if dnd_status is not None: + self.dnd_status = self._enum_matching( + dnd_status, PresenceInfoResponseDndStatus.list(), "dnd_status" + ) + if message is not None: + self.message = message + if allow_see_my_presence is not None: + self.allow_see_my_presence = allow_see_my_presence + if caller_id_visibility is not None: + self.caller_id_visibility = self._enum_matching( + caller_id_visibility, + PresenceInfoResponseCallerIdVisibility.list(), + "caller_id_visibility", + ) + if ring_on_monitored_call is not None: + self.ring_on_monitored_call = ring_on_monitored_call + if pick_up_calls_on_hold is not None: + self.pick_up_calls_on_hold = pick_up_calls_on_hold + if active_calls is not None: + self.active_calls = self._define_list(active_calls, ActiveCallInfo) + if extension is not None: + self.extension = self._define_object(extension, GetPresenceExtensionInfo) + if meeting_status is not None: + self.meeting_status = self._enum_matching( + meeting_status, + PresenceInfoResponseMeetingStatus.list(), + "meeting_status", + ) + if telephony_status is not None: + self.telephony_status = self._enum_matching( + telephony_status, + PresenceInfoResponseTelephonyStatus.list(), + "telephony_status", + ) + if presence_status is not None: + self.presence_status = self._enum_matching( + presence_status, + PresenceInfoResponsePresenceStatus.list(), + "presence_status", + ) diff --git a/src/ring_central/models/presence_navigation_info.py b/src/ring_central/models/presence_navigation_info.py new file mode 100644 index 00000000..12892bed --- /dev/null +++ b/src/ring_central/models/presence_navigation_info.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .presence_navigation_info_uri import PresenceNavigationInfoUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class PresenceNavigationInfo(BaseModel): + """Information on navigation + + :param first_page: Canonical URI for the corresponding page of the list, defaults to None + :type first_page: PresenceNavigationInfoUri, optional + :param next_page: Canonical URI for the corresponding page of the list, defaults to None + :type next_page: PresenceNavigationInfoUri, optional + :param previous_page: Canonical URI for the corresponding page of the list, defaults to None + :type previous_page: PresenceNavigationInfoUri, optional + :param last_page: Canonical URI for the corresponding page of the list, defaults to None + :type last_page: PresenceNavigationInfoUri, optional + """ + + def __init__( + self, + first_page: PresenceNavigationInfoUri = None, + next_page: PresenceNavigationInfoUri = None, + previous_page: PresenceNavigationInfoUri = None, + last_page: PresenceNavigationInfoUri = None, + ): + if first_page is not None: + self.first_page = self._define_object(first_page, PresenceNavigationInfoUri) + if next_page is not None: + self.next_page = self._define_object(next_page, PresenceNavigationInfoUri) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, PresenceNavigationInfoUri + ) + if last_page is not None: + self.last_page = self._define_object(last_page, PresenceNavigationInfoUri) diff --git a/src/ring_central/models/presence_navigation_info_uri.py b/src/ring_central/models/presence_navigation_info_uri.py new file mode 100644 index 00000000..3ccae87d --- /dev/null +++ b/src/ring_central/models/presence_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PresenceNavigationInfoUri(BaseModel): + """Canonical URI for the corresponding page of the list + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/presence_paging_info.py b/src/ring_central/models/presence_paging_info.py new file mode 100644 index 00000000..27cb86ce --- /dev/null +++ b/src/ring_central/models/presence_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class PresencePagingInfo(BaseModel): + """Information on paging + + :param page: The current page number. 1-indexed, so the first page is 1 by default. May be omitted if result is empty (because non-existent page was specified or perPage=0 was requested), defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items are in each page. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied, defaults to None + :type per_page: int, optional + :param page_start: The zero-based number of the first element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_start: int, optional + :param page_end: The zero-based index of the last element on the current page. Omitted if the page is omitted or result is empty, defaults to None + :type page_end: int, optional + :param total_pages: The total number of pages in a dataset. May be omitted for some resources due to performance reasons, defaults to None + :type total_pages: int, optional + :param total_elements: The total number of elements in a dataset. May be omitted for some resource due to performance reasons, defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/preset_info.py b/src/ring_central/models/preset_info.py new file mode 100644 index 00000000..0bf2406f --- /dev/null +++ b/src/ring_central/models/preset_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class PresetInfo(BaseModel): + """PresetInfo + + :param uri: Link to a greeting resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a greeting, defaults to None + :type id_: str, optional + :param name: Name of a greeting, defaults to None + :type name: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None, name: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/primary_cq_info.py b/src/ring_central/models/primary_cq_info.py new file mode 100644 index 00000000..01da3f36 --- /dev/null +++ b/src/ring_central/models/primary_cq_info.py @@ -0,0 +1,58 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PrimaryCqInfoType(Enum): + """An enumeration representing different categories. + + :cvar PHONENUMBERLABEL: "PhoneNumberLabel" + :vartype PHONENUMBERLABEL: str + :cvar PHONENUMBER: "PhoneNumber" + :vartype PHONENUMBER: str + :cvar QUEUEEXTENSION: "QueueExtension" + :vartype QUEUEEXTENSION: str + :cvar QUEUENAME: "QueueName" + :vartype QUEUENAME: str + :cvar CALLERIDNAME: "CallerIdName" + :vartype CALLERIDNAME: str + :cvar CALLERIDNUMBER: "CallerIdNumber" + :vartype CALLERIDNUMBER: str + :cvar NONE: "None" + :vartype NONE: str + """ + + PHONENUMBERLABEL = "PhoneNumberLabel" + PHONENUMBER = "PhoneNumber" + QUEUEEXTENSION = "QueueExtension" + QUEUENAME = "QueueName" + CALLERIDNAME = "CallerIdName" + CALLERIDNUMBER = "CallerIdNumber" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, PrimaryCqInfoType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class PrimaryCqInfo(BaseModel): + """Primary call session information. Supported for Call Queues only + + :param type_: Call information to be displayed as 'Line 1' for a call queue call session, defaults to None + :type type_: PrimaryCqInfoType, optional + :param value: Call information value, defaults to None + :type value: str, optional + """ + + def __init__(self, type_: PrimaryCqInfoType = None, value: str = None): + if type_ is not None: + self.type_ = self._enum_matching(type_, PrimaryCqInfoType.list(), "type_") + if value is not None: + self.value = value diff --git a/src/ring_central/models/private_ip_range_info.py b/src/ring_central/models/private_ip_range_info.py new file mode 100644 index 00000000..5f1d7823 --- /dev/null +++ b/src/ring_central/models/private_ip_range_info.py @@ -0,0 +1,83 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .common_emergency_location_address_info import ( + CommonEmergencyLocationAddressInfo, + CommonEmergencyLocationAddressInfoGuard, +) +from .common_emergency_location_address_info_default import ( + CommonEmergencyLocationAddressInfoDefault, +) +from .common_emergency_location_address_info_au import ( + CommonEmergencyLocationAddressInfoAu, +) +from .common_emergency_location_address_info_fr import ( + CommonEmergencyLocationAddressInfoFr, +) +from .emergency_location_info import EmergencyLocationInfo + + +@JsonMap( + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "emergency_address": "emergencyAddress", + "emergency_location_id": "emergencyLocationId", + "emergency_location": "emergencyLocation", + } +) +class PrivateIpRangeInfo(BaseModel): + """PrivateIpRangeInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param start_ip: start_ip, defaults to None + :type start_ip: str, optional + :param end_ip: end_ip, defaults to None + :type end_ip: str, optional + :param name: Network name, defaults to None + :type name: str, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: CommonEmergencyLocationAddressInfo, optional + :param emergency_location_id: Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise an error is returned , defaults to None + :type emergency_location_id: str, optional + :param matched: matched, defaults to None + :type matched: bool, optional + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: EmergencyLocationInfo, optional + """ + + def __init__( + self, + id_: str = None, + start_ip: str = None, + end_ip: str = None, + name: str = None, + emergency_address: CommonEmergencyLocationAddressInfo = None, + emergency_location_id: str = None, + matched: bool = None, + emergency_location: EmergencyLocationInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if start_ip is not None: + self.start_ip = start_ip + if end_ip is not None: + self.end_ip = end_ip + if name is not None: + self.name = name + if emergency_address is not None: + self.emergency_address = ( + CommonEmergencyLocationAddressInfoGuard.return_one_of(emergency_address) + ) + if emergency_location_id is not None: + self.emergency_location_id = emergency_location_id + if matched is not None: + self.matched = matched + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, EmergencyLocationInfo + ) diff --git a/src/ring_central/models/private_ip_range_info_request.py b/src/ring_central/models/private_ip_range_info_request.py new file mode 100644 index 00000000..6e420b72 --- /dev/null +++ b/src/ring_central/models/private_ip_range_info_request.py @@ -0,0 +1,68 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .location_updates_emergency_address_info_request import ( + LocationUpdatesEmergencyAddressInfoRequest, +) +from .erl_location_info import ErlLocationInfo + + +@JsonMap( + { + "id_": "id", + "start_ip": "startIp", + "end_ip": "endIp", + "emergency_address": "emergencyAddress", + "emergency_location_id": "emergencyLocationId", + "emergency_location": "emergencyLocation", + } +) +class PrivateIpRangeInfoRequest(BaseModel): + """PrivateIpRangeInfoRequest + + :param id_: id_, defaults to None + :type id_: str, optional + :param start_ip: start_ip, defaults to None + :type start_ip: str, optional + :param end_ip: end_ip, defaults to None + :type end_ip: str, optional + :param name: Network name, defaults to None + :type name: str, optional + :param emergency_address: Emergency address assigned to the switch. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned , defaults to None + :type emergency_address: LocationUpdatesEmergencyAddressInfoRequest, optional + :param emergency_location_id: Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned , defaults to None + :type emergency_location_id: str, optional + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: ErlLocationInfo, optional + """ + + def __init__( + self, + id_: str = None, + start_ip: str = None, + end_ip: str = None, + name: str = None, + emergency_address: LocationUpdatesEmergencyAddressInfoRequest = None, + emergency_location_id: str = None, + emergency_location: ErlLocationInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if start_ip is not None: + self.start_ip = start_ip + if end_ip is not None: + self.end_ip = end_ip + if name is not None: + self.name = name + if emergency_address is not None: + self.emergency_address = self._define_object( + emergency_address, LocationUpdatesEmergencyAddressInfoRequest + ) + if emergency_location_id is not None: + self.emergency_location_id = emergency_location_id + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, ErlLocationInfo + ) diff --git a/src/ring_central/models/profile_image_info.py b/src/ring_central/models/profile_image_info.py new file mode 100644 index 00000000..8a4273c0 --- /dev/null +++ b/src/ring_central/models/profile_image_info.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .profile_image_info_uri import ProfileImageInfoUri + + +@JsonMap({"last_modified": "lastModified", "content_type": "contentType"}) +class ProfileImageInfo(BaseModel): + """Information on profile image + + :param uri: Link to a profile image. If an image is not uploaded for an extension, only `uri` is returned + :type uri: str + :param etag: Identifier of an image, defaults to None + :type etag: str, optional + :param last_modified: Date/time when an image was last updated, in ISO 8601 format, for example 2016-03-10T18:07:52.534Z , defaults to None + :type last_modified: str, optional + :param content_type: The type of image, defaults to None + :type content_type: str, optional + :param scales: List of URIs to profile images in different dimensions , defaults to None + :type scales: List[ProfileImageInfoUri], optional + """ + + def __init__( + self, + uri: str, + etag: str = None, + last_modified: str = None, + content_type: str = None, + scales: List[ProfileImageInfoUri] = None, + ): + self.uri = uri + if etag is not None: + self.etag = etag + if last_modified is not None: + self.last_modified = last_modified + if content_type is not None: + self.content_type = content_type + if scales is not None: + self.scales = self._define_list(scales, ProfileImageInfoUri) diff --git a/src/ring_central/models/profile_image_info_uri.py b/src/ring_central/models/profile_image_info_uri.py new file mode 100644 index 00000000..64ec9529 --- /dev/null +++ b/src/ring_central/models/profile_image_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ProfileImageInfoUri(BaseModel): + """ProfileImageInfoUri + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/prompt_info.py b/src/ring_central/models/prompt_info.py new file mode 100644 index 00000000..aac26648 --- /dev/null +++ b/src/ring_central/models/prompt_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "content_type": "contentType", "content_uri": "contentUri"}) +class PromptInfo(BaseModel): + """PromptInfo + + :param uri: Internal identifier of a prompt, defaults to None + :type uri: str, optional + :param id_: Link to a prompt metadata, defaults to None + :type id_: str, optional + :param content_type: Type of prompt media content, defaults to None + :type content_type: str, optional + :param content_uri: Link to a prompt media content, defaults to None + :type content_uri: str, optional + :param filename: Name of a prompt, defaults to None + :type filename: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + content_type: str = None, + content_uri: str = None, + filename: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if content_type is not None: + self.content_type = content_type + if content_uri is not None: + self.content_uri = content_uri + if filename is not None: + self.filename = filename diff --git a/src/ring_central/models/prompt_language_info.py b/src/ring_central/models/prompt_language_info.py new file mode 100644 index 00000000..377d9dac --- /dev/null +++ b/src/ring_central/models/prompt_language_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class PromptLanguageInfo(BaseModel): + """For 'TextToSpeech' mode only. Prompt language metadata + + :param uri: Link to a prompt language, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a language, defaults to None + :type id_: str, optional + :param name: Language name, defaults to None + :type name: str, optional + :param locale_code: Language locale code, defaults to None + :type locale_code: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + locale_code: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/pronounced_name_info.py b/src/ring_central/models/pronounced_name_info.py new file mode 100644 index 00000000..841e01ee --- /dev/null +++ b/src/ring_central/models/pronounced_name_info.py @@ -0,0 +1,61 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .pronounced_name_prompt_info import PronouncedNamePromptInfo + + +class PronouncedNameInfoType(Enum): + """An enumeration representing different categories. + + :cvar DEFAULT: "Default" + :vartype DEFAULT: str + :cvar TEXTTOSPEECH: "TextToSpeech" + :vartype TEXTTOSPEECH: str + :cvar RECORDED: "Recorded" + :vartype RECORDED: str + """ + + DEFAULT = "Default" + TEXTTOSPEECH = "TextToSpeech" + RECORDED = "Recorded" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, PronouncedNameInfoType._member_map_.values()) + ) + + +@JsonMap({"type_": "type"}) +class PronouncedNameInfo(BaseModel): + """PronouncedNameInfo + + :param type_: The method used to pronounce the user's name: - `Default` - default extension name; first and last name specified in user's profile are pronounced using text-to-speech; - `TextToSpeech` - custom text specified by a user pronounced using text-to-speech; - `Recorded` - custom audio uploaded by a user, the name recorded in user's own voice (supported only for extension retrieval). , defaults to None + :type type_: PronouncedNameInfoType, optional + :param text: Custom text (for `TextToSpeech` type only), defaults to None + :type text: str, optional + :param prompt: prompt, defaults to None + :type prompt: PronouncedNamePromptInfo, optional + """ + + def __init__( + self, + type_: PronouncedNameInfoType = None, + text: str = None, + prompt: PronouncedNamePromptInfo = None, + ): + if type_ is not None: + self.type_ = self._enum_matching( + type_, PronouncedNameInfoType.list(), "type_" + ) + if text is not None: + self.text = text + if prompt is not None: + self.prompt = self._define_object(prompt, PronouncedNamePromptInfo) diff --git a/src/ring_central/models/pronounced_name_prompt_info.py b/src/ring_central/models/pronounced_name_prompt_info.py new file mode 100644 index 00000000..b836da07 --- /dev/null +++ b/src/ring_central/models/pronounced_name_prompt_info.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PronouncedNamePromptInfoContentType(Enum): + """An enumeration representing different categories. + + :cvar AUDIO_MPEG: "audio/mpeg" + :vartype AUDIO_MPEG: str + :cvar AUDIO_WAV: "audio/wav" + :vartype AUDIO_WAV: str + """ + + AUDIO_MPEG = "audio/mpeg" + AUDIO_WAV = "audio/wav" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PronouncedNamePromptInfoContentType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "content_uri": "contentUri", "content_type": "contentType"}) +class PronouncedNamePromptInfo(BaseModel): + """PronouncedNamePromptInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param content_uri: Link to a prompt resource, defaults to None + :type content_uri: str, optional + :param content_type: Content media type, defaults to None + :type content_type: PronouncedNamePromptInfoContentType, optional + """ + + def __init__( + self, + id_: str = None, + content_uri: str = None, + content_type: PronouncedNamePromptInfoContentType = None, + ): + if id_ is not None: + self.id_ = id_ + if content_uri is not None: + self.content_uri = content_uri + if content_type is not None: + self.content_type = self._enum_matching( + content_type, PronouncedNamePromptInfoContentType.list(), "content_type" + ) diff --git a/src/ring_central/models/provisioning_site_info.py b/src/ring_central/models/provisioning_site_info.py new file mode 100644 index 00000000..3c6b013f --- /dev/null +++ b/src/ring_central/models/provisioning_site_info.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ProvisioningSiteInfo(BaseModel): + """Site data. If multi-site feature is turned on for an account, + then ID of a site must be specified. In order to assign a wireless + point to the main site (company) the site ID should be set to `main-site` + + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + :param uri: Link to a site resource, defaults to None + :type uri: str, optional + :param name: Name of a site, defaults to None + :type name: str, optional + :param code: Site code value. Returned only if specified, defaults to None + :type code: str, optional + """ + + def __init__( + self, id_: str = None, uri: str = None, name: str = None, code: str = None + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if code is not None: + self.code = code diff --git a/src/ring_central/models/pub_nub_delivery_mode.py b/src/ring_central/models/pub_nub_delivery_mode.py new file mode 100644 index 00000000..e99e13d3 --- /dev/null +++ b/src/ring_central/models/pub_nub_delivery_mode.py @@ -0,0 +1,98 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PubNubDeliveryModeTransportType(Enum): + """An enumeration representing different categories. + + :cvar PUBNUB: "PubNub" + :vartype PUBNUB: str + """ + + PUBNUB = "PubNub" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, PubNubDeliveryModeTransportType._member_map_.values() + ) + ) + + +class EncryptionAlgorithm(Enum): + """An enumeration representing different categories. + + :cvar AES: "AES" + :vartype AES: str + """ + + AES = "AES" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, EncryptionAlgorithm._member_map_.values())) + + +@JsonMap( + { + "transport_type": "transportType", + "subscriber_key": "subscriberKey", + "secret_key": "secretKey", + "encryption_algorithm": "encryptionAlgorithm", + "encryption_key": "encryptionKey", + } +) +class PubNubDeliveryMode(BaseModel): + """PubNubDeliveryMode + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: PubNubDeliveryModeTransportType + :param encryption: Optional. Specifies if notification messages will be encrypted or not. Please note that for some event filters (e.g. presence) encryption is mandatory and `false` value provided by caller will be ignored. + :type encryption: bool + :param address: PubNub channel name + :type address: str + :param subscriber_key: PubNub credential required to subscribe to the channel + :type subscriber_key: str + :param secret_key: PubNub credential required to subscribe to the channel + :type secret_key: str + :param encryption_algorithm: (Only for a "PubNub" transport, returned only if `encryption` is `true`) Encryption algorithm used , defaults to None + :type encryption_algorithm: EncryptionAlgorithm, optional + :param encryption_key: (Only for a "PubNub" transport, returned only if `encryption` is `true`) Cryptographic key to decrypt PubNub notification messages , defaults to None + :type encryption_key: str, optional + """ + + def __init__( + self, + transport_type: PubNubDeliveryModeTransportType, + encryption: bool, + address: str, + subscriber_key: str, + secret_key: str, + encryption_algorithm: EncryptionAlgorithm = None, + encryption_key: str = None, + ): + self.transport_type = self._enum_matching( + transport_type, PubNubDeliveryModeTransportType.list(), "transport_type" + ) + self.encryption = encryption + self.address = address + self.subscriber_key = subscriber_key + self.secret_key = secret_key + if encryption_algorithm is not None: + self.encryption_algorithm = self._enum_matching( + encryption_algorithm, EncryptionAlgorithm.list(), "encryption_algorithm" + ) + if encryption_key is not None: + self.encryption_key = encryption_key diff --git a/src/ring_central/models/pub_nub_delivery_mode_request.py b/src/ring_central/models/pub_nub_delivery_mode_request.py new file mode 100644 index 00000000..a4e25d9b --- /dev/null +++ b/src/ring_central/models/pub_nub_delivery_mode_request.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class PubNubDeliveryModeRequestTransportType(Enum): + """An enumeration representing different categories. + + :cvar PUBNUB: "PubNub" + :vartype PUBNUB: str + """ + + PUBNUB = "PubNub" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + PubNubDeliveryModeRequestTransportType._member_map_.values(), + ) + ) + + +@JsonMap({"transport_type": "transportType"}) +class PubNubDeliveryModeRequest(BaseModel): + """PubNubDeliveryModeRequest + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: PubNubDeliveryModeRequestTransportType + :param encryption: Optional. Specifies if notification messages will be encrypted or not. Please note that for some event filters (e.g. presence) encryption is mandatory and `false` value provided by caller will be ignored. , defaults to None + :type encryption: bool, optional + """ + + def __init__( + self, + transport_type: PubNubDeliveryModeRequestTransportType, + encryption: bool = None, + ): + self.transport_type = self._enum_matching( + transport_type, + PubNubDeliveryModeRequestTransportType.list(), + "transport_type", + ) + if encryption is not None: + self.encryption = encryption diff --git a/src/ring_central/models/public_ip_range_info.py b/src/ring_central/models/public_ip_range_info.py new file mode 100644 index 00000000..d38b21a8 --- /dev/null +++ b/src/ring_central/models/public_ip_range_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "start_ip": "startIp", "end_ip": "endIp"}) +class PublicIpRangeInfo(BaseModel): + """PublicIpRangeInfo + + :param id_: id_, defaults to None + :type id_: str, optional + :param start_ip: start_ip, defaults to None + :type start_ip: str, optional + :param end_ip: end_ip, defaults to None + :type end_ip: str, optional + :param matched: matched, defaults to None + :type matched: bool, optional + """ + + def __init__( + self, + id_: str = None, + start_ip: str = None, + end_ip: str = None, + matched: bool = None, + ): + if id_ is not None: + self.id_ = id_ + if start_ip is not None: + self.start_ip = start_ip + if end_ip is not None: + self.end_ip = end_ip + if matched is not None: + self.matched = matched diff --git a/src/ring_central/models/public_meeting_invitation_response.py b/src/ring_central/models/public_meeting_invitation_response.py new file mode 100644 index 00000000..80d7eb8d --- /dev/null +++ b/src/ring_central/models/public_meeting_invitation_response.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PublicMeetingInvitationResponse(BaseModel): + """PublicMeetingInvitationResponse + + :param invitation: Meeting invitation, defaults to None + :type invitation: str, optional + """ + + def __init__(self, invitation: str = None): + if invitation is not None: + self.invitation = invitation diff --git a/src/ring_central/models/punctuate_api_response.py b/src/ring_central/models/punctuate_api_response.py new file mode 100644 index 00000000..e82ba729 --- /dev/null +++ b/src/ring_central/models/punctuate_api_response.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .punctuate_output import PunctuateOutput +from .cai_error_response import CaiErrorResponse + + +class PunctuateApiResponseGuard(OneOfBaseModel): + class_list = { + "PunctuateOutput": PunctuateOutput, + "CaiErrorResponse": CaiErrorResponse, + } + + +PunctuateApiResponse = Union[PunctuateOutput, CaiErrorResponse] diff --git a/src/ring_central/models/punctuate_input.py b/src/ring_central/models/punctuate_input.py new file mode 100644 index 00000000..4f3fe455 --- /dev/null +++ b/src/ring_central/models/punctuate_input.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PunctuateInput(BaseModel): + """PunctuateInput + + :param texts: texts + :type texts: List[str] + """ + + def __init__(self, texts: List[str]): + self.texts = texts diff --git a/src/ring_central/models/punctuate_output.py b/src/ring_central/models/punctuate_output.py new file mode 100644 index 00000000..b37e2978 --- /dev/null +++ b/src/ring_central/models/punctuate_output.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class PunctuateOutput(BaseModel): + """PunctuateOutput + + :param texts: texts + :type texts: List[str] + """ + + def __init__(self, texts: List[str]): + self.texts = texts diff --git a/src/ring_central/models/queue_info.py b/src/ring_central/models/queue_info.py new file mode 100644 index 00000000..2d4dfb82 --- /dev/null +++ b/src/ring_central/models/queue_info.py @@ -0,0 +1,254 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .transfer_info import TransferInfo +from .fixed_order_agents import FixedOrderAgents +from .unconditional_forwarding_info import UnconditionalForwardingInfo + + +class TransferMode(Enum): + """An enumeration representing different categories. + + :cvar ROTATING: "Rotating" + :vartype ROTATING: str + :cvar SIMULTANEOUS: "Simultaneous" + :vartype SIMULTANEOUS: str + :cvar FIXEDORDER: "FixedOrder" + :vartype FIXEDORDER: str + """ + + ROTATING = "Rotating" + SIMULTANEOUS = "Simultaneous" + FIXEDORDER = "FixedOrder" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TransferMode._member_map_.values())) + + +class NoAnswerAction(Enum): + """An enumeration representing different categories. + + :cvar WAITPRIMARYMEMBERS: "WaitPrimaryMembers" + :vartype WAITPRIMARYMEMBERS: str + :cvar WAITPRIMARYANDOVERFLOWMEMBERS: "WaitPrimaryAndOverflowMembers" + :vartype WAITPRIMARYANDOVERFLOWMEMBERS: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + """ + + WAITPRIMARYMEMBERS = "WaitPrimaryMembers" + WAITPRIMARYANDOVERFLOWMEMBERS = "WaitPrimaryAndOverflowMembers" + VOICEMAIL = "Voicemail" + TRANSFERTOEXTENSION = "TransferToExtension" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, NoAnswerAction._member_map_.values())) + + +class HoldAudioInterruptionMode(Enum): + """An enumeration representing different categories. + + :cvar NEVER: "Never" + :vartype NEVER: str + :cvar WHENMUSICENDS: "WhenMusicEnds" + :vartype WHENMUSICENDS: str + :cvar PERIODICALLY: "Periodically" + :vartype PERIODICALLY: str + """ + + NEVER = "Never" + WHENMUSICENDS = "WhenMusicEnds" + PERIODICALLY = "Periodically" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, HoldAudioInterruptionMode._member_map_.values()) + ) + + +class HoldTimeExpirationAction(Enum): + """An enumeration representing different categories. + + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + """ + + TRANSFERTOEXTENSION = "TransferToExtension" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + VOICEMAIL = "Voicemail" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, HoldTimeExpirationAction._member_map_.values()) + ) + + +class MaxCallersAction(Enum): + """An enumeration representing different categories. + + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + """ + + VOICEMAIL = "Voicemail" + ANNOUNCEMENT = "Announcement" + TRANSFERTOEXTENSION = "TransferToExtension" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, MaxCallersAction._member_map_.values())) + + +@JsonMap( + { + "transfer_mode": "transferMode", + "no_answer_action": "noAnswerAction", + "fixed_order_agents": "fixedOrderAgents", + "hold_audio_interruption_mode": "holdAudioInterruptionMode", + "hold_audio_interruption_period": "holdAudioInterruptionPeriod", + "hold_time_expiration_action": "holdTimeExpirationAction", + "agent_timeout": "agentTimeout", + "wrap_up_time": "wrapUpTime", + "hold_time": "holdTime", + "max_callers": "maxCallers", + "max_callers_action": "maxCallersAction", + "unconditional_forwarding": "unconditionalForwarding", + } +) +class QueueInfo(BaseModel): + """Queue settings applied for department (call queue) extension type, + with the 'AgentQueue' value specified as a call handling action + + + :param transfer_mode: Specifies how calls are transferred to group members, defaults to None + :type transfer_mode: TransferMode, optional + :param transfer: Call transfer information, defaults to None + :type transfer: List[TransferInfo], optional + :param no_answer_action: Specifies the type of action to be taken if: members are available but no one answers, or all members are busy/unavailable. This option is available for Business hours only. For simultaneous transfer mode only 'WaitPrimaryMembers' and 'WaitPrimaryAndOverflowMembers' are supported , defaults to None + :type no_answer_action: NoAnswerAction, optional + :param fixed_order_agents: Information on a call forwarding rule, defaults to None + :type fixed_order_agents: List[FixedOrderAgents], optional + :param hold_audio_interruption_mode: Connecting audio interruption mode, defaults to None + :type hold_audio_interruption_mode: HoldAudioInterruptionMode, optional + :param hold_audio_interruption_period: Connecting audio interruption message period in seconds, defaults to None + :type hold_audio_interruption_period: int, optional + :param hold_time_expiration_action: Specifies the type of action to be taken after the hold time (waiting for an available call queue member) expires. If 'TransferToExtension' option is selected, the extension specified in `transfer` field is used. The default value is `Voicemail` , defaults to None + :type hold_time_expiration_action: HoldTimeExpirationAction, optional + :param agent_timeout: Maximum time in seconds to wait for a call queue member before trying the next member, defaults to None + :type agent_timeout: int, optional + :param wrap_up_time: Minimum post-call wrap up time in seconds before agent status is automatically set; the value range is from 0 to 300 sec. , defaults to None + :type wrap_up_time: int, optional + :param hold_time: Maximum hold time in seconds to wait for an available call queue member, defaults to None + :type hold_time: int, optional + :param max_callers: Maximum count of callers on hold; the limitation is 25 callers, defaults to None + :type max_callers: int, optional + :param max_callers_action: Specifies the type of action to be taken if count of callers on hold exceeds the supported maximum, defaults to None + :type max_callers_action: MaxCallersAction, optional + :param unconditional_forwarding: unconditional_forwarding, defaults to None + :type unconditional_forwarding: List[UnconditionalForwardingInfo], optional + """ + + def __init__( + self, + transfer_mode: TransferMode = None, + transfer: List[TransferInfo] = None, + no_answer_action: NoAnswerAction = None, + fixed_order_agents: List[FixedOrderAgents] = None, + hold_audio_interruption_mode: HoldAudioInterruptionMode = None, + hold_audio_interruption_period: int = None, + hold_time_expiration_action: HoldTimeExpirationAction = None, + agent_timeout: int = None, + wrap_up_time: int = None, + hold_time: int = None, + max_callers: int = None, + max_callers_action: MaxCallersAction = None, + unconditional_forwarding: List[UnconditionalForwardingInfo] = None, + ): + if transfer_mode is not None: + self.transfer_mode = self._enum_matching( + transfer_mode, TransferMode.list(), "transfer_mode" + ) + if transfer is not None: + self.transfer = self._define_list(transfer, TransferInfo) + if no_answer_action is not None: + self.no_answer_action = self._enum_matching( + no_answer_action, NoAnswerAction.list(), "no_answer_action" + ) + if fixed_order_agents is not None: + self.fixed_order_agents = self._define_list( + fixed_order_agents, FixedOrderAgents + ) + if hold_audio_interruption_mode is not None: + self.hold_audio_interruption_mode = self._enum_matching( + hold_audio_interruption_mode, + HoldAudioInterruptionMode.list(), + "hold_audio_interruption_mode", + ) + if hold_audio_interruption_period is not None: + self.hold_audio_interruption_period = hold_audio_interruption_period + if hold_time_expiration_action is not None: + self.hold_time_expiration_action = self._enum_matching( + hold_time_expiration_action, + HoldTimeExpirationAction.list(), + "hold_time_expiration_action", + ) + if agent_timeout is not None: + self.agent_timeout = agent_timeout + if wrap_up_time is not None: + self.wrap_up_time = wrap_up_time + if hold_time is not None: + self.hold_time = hold_time + if max_callers is not None: + self.max_callers = max_callers + if max_callers_action is not None: + self.max_callers_action = self._enum_matching( + max_callers_action, MaxCallersAction.list(), "max_callers_action" + ) + if unconditional_forwarding is not None: + self.unconditional_forwarding = self._define_list( + unconditional_forwarding, UnconditionalForwardingInfo + ) diff --git a/src/ring_central/models/queue_opportunities.py b/src/ring_central/models/queue_opportunities.py new file mode 100644 index 00000000..3f82a487 --- /dev/null +++ b/src/ring_central/models/queue_opportunities.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .value_type import ValueType + + +@JsonMap({"value_type": "valueType"}) +class QueueOpportunities(BaseModel): + """Queue opportunities data for the specified grouping + + :param value_type: Unit of the result value + :type value_type: ValueType + :param values: Value for queue opportunities + :type values: float + """ + + def __init__(self, value_type: ValueType, values: float): + self.value_type = self._enum_matching( + value_type, ValueType.list(), "value_type" + ) + self.values = values diff --git a/src/ring_central/models/queue_opportunities_aggregation_type.py b/src/ring_central/models/queue_opportunities_aggregation_type.py new file mode 100644 index 00000000..21c13088 --- /dev/null +++ b/src/ring_central/models/queue_opportunities_aggregation_type.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class QueueOpportunitiesAggregationType(Enum): + """An enumeration representing different categories. + + :cvar SUM: "Sum" + :vartype SUM: str + """ + + SUM = "Sum" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + QueueOpportunitiesAggregationType._member_map_.values(), + ) + ) diff --git a/src/ring_central/models/queue_short_info_resource.py b/src/ring_central/models/queue_short_info_resource.py new file mode 100644 index 00000000..1b57d73c --- /dev/null +++ b/src/ring_central/models/queue_short_info_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class QueueShortInfoResource(BaseModel): + """QueueShortInfoResource + + :param id_: Call queue extension identifier, defaults to None + :type id_: str, optional + :param name: Call queue name (read-only), defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/queue_sla_options.py b/src/ring_central/models/queue_sla_options.py new file mode 100644 index 00000000..a4c81b22 --- /dev/null +++ b/src/ring_central/models/queue_sla_options.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class QueueSlaOptions(Enum): + """An enumeration representing different categories. + + :cvar INSLA: "InSla" + :vartype INSLA: str + :cvar OUTSLA: "OutSla" + :vartype OUTSLA: str + """ + + INSLA = "InSla" + OUTSLA = "OutSla" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, QueueSlaOptions._member_map_.values())) diff --git a/src/ring_central/models/ranges_info.py b/src/ring_central/models/ranges_info.py new file mode 100644 index 00000000..53505dd6 --- /dev/null +++ b/src/ring_central/models/ranges_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_": "from"}) +class RangesInfo(BaseModel): + """RangesInfo + + :param from_: Beginning timestamp of the range in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), for example *2018-10-29T14:00:00*, *2018-10-29T14:00:00Z*, *2018-10-29T14:00:00+0100* , defaults to None + :type from_: str, optional + :param to: Ending timestamp of the range in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), for example *2018-10-29T14:00:00*, *2018-10-29T14:00:00Z*, *2018-10-29T14:00:00+0100* , defaults to None + :type to: str, optional + """ + + def __init__(self, from_: str = None, to: str = None): + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to diff --git a/src/ring_central/models/rcw_domain_user_model.py b/src/ring_central/models/rcw_domain_user_model.py new file mode 100644 index 00000000..0cd700d0 --- /dev/null +++ b/src/ring_central/models/rcw_domain_user_model.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Domain(Enum): + """An enumeration representing different categories. + + :cvar PBX: "pbx" + :vartype PBX: str + :cvar ILM: "ilm" + :vartype ILM: str + """ + + PBX = "pbx" + ILM = "ilm" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Domain._member_map_.values())) + + +@JsonMap({"user_id": "userId", "account_id": "accountId"}) +class RcwDomainUserModel(BaseModel): + """RcwDomainUserModel + + :param user_id: User ID + :type user_id: str + :param account_id: Account ID + :type account_id: str + :param domain: Identity domain + :type domain: Domain + """ + + def __init__(self, user_id: str, account_id: str, domain: Domain): + self.user_id = user_id + self.account_id = account_id + self.domain = self._enum_matching(domain, Domain.list(), "domain") diff --git a/src/ring_central/models/rcw_invitee_type_enum.py b/src/ring_central/models/rcw_invitee_type_enum.py new file mode 100644 index 00000000..a94a803c --- /dev/null +++ b/src/ring_central/models/rcw_invitee_type_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RcwInviteeTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + USER = "User" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RcwInviteeTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/rcw_linked_user_model.py b/src/ring_central/models/rcw_linked_user_model.py new file mode 100644 index 00000000..3bb5e7d5 --- /dev/null +++ b/src/ring_central/models/rcw_linked_user_model.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_domain_user_model import RcwDomainUserModel + + +@JsonMap({"linked_user": "linkedUser"}) +class RcwLinkedUserModel(BaseModel): + """The internal IDs of RC-authenticated users. + + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + """ + + def __init__(self, linked_user: RcwDomainUserModel = None): + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) diff --git a/src/ring_central/models/rcw_paging_forward_model.py b/src/ring_central/models/rcw_paging_forward_model.py new file mode 100644 index 00000000..e75853f4 --- /dev/null +++ b/src/ring_central/models/rcw_paging_forward_model.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_token": "pageToken", + "next_page_token": "nextPageToken", + "previous_page_token": "previousPageToken", + } +) +class RcwPagingForwardModel(BaseModel): + """RcwPagingForwardModel + + :param per_page: Number of items per page + :type per_page: int + :param page_token: Current page token + :type page_token: str + :param next_page_token: Next page token (absent for the last page of the result set), defaults to None + :type next_page_token: str, optional + :param previous_page_token: Previous page token (absent for the first page of the result set) May be omitted if the result set does not support backward navigation. , defaults to None + :type previous_page_token: str, optional + """ + + def __init__( + self, + per_page: int, + page_token: str, + next_page_token: str = None, + previous_page_token: str = None, + ): + self.per_page = per_page + self.page_token = page_token + if next_page_token is not None: + self.next_page_token = next_page_token + if previous_page_token is not None: + self.previous_page_token = previous_page_token diff --git a/src/ring_central/models/rcw_paging_model.py b/src/ring_central/models/rcw_paging_model.py new file mode 100644 index 00000000..2fa53176 --- /dev/null +++ b/src/ring_central/models/rcw_paging_model.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_token": "pageToken", + "next_page_token": "nextPageToken", + "previous_page_token": "previousPageToken", + } +) +class RcwPagingModel(BaseModel): + """RcwPagingModel + + :param per_page: Number of items per page + :type per_page: int + :param page_token: Current page token + :type page_token: str + :param next_page_token: Next page token (absent for the last page of the result set), defaults to None + :type next_page_token: str, optional + :param previous_page_token: Previous page token (absent for the first page of the result set), defaults to None + :type previous_page_token: str, optional + """ + + def __init__( + self, + per_page: int, + page_token: str, + next_page_token: str = None, + previous_page_token: str = None, + ): + self.per_page = per_page + self.page_token = page_token + if next_page_token is not None: + self.next_page_token = next_page_token + if previous_page_token is not None: + self.previous_page_token = previous_page_token diff --git a/src/ring_central/models/rcw_resource_id_model.py b/src/ring_central/models/rcw_resource_id_model.py new file mode 100644 index 00000000..fc128994 --- /dev/null +++ b/src/ring_central/models/rcw_resource_id_model.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class RcwResourceIdModel(BaseModel): + """RcwResourceIdModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/rcw_role_enum.py b/src/ring_central/models/rcw_role_enum.py new file mode 100644 index 00000000..30a32d02 --- /dev/null +++ b/src/ring_central/models/rcw_role_enum.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RcwRoleEnum(Enum): + """An enumeration representing different categories. + + :cvar PANELIST: "Panelist" + :vartype PANELIST: str + :cvar COHOST: "CoHost" + :vartype COHOST: str + :cvar HOST: "Host" + :vartype HOST: str + :cvar ATTENDEE: "Attendee" + :vartype ATTENDEE: str + """ + + PANELIST = "Panelist" + COHOST = "CoHost" + HOST = "Host" + ATTENDEE = "Attendee" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RcwRoleEnum._member_map_.values())) diff --git a/src/ring_central/models/rcw_session_status_model.py b/src/ring_central/models/rcw_session_status_model.py new file mode 100644 index 00000000..a17bb32b --- /dev/null +++ b/src/ring_central/models/rcw_session_status_model.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RcwSessionStatusModel(Enum): + """An enumeration representing different categories. + + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar FINISHED: "Finished" + :vartype FINISHED: str + """ + + SCHEDULED = "Scheduled" + ACTIVE = "Active" + FINISHED = "Finished" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RcwSessionStatusModel._member_map_.values())) diff --git a/src/ring_central/models/read_a2_psms_opt_outs_status.py b/src/ring_central/models/read_a2_psms_opt_outs_status.py new file mode 100644 index 00000000..7bdf9e38 --- /dev/null +++ b/src/ring_central/models/read_a2_psms_opt_outs_status.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ReadA2PsmsOptOutsStatus(Enum): + """An enumeration representing different categories. + + :cvar OPTOUT: "optout" + :vartype OPTOUT: str + :cvar OPTIN: "optin" + :vartype OPTIN: str + :cvar ALL: "all" + :vartype ALL: str + """ + + OPTOUT = "optout" + OPTIN = "optin" + ALL = "all" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ReadA2PsmsOptOutsStatus._member_map_.values()) + ) diff --git a/src/ring_central/models/read_company_call_log_view.py b/src/ring_central/models/read_company_call_log_view.py new file mode 100644 index 00000000..45cf75e5 --- /dev/null +++ b/src/ring_central/models/read_company_call_log_view.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ReadCompanyCallLogView(Enum): + """An enumeration representing different categories. + + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + :cvar DETAILED: "Detailed" + :vartype DETAILED: str + """ + + SIMPLE = "Simple" + DETAILED = "Detailed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ReadCompanyCallLogView._member_map_.values()) + ) diff --git a/src/ring_central/models/reason_info.py b/src/ring_central/models/reason_info.py new file mode 100644 index 00000000..c282b4cf --- /dev/null +++ b/src/ring_central/models/reason_info.py @@ -0,0 +1,63 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ReasonInfoCode(Enum): + """An enumeration representing different categories. + + :cvar SERVICEPLANLIMITATION: "ServicePlanLimitation" + :vartype SERVICEPLANLIMITATION: str + :cvar ACCOUNTLIMITATION: "AccountLimitation" + :vartype ACCOUNTLIMITATION: str + :cvar EXTENSIONTYPELIMITATION: "ExtensionTypeLimitation" + :vartype EXTENSIONTYPELIMITATION: str + :cvar EXTENSIONLIMITATION: "ExtensionLimitation" + :vartype EXTENSIONLIMITATION: str + :cvar INSUFFICIENTPERMISSIONS: "InsufficientPermissions" + :vartype INSUFFICIENTPERMISSIONS: str + :cvar CONFIGURATIONLIMITATION: "ConfigurationLimitation" + :vartype CONFIGURATIONLIMITATION: str + """ + + SERVICEPLANLIMITATION = "ServicePlanLimitation" + ACCOUNTLIMITATION = "AccountLimitation" + EXTENSIONTYPELIMITATION = "ExtensionTypeLimitation" + EXTENSIONLIMITATION = "ExtensionLimitation" + INSUFFICIENTPERMISSIONS = "InsufficientPermissions" + CONFIGURATIONLIMITATION = "ConfigurationLimitation" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ReasonInfoCode._member_map_.values())) + + +@JsonMap({}) +class ReasonInfo(BaseModel): + """Reason for the feature unavailability. Returned only if `available` + is set to `false` + + + :param code: Reason code, defaults to None + :type code: ReasonInfoCode, optional + :param message: Reason description, defaults to None + :type message: str, optional + :param permission: permission, defaults to None + :type permission: str, optional + """ + + def __init__( + self, code: ReasonInfoCode = None, message: str = None, permission: str = None + ): + if code is not None: + self.code = self._enum_matching(code, ReasonInfoCode.list(), "code") + if message is not None: + self.message = message + if permission is not None: + self.permission = permission diff --git a/src/ring_central/models/recipient_info.py b/src/ring_central/models/recipient_info.py new file mode 100644 index 00000000..1089311f --- /dev/null +++ b/src/ring_central/models/recipient_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class RecipientInfo(BaseModel): + """Recipient data + + :param uri: Link to a voicemail recipient extension resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a voicemail recipient, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/recording.py b/src/ring_central/models/recording.py new file mode 100644 index 00000000..ca8887f7 --- /dev/null +++ b/src/ring_central/models/recording.py @@ -0,0 +1,133 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class RecordingStatus(Enum): + """An enumeration representing different categories. + + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + :cvar PROCESSED: "Processed" + :vartype PROCESSED: str + :cvar ERROR: "Error" + :vartype ERROR: str + :cvar CORRUPTED: "Corrupted" + :vartype CORRUPTED: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar PURGED: "Purged" + :vartype PURGED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + PROCESSING = "Processing" + PROCESSED = "Processed" + ERROR = "Error" + CORRUPTED = "Corrupted" + INPROGRESS = "InProgress" + PURGED = "Purged" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RecordingStatus._member_map_.values())) + + +class AvailabilityStatus(Enum): + """An enumeration representing different categories. + + :cvar ALIVE: "Alive" + :vartype ALIVE: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar PURGED: "Purged" + :vartype PURGED: str + :cvar NOTAVAILABLE: "NotAvailable" + :vartype NOTAVAILABLE: str + """ + + ALIVE = "Alive" + DELETED = "Deleted" + PURGED = "Purged" + NOTAVAILABLE = "NotAvailable" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AvailabilityStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "start_time": "startTime", + "availability_status": "availabilityStatus", + "long_summary": "longSummary", + "short_summary": "shortSummary", + } +) +class Recording(BaseModel): + """Recording information + + :param id_: Recording id + :type id_: str + :param start_time: Recording start time, defaults to None + :type start_time: int, optional + :param url: Secure Link to the recording file, defaults to None + :type url: str, optional + :param metadata: metadata, defaults to None + :type metadata: dict, optional + :param status: Recording processing status, defaults to None + :type status: RecordingStatus, optional + :param availability_status: Availability status + :type availability_status: AvailabilityStatus + :param long_summary: During meeting AI team analyze code and after meeting finished generates text summary about this meeting, defaults to None + :type long_summary: str, optional + :param short_summary: During meeting AI team analyze code and after meeting finished generates text summary about this meeting, defaults to None + :type short_summary: str, optional + :param keywords: During meeting AI team analyze code and after meeting finished generates key words used in meeting, defaults to None + :type keywords: List[str], optional + """ + + def __init__( + self, + id_: str, + availability_status: AvailabilityStatus, + start_time: int = None, + url: str = None, + metadata: dict = None, + status: RecordingStatus = None, + long_summary: str = None, + short_summary: str = None, + keywords: List[str] = None, + ): + self.id_ = id_ + if start_time is not None: + self.start_time = start_time + if url is not None: + self.url = url + if metadata is not None: + self.metadata = metadata + if status is not None: + self.status = self._enum_matching(status, RecordingStatus.list(), "status") + self.availability_status = self._enum_matching( + availability_status, AvailabilityStatus.list(), "availability_status" + ) + if long_summary is not None: + self.long_summary = long_summary + if short_summary is not None: + self.short_summary = short_summary + if keywords is not None: + self.keywords = keywords diff --git a/src/ring_central/models/recording_admin_extended_item_model.py b/src/ring_central/models/recording_admin_extended_item_model.py new file mode 100644 index 00000000..b48bb612 --- /dev/null +++ b/src/ring_central/models/recording_admin_extended_item_model.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel +from .session_ref_admin_model import SessionRefAdminModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + "recording_shared_uri": "recordingSharedUri", + } +) +class RecordingAdminExtendedItemModel(BaseModel): + """RecordingAdminExtendedItemModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + :param recording_shared_uri: Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded + :type recording_shared_uri: str + :param session: session, defaults to None + :type session: SessionRefAdminModel, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + recording_shared_uri: str, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + session: SessionRefAdminModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time + self.recording_shared_uri = recording_shared_uri + if session is not None: + self.session = self._define_object(session, SessionRefAdminModel) diff --git a/src/ring_central/models/recording_admin_list_resource.py b/src/ring_central/models/recording_admin_list_resource.py new file mode 100644 index 00000000..1376a4d9 --- /dev/null +++ b/src/ring_central/models/recording_admin_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_admin_model import RecordingAdminModel +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class RecordingAdminListResource(BaseModel): + """RecordingAdminListResource + + :param records: records + :type records: List[RecordingAdminModel] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[RecordingAdminModel], paging: RcwPagingModel): + self.records = self._define_list(records, RecordingAdminModel) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/recording_admin_model.py b/src/ring_central/models/recording_admin_model.py new file mode 100644 index 00000000..c2505aa7 --- /dev/null +++ b/src/ring_central/models/recording_admin_model.py @@ -0,0 +1,68 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel +from .session_ref_admin_model import SessionRefAdminModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + } +) +class RecordingAdminModel(BaseModel): + """RecordingAdminModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + :param session: session, defaults to None + :type session: SessionRefAdminModel, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + session: SessionRefAdminModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time + if session is not None: + self.session = self._define_object(session, SessionRefAdminModel) diff --git a/src/ring_central/models/recording_download_model.py b/src/ring_central/models/recording_download_model.py new file mode 100644 index 00000000..d17924b8 --- /dev/null +++ b/src/ring_central/models/recording_download_model.py @@ -0,0 +1,57 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class DownloadContentType(Enum): + """An enumeration representing different categories. + + :cvar VIDEO_MP4: "video/mp4" + :vartype VIDEO_MP4: str + :cvar AUDIO_M4A: "audio/m4a" + :vartype AUDIO_M4A: str + """ + + VIDEO_MP4 = "video/mp4" + AUDIO_M4A = "audio/m4a" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, DownloadContentType._member_map_.values())) + + +@JsonMap( + { + "download_uri": "downloadUri", + "download_content_type": "downloadContentType", + "download_size": "downloadSize", + } +) +class RecordingDownloadModel(BaseModel): + """RecordingDownloadModel + + :param download_uri: Download URI (available only for webinar host or admin) + :type download_uri: str + :param download_content_type: MIME type of the file to download. + :type download_content_type: DownloadContentType + :param download_size: Download file size in bytes + :type download_size: int + """ + + def __init__( + self, + download_uri: str, + download_content_type: DownloadContentType, + download_size: int, + ): + self.download_uri = download_uri + self.download_content_type = self._enum_matching( + download_content_type, DownloadContentType.list(), "download_content_type" + ) + self.download_size = download_size diff --git a/src/ring_central/models/recording_extended_model.py b/src/ring_central/models/recording_extended_model.py new file mode 100644 index 00000000..d65f9f06 --- /dev/null +++ b/src/ring_central/models/recording_extended_model.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + "recording_shared_uri": "recordingSharedUri", + } +) +class RecordingExtendedModel(BaseModel): + """RecordingExtendedModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + :param recording_shared_uri: Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded + :type recording_shared_uri: str + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + recording_shared_uri: str, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time + self.recording_shared_uri = recording_shared_uri diff --git a/src/ring_central/models/recording_info.py b/src/ring_central/models/recording_info.py new file mode 100644 index 00000000..4a7d403c --- /dev/null +++ b/src/ring_central/models/recording_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class RecordingInfo(BaseModel): + """RecordingInfo + + :param id_: Internal identifier of a recording resource, defaults to None + :type id_: str, optional + :param active: True if the recording is active. False if the recording is paused., defaults to None + :type active: bool, optional + """ + + def __init__(self, id_: str = None, active: bool = None): + if id_ is not None: + self.id_ = id_ + if active is not None: + self.active = active diff --git a/src/ring_central/models/recording_item_extended_model.py b/src/ring_central/models/recording_item_extended_model.py new file mode 100644 index 00000000..70dfbb5e --- /dev/null +++ b/src/ring_central/models/recording_item_extended_model.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel +from .session_ref_model import SessionRefModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + "recording_shared_uri": "recordingSharedUri", + } +) +class RecordingItemExtendedModel(BaseModel): + """RecordingItemExtendedModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + :param recording_shared_uri: Shared URI of the recording. If a password was required to join a webinar, the URI should contain the password encoded + :type recording_shared_uri: str + :param session: session, defaults to None + :type session: SessionRefModel, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + recording_shared_uri: str, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + session: SessionRefModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time + self.recording_shared_uri = recording_shared_uri + if session is not None: + self.session = self._define_object(session, SessionRefModel) diff --git a/src/ring_central/models/recording_item_model.py b/src/ring_central/models/recording_item_model.py new file mode 100644 index 00000000..2df0a219 --- /dev/null +++ b/src/ring_central/models/recording_item_model.py @@ -0,0 +1,68 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel +from .session_ref_model import SessionRefModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + } +) +class RecordingItemModel(BaseModel): + """RecordingItemModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + :param session: session, defaults to None + :type session: SessionRefModel, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + session: SessionRefModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time + if session is not None: + self.session = self._define_object(session, SessionRefModel) diff --git a/src/ring_central/models/recording_list_resource.py b/src/ring_central/models/recording_list_resource.py new file mode 100644 index 00000000..942611e4 --- /dev/null +++ b/src/ring_central/models/recording_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_item_model import RecordingItemModel +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class RecordingListResource(BaseModel): + """RecordingListResource + + :param records: records + :type records: List[RecordingItemModel] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[RecordingItemModel], paging: RcwPagingModel): + self.records = self._define_list(records, RecordingItemModel) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/recording_media_type.py b/src/ring_central/models/recording_media_type.py new file mode 100644 index 00000000..10b724c2 --- /dev/null +++ b/src/ring_central/models/recording_media_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RecordingMediaType(Enum): + """An enumeration representing different categories. + + :cvar VIDEO: "Video" + :vartype VIDEO: str + :cvar AUDIO: "Audio" + :vartype AUDIO: str + """ + + VIDEO = "Video" + AUDIO = "Audio" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RecordingMediaType._member_map_.values())) diff --git a/src/ring_central/models/recording_model.py b/src/ring_central/models/recording_model.py new file mode 100644 index 00000000..f89817c1 --- /dev/null +++ b/src/ring_central/models/recording_model.py @@ -0,0 +1,62 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recording_status_model import RecordingStatusModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "failure_reason": "failureReason", + "shared_uri_expiration_time": "sharedUriExpirationTime", + } +) +class RecordingModel(BaseModel): + """RecordingModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param status: Recording status + :type status: RecordingStatusModel + :param failure_reason: Generalized API error structure suitable for any error type, defaults to None + :type failure_reason: dict, optional + :param duration: Recording duration in seconds, defaults to None + :type duration: int, optional + :param shared: Indicates if Host or Admin has shared a recording. Can be set to true only then recording status is 'Available'. , defaults to None + :type shared: bool, optional + :param shared_uri_expiration_time: Time after which recording shared link cannot be accessed by recipients., defaults to None + :type shared_uri_expiration_time: str, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + status: RecordingStatusModel, + id_: str = None, + failure_reason: dict = None, + duration: int = None, + shared: bool = None, + shared_uri_expiration_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.status = self._enum_matching(status, RecordingStatusModel.list(), "status") + if failure_reason is not None: + self.failure_reason = failure_reason + if duration is not None: + self.duration = duration + if shared is not None: + self.shared = shared + if shared_uri_expiration_time is not None: + self.shared_uri_expiration_time = shared_uri_expiration_time diff --git a/src/ring_central/models/recording_status_model.py b/src/ring_central/models/recording_status_model.py new file mode 100644 index 00000000..1fc4ceee --- /dev/null +++ b/src/ring_central/models/recording_status_model.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RecordingStatusModel(Enum): + """An enumeration representing different categories. + + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + :cvar FAILED: "Failed" + :vartype FAILED: str + :cvar PURGED: "Purged" + :vartype PURGED: str + """ + + PROCESSING = "Processing" + AVAILABLE = "Available" + FAILED = "Failed" + PURGED = "Purged" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RecordingStatusModel._member_map_.values())) diff --git a/src/ring_central/models/recording_type.py b/src/ring_central/models/recording_type.py new file mode 100644 index 00000000..1b37e651 --- /dev/null +++ b/src/ring_central/models/recording_type.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class RecordingType(Enum): + """An enumeration representing different categories. + + :cvar AUTOMATIC: "Automatic" + :vartype AUTOMATIC: str + :cvar ONDEMAND: "OnDemand" + :vartype ONDEMAND: str + :cvar ALL: "All" + :vartype ALL: str + """ + + AUTOMATIC = "Automatic" + ONDEMAND = "OnDemand" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RecordingType._member_map_.values())) diff --git a/src/ring_central/models/recordings_preferences.py b/src/ring_central/models/recordings_preferences.py new file mode 100644 index 00000000..993f1f30 --- /dev/null +++ b/src/ring_central/models/recordings_preferences.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .everyone_can_control import EveryoneCanControl +from .auto_shared import AutoShared + + +@JsonMap({"everyone_can_control": "everyoneCanControl", "auto_shared": "autoShared"}) +class RecordingsPreferences(BaseModel): + """Recordings preferences + + :param everyone_can_control: Controls whether participants can start and pause recording, defaults to None + :type everyone_can_control: EveryoneCanControl, optional + :param auto_shared: Controls whether recording can be auto shared, defaults to None + :type auto_shared: AutoShared, optional + """ + + def __init__( + self, + everyone_can_control: EveryoneCanControl = None, + auto_shared: AutoShared = None, + ): + if everyone_can_control is not None: + self.everyone_can_control = self._define_object( + everyone_can_control, EveryoneCanControl + ) + if auto_shared is not None: + self.auto_shared = self._define_object(auto_shared, AutoShared) diff --git a/src/ring_central/models/recurrence_info.py b/src/ring_central/models/recurrence_info.py new file mode 100644 index 00000000..709190df --- /dev/null +++ b/src/ring_central/models/recurrence_info.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .meeting_frequency import MeetingFrequency +from .week_day import WeekDay +from .monthly_week import MonthlyWeek + + +@JsonMap( + { + "weekly_by_days": "weeklyByDays", + "monthly_by_day": "monthlyByDay", + "monthly_by_week": "monthlyByWeek", + "monthly_by_week_day": "monthlyByWeekDay", + } +) +class RecurrenceInfo(BaseModel): + """RecurrenceInfo + + :param frequency: Recurrence time frame, defaults to None + :type frequency: MeetingFrequency, optional + :param interval: Recurrence interval. The supported ranges are: 1-90 for `Daily`; 1-12 for `Weekly`; 1-3 for `Monthly` , defaults to None + :type interval: int, optional + :param weekly_by_days: weekly_by_days, defaults to None + :type weekly_by_days: List[WeekDay], optional + :param monthly_by_day: The supported range is 1-31, defaults to None + :type monthly_by_day: int, optional + :param monthly_by_week: Supported together with `weeklyByDay`, defaults to None + :type monthly_by_week: MonthlyWeek, optional + :param monthly_by_week_day: This field is used only if you're scheduling a recurring meeting of type `3` to state a specific day in a week when the monthly meeting should recur; it works together with `MonthlyByWeek` field. The values are: 1 - Sunday; 2 - Monday; 3 - Tuesday; 4 - Wednesday; 5 - Thursday; 6 - Friday; 7- Saturday, defaults to None + :type monthly_by_week_day: WeekDay, optional + :param count: Number of meeting occurrences, defaults to None + :type count: int, optional + :param until: Meeting expiration date-time, defaults to None + :type until: str, optional + """ + + def __init__( + self, + frequency: MeetingFrequency = None, + interval: int = None, + weekly_by_days: List[WeekDay] = None, + monthly_by_day: int = None, + monthly_by_week: MonthlyWeek = None, + monthly_by_week_day: WeekDay = None, + count: int = None, + until: str = None, + ): + if frequency is not None: + self.frequency = self._enum_matching( + frequency, MeetingFrequency.list(), "frequency" + ) + if interval is not None: + self.interval = interval + if weekly_by_days is not None: + self.weekly_by_days = self._define_list(weekly_by_days, WeekDay) + if monthly_by_day is not None: + self.monthly_by_day = monthly_by_day + if monthly_by_week is not None: + self.monthly_by_week = self._enum_matching( + monthly_by_week, MonthlyWeek.list(), "monthly_by_week" + ) + if monthly_by_week_day is not None: + self.monthly_by_week_day = self._enum_matching( + monthly_by_week_day, WeekDay.list(), "monthly_by_week_day" + ) + if count is not None: + self.count = count + if until is not None: + self.until = until diff --git a/src/ring_central/models/reference_info.py b/src/ring_central/models/reference_info.py new file mode 100644 index 00000000..92128ccf --- /dev/null +++ b/src/ring_central/models/reference_info.py @@ -0,0 +1,49 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ReferenceInfoType(Enum): + """An enumeration representing different categories. + + :cvar PARTNERID: "PartnerId" + :vartype PARTNERID: str + :cvar CUSTOMERDIRECTORYID: "CustomerDirectoryId" + :vartype CUSTOMERDIRECTORYID: str + """ + + PARTNERID = "PartnerId" + CUSTOMERDIRECTORYID = "CustomerDirectoryId" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ReferenceInfoType._member_map_.values())) + + +@JsonMap({"type_": "type", "ref_acc_id": "refAccId"}) +class ReferenceInfo(BaseModel): + """ReferenceInfo + + :param ref: Non-RC identifier of an extension, defaults to None + :type ref: str, optional + :param type_: Type of external identifier, defaults to None + :type type_: ReferenceInfoType, optional + :param ref_acc_id: Primary federation admin account identifier, defaults to None + :type ref_acc_id: str, optional + """ + + def __init__( + self, ref: str = None, type_: ReferenceInfoType = None, ref_acc_id: str = None + ): + if ref is not None: + self.ref = ref + if type_ is not None: + self.type_ = self._enum_matching(type_, ReferenceInfoType.list(), "type_") + if ref_acc_id is not None: + self.ref_acc_id = ref_acc_id diff --git a/src/ring_central/models/reg_answer_model.py b/src/ring_central/models/reg_answer_model.py new file mode 100644 index 00000000..d50bb374 --- /dev/null +++ b/src/ring_central/models/reg_answer_model.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .fixed_answer_model import FixedAnswerModel +from .variable_answer_model import VariableAnswerModel + + +class RegAnswerModelGuard(OneOfBaseModel): + class_list = { + "FixedAnswerModel": FixedAnswerModel, + "VariableAnswerModel": VariableAnswerModel, + } + + +RegAnswerModel = Union[FixedAnswerModel, VariableAnswerModel] diff --git a/src/ring_central/models/reg_session_model.py b/src/ring_central/models/reg_session_model.py new file mode 100644 index 00000000..a1545e6e --- /dev/null +++ b/src/ring_central/models/reg_session_model.py @@ -0,0 +1,179 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class RegistrationStatus(Enum): + """An enumeration representing different categories. + + :cvar OPEN: "Open" + :vartype OPEN: str + :cvar CLOSED: "Closed" + :vartype CLOSED: str + """ + + OPEN = "Open" + CLOSED = "Closed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, RegistrationStatus._member_map_.values())) + + +class OnDemandDuration(Enum): + """An enumeration representing different categories. + + :cvar ONEMONTH: "OneMonth" + :vartype ONEMONTH: str + :cvar TWOMONTHS: "TwoMonths" + :vartype TWOMONTHS: str + :cvar THREEMONTHS: "ThreeMonths" + :vartype THREEMONTHS: str + :cvar SIXMONTHS: "SixMonths" + :vartype SIXMONTHS: str + :cvar ONEYEAR: "OneYear" + :vartype ONEYEAR: str + """ + + ONEMONTH = "OneMonth" + TWOMONTHS = "TwoMonths" + THREEMONTHS = "ThreeMonths" + SIXMONTHS = "SixMonths" + ONEYEAR = "OneYear" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, OnDemandDuration._member_map_.values())) + + +@JsonMap( + { + "auto_close_limit": "autoCloseLimit", + "suppress_emails": "suppressEmails", + "registration_digest_enabled": "registrationDigestEnabled", + "prevent_multiple_device_joins": "preventMultipleDeviceJoins", + "work_email_required": "workEmailRequired", + "view_recording": "viewRecording", + "on_demand_duration": "onDemandDuration", + "recording_exist": "recordingExist", + } +) +class Settings(BaseModel): + """Settings + + :param auto_close_limit: The maximum number of registrants which forces closing the registration (0 means "off")., defaults to None + :type auto_close_limit: int, optional + :param suppress_emails: Indicates that emails to registrants should be suppressed (should be supported by external party), defaults to None + :type suppress_emails: bool, optional + :param registration_digest_enabled: Indicates that registration digest should be sent to host., defaults to None + :type registration_digest_enabled: bool, optional + :param prevent_multiple_device_joins: Indicates that registrants are allowed to join from multiple devices., defaults to None + :type prevent_multiple_device_joins: bool, optional + :param work_email_required: Indicates that work email address is required for registration., defaults to None + :type work_email_required: bool, optional + :param view_recording: Indicates that recording will be shown after the webinar and in emails., defaults to None + :type view_recording: bool, optional + :param on_demand_duration: Duration of on-demand webinar. The default value can only be used if the session is on demand., defaults to None + :type on_demand_duration: OnDemandDuration, optional + :param recording_exist: Indicates that recording exists for the session., defaults to None + :type recording_exist: bool, optional + """ + + def __init__( + self, + auto_close_limit: int = None, + suppress_emails: bool = None, + registration_digest_enabled: bool = None, + prevent_multiple_device_joins: bool = None, + work_email_required: bool = None, + view_recording: bool = None, + on_demand_duration: OnDemandDuration = None, + recording_exist: bool = None, + ): + if auto_close_limit is not None: + self.auto_close_limit = auto_close_limit + if suppress_emails is not None: + self.suppress_emails = suppress_emails + if registration_digest_enabled is not None: + self.registration_digest_enabled = registration_digest_enabled + if prevent_multiple_device_joins is not None: + self.prevent_multiple_device_joins = prevent_multiple_device_joins + if work_email_required is not None: + self.work_email_required = work_email_required + if view_recording is not None: + self.view_recording = view_recording + if on_demand_duration is not None: + self.on_demand_duration = self._enum_matching( + on_demand_duration, OnDemandDuration.list(), "on_demand_duration" + ) + if recording_exist is not None: + self.recording_exist = recording_exist + + +@JsonMap( + { + "id_": "id", + "registration_status": "registrationStatus", + "registration_page_uri": "registrationPageUri", + "branding_descriptor_uri": "brandingDescriptorUri", + "registrant_count": "registrantCount", + "has_real_registrants": "hasRealRegistrants", + "icalendar_sequence": "icalendarSequence", + } +) +class RegSessionModel(BaseModel): + """RegSessionModel + + :param id_: ID of the session + :type id_: str + :param registration_status: Status of the registration + :type registration_status: RegistrationStatus + :param registration_page_uri: The URI of the registration landing page, defaults to None + :type registration_page_uri: str, optional + :param branding_descriptor_uri: The URI of the branding descriptor, defaults to None + :type branding_descriptor_uri: str, optional + :param registrant_count: The current number of registrants + :type registrant_count: int + :param has_real_registrants: Indicates that there are non-test registrants + :type has_real_registrants: bool + :param icalendar_sequence: Sequence number for iCalendar email attachments, defaults to None + :type icalendar_sequence: int, optional + :param settings: settings, defaults to None + :type settings: Settings, optional + """ + + def __init__( + self, + id_: str, + registration_status: RegistrationStatus, + registrant_count: int, + has_real_registrants: bool, + registration_page_uri: str = None, + branding_descriptor_uri: str = None, + icalendar_sequence: int = None, + settings: Settings = None, + ): + self.id_ = id_ + self.registration_status = self._enum_matching( + registration_status, RegistrationStatus.list(), "registration_status" + ) + if registration_page_uri is not None: + self.registration_page_uri = registration_page_uri + if branding_descriptor_uri is not None: + self.branding_descriptor_uri = branding_descriptor_uri + self.registrant_count = registrant_count + self.has_real_registrants = has_real_registrants + if icalendar_sequence is not None: + self.icalendar_sequence = icalendar_sequence + if settings is not None: + self.settings = self._define_object(settings, Settings) diff --git a/src/ring_central/models/regional_language_info.py b/src/ring_central/models/regional_language_info.py new file mode 100644 index 00000000..42bb8dac --- /dev/null +++ b/src/ring_central/models/regional_language_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class RegionalLanguageInfo(BaseModel): + """Information on a language set as regional + + :param id_: Internal identifier of a language set as regional, defaults to None + :type id_: str, optional + :param locale_code: Localization code of a language set as regional, defaults to None + :type locale_code: str, optional + :param name: Official name of a language set as regional, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, locale_code: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if locale_code is not None: + self.locale_code = locale_code + if name is not None: + self.name = name diff --git a/src/ring_central/models/regional_settings.py b/src/ring_central/models/regional_settings.py new file mode 100644 index 00000000..1a112acb --- /dev/null +++ b/src/ring_central/models/regional_settings.py @@ -0,0 +1,90 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_short_model import CountryInfoShortModel +from .timezone_info import TimezoneInfo +from .regional_language_info import RegionalLanguageInfo +from .greeting_language_info import GreetingLanguageInfo +from .formatting_locale_info import FormattingLocaleInfo + + +class RegionalSettingsTimeFormat(Enum): + """An enumeration representing different categories. + + :cvar _12H: "12h" + :vartype _12H: str + :cvar _24H: "24h" + :vartype _24H: str + """ + + _12H = "12h" + _24H = "24h" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, RegionalSettingsTimeFormat._member_map_.values()) + ) + + +@JsonMap( + { + "home_country": "homeCountry", + "greeting_language": "greetingLanguage", + "formatting_locale": "formattingLocale", + "time_format": "timeFormat", + } +) +class RegionalSettings(BaseModel): + """Regional data (timezone, home country, language) of an extension/account. + The default is Company (Auto-Receptionist) settings + + + :param home_country: home_country, defaults to None + :type home_country: CountryInfoShortModel, optional + :param timezone: Extension timezone information, defaults to None + :type timezone: TimezoneInfo, optional + :param language: Information on a language set as regional, defaults to None + :type language: RegionalLanguageInfo, optional + :param greeting_language: Information on language used for telephony greetings , defaults to None + :type greeting_language: GreetingLanguageInfo, optional + :param formatting_locale: Formatting language preferences for numbers, dates and currencies , defaults to None + :type formatting_locale: FormattingLocaleInfo, optional + :param time_format: Time format setting. The default value is '12h' = ['12h', '24h'], defaults to None + :type time_format: RegionalSettingsTimeFormat, optional + """ + + def __init__( + self, + home_country: CountryInfoShortModel = None, + timezone: TimezoneInfo = None, + language: RegionalLanguageInfo = None, + greeting_language: GreetingLanguageInfo = None, + formatting_locale: FormattingLocaleInfo = None, + time_format: RegionalSettingsTimeFormat = None, + ): + if home_country is not None: + self.home_country = self._define_object(home_country, CountryInfoShortModel) + if timezone is not None: + self.timezone = self._define_object(timezone, TimezoneInfo) + if language is not None: + self.language = self._define_object(language, RegionalLanguageInfo) + if greeting_language is not None: + self.greeting_language = self._define_object( + greeting_language, GreetingLanguageInfo + ) + if formatting_locale is not None: + self.formatting_locale = self._define_object( + formatting_locale, FormattingLocaleInfo + ) + if time_format is not None: + self.time_format = self._enum_matching( + time_format, RegionalSettingsTimeFormat.list(), "time_format" + ) diff --git a/src/ring_central/models/registrant_base_model_with_questionnaire.py b/src/ring_central/models/registrant_base_model_with_questionnaire.py new file mode 100644 index 00000000..d7ea81da --- /dev/null +++ b/src/ring_central/models/registrant_base_model_with_questionnaire.py @@ -0,0 +1,95 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .reg_answer_model import RegAnswerModel, RegAnswerModelGuard +from .fixed_answer_model import FixedAnswerModel +from .variable_answer_model import VariableAnswerModel + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "join_uri": "joinUri", + "cancellation_uri": "cancellationUri", + "registered_post_webinar": "registeredPostWebinar", + "visitor_id": "visitorId", + "external_id": "externalId", + "registration_time": "registrationTime", + "ip_address": "ipAddress", + "participant_id": "participantId", + } +) +class RegistrantBaseModelWithQuestionnaire(BaseModel): + """RegistrantBaseModelWithQuestionnaire + + :param first_name: First (given) name + :type first_name: str + :param last_name: Last (family) name + :type last_name: str + :param email: User's contact email + :type email: str + :param join_uri: The personalized URI for this registrant to join the Webinar, defaults to None + :type join_uri: str, optional + :param cancellation_uri: The personalized URI for this registrant to cancel the registration, defaults to None + :type cancellation_uri: str, optional + :param registered_post_webinar: Indicates if the registrant was registered to on-demand webinar, defaults to None + :type registered_post_webinar: bool, optional + :param visitor_id: Visitor ID passed from registration page, defaults to None + :type visitor_id: str, optional + :param external_id: ID of a registrant passed from external system, defaults to None + :type external_id: str, optional + :param registration_time: Registration time (can be earlier than "creationTime" due to indirect persistence), defaults to None + :type registration_time: str, optional + :param ip_address: IP address of the registrant's user agent, defaults to None + :type ip_address: str, optional + :param source: Registration channel source (coming from registration URI), defaults to None + :type source: str, optional + :param participant_id: ID of session participant (from Runtime Service - if this registrant attended the webinar), defaults to None + :type participant_id: str, optional + :param questionnaire: Answers on custom registration questions, defaults to None + :type questionnaire: List[RegAnswerModel], optional + """ + + def __init__( + self, + first_name: str, + last_name: str, + email: str, + join_uri: str = None, + cancellation_uri: str = None, + registered_post_webinar: bool = None, + visitor_id: str = None, + external_id: str = None, + registration_time: str = None, + ip_address: str = None, + source: str = None, + participant_id: str = None, + questionnaire: List[RegAnswerModel] = None, + ): + self.first_name = first_name + self.last_name = last_name + self.email = email + if join_uri is not None: + self.join_uri = join_uri + if cancellation_uri is not None: + self.cancellation_uri = cancellation_uri + if registered_post_webinar is not None: + self.registered_post_webinar = registered_post_webinar + if visitor_id is not None: + self.visitor_id = visitor_id + if external_id is not None: + self.external_id = external_id + if registration_time is not None: + self.registration_time = registration_time + if ip_address is not None: + self.ip_address = ip_address + if source is not None: + self.source = source + if participant_id is not None: + self.participant_id = participant_id + if questionnaire is not None: + self.questionnaire = self._define_list(questionnaire, RegAnswerModel) diff --git a/src/ring_central/models/registrant_list_resource.py b/src/ring_central/models/registrant_list_resource.py new file mode 100644 index 00000000..d69ee4f6 --- /dev/null +++ b/src/ring_central/models/registrant_list_resource.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .registrant_model_with_questionnaire import RegistrantModelWithQuestionnaire +from .rcw_paging_forward_model import RcwPagingForwardModel + + +@JsonMap({}) +class RegistrantListResource(BaseModel): + """RegistrantListResource + + :param records: records + :type records: List[RegistrantModelWithQuestionnaire] + :param paging: paging + :type paging: RcwPagingForwardModel + """ + + def __init__( + self, + records: List[RegistrantModelWithQuestionnaire], + paging: RcwPagingForwardModel, + ): + self.records = self._define_list(records, RegistrantModelWithQuestionnaire) + self.paging = self._define_object(paging, RcwPagingForwardModel) diff --git a/src/ring_central/models/registrant_model_response_post_with_questionnaire.py b/src/ring_central/models/registrant_model_response_post_with_questionnaire.py new file mode 100644 index 00000000..8503f685 --- /dev/null +++ b/src/ring_central/models/registrant_model_response_post_with_questionnaire.py @@ -0,0 +1,117 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .reg_answer_model import RegAnswerModel, RegAnswerModelGuard +from .fixed_answer_model import FixedAnswerModel +from .variable_answer_model import VariableAnswerModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "first_name": "firstName", + "last_name": "lastName", + "join_uri": "joinUri", + "cancellation_uri": "cancellationUri", + "registered_post_webinar": "registeredPostWebinar", + "visitor_id": "visitorId", + "external_id": "externalId", + "registration_time": "registrationTime", + "ip_address": "ipAddress", + "participant_id": "participantId", + "icalendar_sequence": "icalendarSequence", + } +) +class RegistrantModelResponsePostWithQuestionnaire(BaseModel): + """RegistrantModelResponsePostWithQuestionnaire + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param first_name: First (given) name + :type first_name: str + :param last_name: Last (family) name + :type last_name: str + :param email: User's contact email + :type email: str + :param join_uri: The personalized URI for this registrant to join the Webinar, defaults to None + :type join_uri: str, optional + :param cancellation_uri: The personalized URI for this registrant to cancel the registration, defaults to None + :type cancellation_uri: str, optional + :param registered_post_webinar: Indicates if the registrant was registered to on-demand webinar, defaults to None + :type registered_post_webinar: bool, optional + :param visitor_id: Visitor ID passed from registration page, defaults to None + :type visitor_id: str, optional + :param external_id: ID of a registrant passed from external system, defaults to None + :type external_id: str, optional + :param registration_time: Registration time (can be earlier than "creationTime" due to indirect persistence), defaults to None + :type registration_time: str, optional + :param ip_address: IP address of the registrant's user agent, defaults to None + :type ip_address: str, optional + :param source: Registration channel source (coming from registration URI), defaults to None + :type source: str, optional + :param participant_id: ID of session participant (from Runtime Service - if this registrant attended the webinar), defaults to None + :type participant_id: str, optional + :param questionnaire: Answers on custom registration questions, defaults to None + :type questionnaire: List[RegAnswerModel], optional + :param icalendar_sequence: Sequence number for iCalendar email attachments, defaults to None + :type icalendar_sequence: int, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + first_name: str, + last_name: str, + email: str, + id_: str = None, + join_uri: str = None, + cancellation_uri: str = None, + registered_post_webinar: bool = None, + visitor_id: str = None, + external_id: str = None, + registration_time: str = None, + ip_address: str = None, + source: str = None, + participant_id: str = None, + questionnaire: List[RegAnswerModel] = None, + icalendar_sequence: int = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.first_name = first_name + self.last_name = last_name + self.email = email + if join_uri is not None: + self.join_uri = join_uri + if cancellation_uri is not None: + self.cancellation_uri = cancellation_uri + if registered_post_webinar is not None: + self.registered_post_webinar = registered_post_webinar + if visitor_id is not None: + self.visitor_id = visitor_id + if external_id is not None: + self.external_id = external_id + if registration_time is not None: + self.registration_time = registration_time + if ip_address is not None: + self.ip_address = ip_address + if source is not None: + self.source = source + if participant_id is not None: + self.participant_id = participant_id + if questionnaire is not None: + self.questionnaire = self._define_list(questionnaire, RegAnswerModel) + if icalendar_sequence is not None: + self.icalendar_sequence = icalendar_sequence diff --git a/src/ring_central/models/registrant_model_with_questionnaire.py b/src/ring_central/models/registrant_model_with_questionnaire.py new file mode 100644 index 00000000..eb2eed14 --- /dev/null +++ b/src/ring_central/models/registrant_model_with_questionnaire.py @@ -0,0 +1,111 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .reg_answer_model import RegAnswerModel, RegAnswerModelGuard +from .fixed_answer_model import FixedAnswerModel +from .variable_answer_model import VariableAnswerModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "first_name": "firstName", + "last_name": "lastName", + "join_uri": "joinUri", + "cancellation_uri": "cancellationUri", + "registered_post_webinar": "registeredPostWebinar", + "visitor_id": "visitorId", + "external_id": "externalId", + "registration_time": "registrationTime", + "ip_address": "ipAddress", + "participant_id": "participantId", + } +) +class RegistrantModelWithQuestionnaire(BaseModel): + """RegistrantModelWithQuestionnaire + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param first_name: First (given) name + :type first_name: str + :param last_name: Last (family) name + :type last_name: str + :param email: User's contact email + :type email: str + :param join_uri: The personalized URI for this registrant to join the Webinar, defaults to None + :type join_uri: str, optional + :param cancellation_uri: The personalized URI for this registrant to cancel the registration, defaults to None + :type cancellation_uri: str, optional + :param registered_post_webinar: Indicates if the registrant was registered to on-demand webinar, defaults to None + :type registered_post_webinar: bool, optional + :param visitor_id: Visitor ID passed from registration page, defaults to None + :type visitor_id: str, optional + :param external_id: ID of a registrant passed from external system, defaults to None + :type external_id: str, optional + :param registration_time: Registration time (can be earlier than "creationTime" due to indirect persistence), defaults to None + :type registration_time: str, optional + :param ip_address: IP address of the registrant's user agent, defaults to None + :type ip_address: str, optional + :param source: Registration channel source (coming from registration URI), defaults to None + :type source: str, optional + :param participant_id: ID of session participant (from Runtime Service - if this registrant attended the webinar), defaults to None + :type participant_id: str, optional + :param questionnaire: Answers on custom registration questions, defaults to None + :type questionnaire: List[RegAnswerModel], optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + first_name: str, + last_name: str, + email: str, + id_: str = None, + join_uri: str = None, + cancellation_uri: str = None, + registered_post_webinar: bool = None, + visitor_id: str = None, + external_id: str = None, + registration_time: str = None, + ip_address: str = None, + source: str = None, + participant_id: str = None, + questionnaire: List[RegAnswerModel] = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.first_name = first_name + self.last_name = last_name + self.email = email + if join_uri is not None: + self.join_uri = join_uri + if cancellation_uri is not None: + self.cancellation_uri = cancellation_uri + if registered_post_webinar is not None: + self.registered_post_webinar = registered_post_webinar + if visitor_id is not None: + self.visitor_id = visitor_id + if external_id is not None: + self.external_id = external_id + if registration_time is not None: + self.registration_time = registration_time + if ip_address is not None: + self.ip_address = ip_address + if source is not None: + self.source = source + if participant_id is not None: + self.participant_id = participant_id + if questionnaire is not None: + self.questionnaire = self._define_list(questionnaire, RegAnswerModel) diff --git a/src/ring_central/models/rejected_recipient_response_resource.py b/src/ring_central/models/rejected_recipient_response_resource.py new file mode 100644 index 00000000..8e4d9782 --- /dev/null +++ b/src/ring_central/models/rejected_recipient_response_resource.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_code": "errorCode"}) +class RejectedRecipientResponseResource(BaseModel): + """The rejected recipient details + + :param index: The index of the messages list in the send batch request where the invalid recipient was found, defaults to None + :type index: int, optional + :param to: The invalid recipient number as found in the request, defaults to None + :type to: List[str], optional + :param error_code: The error code, defaults to None + :type error_code: str, optional + :param description: The description of the error, defaults to None + :type description: str, optional + """ + + def __init__( + self, + index: int = None, + to: List[str] = None, + error_code: str = None, + description: str = None, + ): + if index is not None: + self.index = index + if to is not None: + self.to = to + if error_code is not None: + self.error_code = error_code + if description is not None: + self.description = description diff --git a/src/ring_central/models/remove_line_request.py b/src/ring_central/models/remove_line_request.py new file mode 100644 index 00000000..e735a5de --- /dev/null +++ b/src/ring_central/models/remove_line_request.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"keep_assets_in_inventory": "keepAssetsInInventory"}) +class RemoveLineRequest(BaseModel): + """RemoveLineRequest + + :param keep_assets_in_inventory: The flag that controls what to do with the number and device: - if the value of `keepAssetsInInventory` is `true`, the given device is moved to unassigned devices and the number is moved to the number inventory; - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account; - if the parameter `keepAssetsInInventory` is not set (empty body) or the value of the parameter is empty, default value `true` is set. + :type keep_assets_in_inventory: bool + """ + + def __init__(self, keep_assets_in_inventory: bool): + self.keep_assets_in_inventory = keep_assets_in_inventory diff --git a/src/ring_central/models/remove_line_response.py b/src/ring_central/models/remove_line_response.py new file mode 100644 index 00000000..e3346825 --- /dev/null +++ b/src/ring_central/models/remove_line_response.py @@ -0,0 +1,82 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class RemoveLineResponseType(Enum): + """An enumeration representing different categories. + + :cvar HARDPHONE: "HardPhone" + :vartype HARDPHONE: str + :cvar SOFTPHONE: "SoftPhone" + :vartype SOFTPHONE: str + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar MOBILEDEVICE: "MobileDevice" + :vartype MOBILEDEVICE: str + :cvar BLA: "BLA" + :vartype BLA: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + :cvar WEBRTC: "WebRTC" + :vartype WEBRTC: str + :cvar ZOOMMOBILE: "ZoomMobile" + :vartype ZOOMMOBILE: str + :cvar ZOOMPHONE: "ZoomPhone" + :vartype ZOOMPHONE: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + HARDPHONE = "HardPhone" + SOFTPHONE = "SoftPhone" + OTHERPHONE = "OtherPhone" + MOBILEDEVICE = "MobileDevice" + BLA = "BLA" + PAGING = "Paging" + WEBPHONE = "WebPhone" + WEBRTC = "WebRTC" + ZOOMMOBILE = "ZoomMobile" + ZOOMPHONE = "ZoomPhone" + ROOM = "Room" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, RemoveLineResponseType._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "type_": "type"}) +class RemoveLineResponse(BaseModel): + """RemoveLineResponse + + :param id_: Internal identifier of a source device + :type id_: str + :param type_: Device type + :type type_: RemoveLineResponseType + :param name: The display name of a source device + :type name: str + :param serial: Serial number of a device (HardPhone), defaults to None + :type serial: str, optional + """ + + def __init__( + self, id_: str, type_: RemoveLineResponseType, name: str, serial: str = None + ): + self.id_ = id_ + self.type_ = self._enum_matching(type_, RemoveLineResponseType.list(), "type_") + self.name = name + if serial is not None: + self.serial = serial diff --git a/src/ring_central/models/replace_phone_number_request.py b/src/ring_central/models/replace_phone_number_request.py new file mode 100644 index 00000000..710a5761 --- /dev/null +++ b/src/ring_central/models/replace_phone_number_request.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"target_phone_number_id": "targetPhoneNumberId"}) +class ReplacePhoneNumberRequest(BaseModel): + """ReplacePhoneNumberRequest + + :param target_phone_number_id: Internal unique identifier of a phone number, defaults to None + :type target_phone_number_id: str, optional + """ + + def __init__(self, target_phone_number_id: str = None): + if target_phone_number_id is not None: + self.target_phone_number_id = self._pattern_matching( + target_phone_number_id, "^[1-9]\d{1,14}$", "target_phone_number_id" + ) diff --git a/src/ring_central/models/reply_party.py b/src/ring_central/models/reply_party.py new file mode 100644 index 00000000..b0d2a9c3 --- /dev/null +++ b/src/ring_central/models/reply_party.py @@ -0,0 +1,89 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .call_status_info import CallStatusInfo +from .park_info import ParkInfo +from .party_info import PartyInfo +from .owner_info import OwnerInfo + + +class ReplyPartyDirection(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ReplyPartyDirection._member_map_.values())) + + +@JsonMap({"id_": "id", "stand_alone": "standAlone", "from_": "from"}) +class ReplyParty(BaseModel): + """ReplyParty + + :param id_: Internal identifier of a party, defaults to None + :type id_: str, optional + :param status: Status data of a call session, defaults to None + :type status: CallStatusInfo, optional + :param muted: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces, defaults to None + :type muted: bool, optional + :param stand_alone: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session, defaults to None + :type stand_alone: bool, optional + :param park: Call park information, defaults to None + :type park: ParkInfo, optional + :param from_: from_, defaults to None + :type from_: PartyInfo, optional + :param to: to, defaults to None + :type to: PartyInfo, optional + :param owner: Deprecated. Information on a call owner, defaults to None + :type owner: OwnerInfo, optional + :param direction: Direction of a call, defaults to None + :type direction: ReplyPartyDirection, optional + """ + + def __init__( + self, + id_: str = None, + status: CallStatusInfo = None, + muted: bool = None, + stand_alone: bool = None, + park: ParkInfo = None, + from_: PartyInfo = None, + to: PartyInfo = None, + owner: OwnerInfo = None, + direction: ReplyPartyDirection = None, + ): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._define_object(status, CallStatusInfo) + if muted is not None: + self.muted = muted + if stand_alone is not None: + self.stand_alone = stand_alone + if park is not None: + self.park = self._define_object(park, ParkInfo) + if from_ is not None: + self.from_ = self._define_object(from_, PartyInfo) + if to is not None: + self.to = self._define_object(to, PartyInfo) + if owner is not None: + self.owner = self._define_object(owner, OwnerInfo) + if direction is not None: + self.direction = self._enum_matching( + direction, ReplyPartyDirection.list(), "direction" + ) diff --git a/src/ring_central/models/reply_with_pattern.py b/src/ring_central/models/reply_with_pattern.py new file mode 100644 index 00000000..4535b771 --- /dev/null +++ b/src/ring_central/models/reply_with_pattern.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Pattern(Enum): + """An enumeration representing different categories. + + :cvar WILLCALLYOUBACK: "WillCallYouBack" + :vartype WILLCALLYOUBACK: str + :cvar CALLMEBACK: "CallMeBack" + :vartype CALLMEBACK: str + :cvar ONMYWAY: "OnMyWay" + :vartype ONMYWAY: str + :cvar ONTHEOTHERLINE: "OnTheOtherLine" + :vartype ONTHEOTHERLINE: str + :cvar WILLCALLYOUBACKLATER: "WillCallYouBackLater" + :vartype WILLCALLYOUBACKLATER: str + :cvar CALLMEBACKLATER: "CallMeBackLater" + :vartype CALLMEBACKLATER: str + :cvar INAMEETING: "InAMeeting" + :vartype INAMEETING: str + :cvar ONTHEOTHERLINENOCALL: "OnTheOtherLineNoCall" + :vartype ONTHEOTHERLINENOCALL: str + """ + + WILLCALLYOUBACK = "WillCallYouBack" + CALLMEBACK = "CallMeBack" + ONMYWAY = "OnMyWay" + ONTHEOTHERLINE = "OnTheOtherLine" + WILLCALLYOUBACKLATER = "WillCallYouBackLater" + CALLMEBACKLATER = "CallMeBackLater" + INAMEETING = "InAMeeting" + ONTHEOTHERLINENOCALL = "OnTheOtherLineNoCall" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Pattern._member_map_.values())) + + +class TimeUnit(Enum): + """An enumeration representing different categories. + + :cvar MINUTE: "Minute" + :vartype MINUTE: str + :cvar HOUR: "Hour" + :vartype HOUR: str + :cvar DAY: "Day" + :vartype DAY: str + """ + + MINUTE = "Minute" + HOUR = "Hour" + DAY = "Day" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TimeUnit._member_map_.values())) + + +@JsonMap({"time_unit": "timeUnit"}) +class ReplyWithPattern(BaseModel): + """ReplyWithPattern + + :param pattern: Predefined reply pattern name., defaults to None + :type pattern: Pattern, optional + :param time: Number of time units. Applicable only to WillCallYouBack, CallMeBack patterns., defaults to None + :type time: int, optional + :param time_unit: Time unit name., defaults to None + :type time_unit: TimeUnit, optional + """ + + def __init__( + self, pattern: Pattern = None, time: int = None, time_unit: TimeUnit = None + ): + if pattern is not None: + self.pattern = self._enum_matching(pattern, Pattern.list(), "pattern") + if time is not None: + self.time = time + if time_unit is not None: + self.time_unit = self._enum_matching( + time_unit, TimeUnit.list(), "time_unit" + ) diff --git a/src/ring_central/models/response_paging.py b/src/ring_central/models/response_paging.py new file mode 100644 index 00000000..b098cf4a --- /dev/null +++ b/src/ring_central/models/response_paging.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class ResponsePaging(BaseModel): + """Paging information + + :param page: The current page number + :type page: int + :param per_page: How many items are displayed on the page + :type per_page: int + :param total_pages: The total number of pages + :type total_pages: int + :param total_elements: The total number of items in the dataset + :type total_elements: int + """ + + def __init__(self, page: int, per_page: int, total_pages: int, total_elements: int): + self.page = page + self.per_page = per_page + self.total_pages = total_pages + self.total_elements = total_elements diff --git a/src/ring_central/models/revoke_token_request.py b/src/ring_central/models/revoke_token_request.py new file mode 100644 index 00000000..2511dee0 --- /dev/null +++ b/src/ring_central/models/revoke_token_request.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class RevokeTokenRequestClientAssertionType(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + :vartype URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER: str + """ + + URN_IETF_PARAMS_OAUTH_CLIENT_ASSERTION_TYPE_JWT_BEARER = ( + "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + RevokeTokenRequestClientAssertionType._member_map_.values(), + ) + ) + + +@JsonMap({}) +class RevokeTokenRequest(BaseModel): + """RevokeTokenRequest + + :param token: Access or refresh token to be revoked (along with the entire OAuth session) + :type token: str + :param client_assertion_type: Client assertion type for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion_type: RevokeTokenRequestClientAssertionType, optional + :param client_assertion: Client assertion (JWT) for the `client_secret_jwt` or `private_key_jwt` client authentication types, as defined by [RFC-7523](https://datatracker.ietf.org/doc/html/rfc7523#section-2.2). This parameter is mandatory if the client authentication is required and a client decided to use one of these authentication types , defaults to None + :type client_assertion: str, optional + """ + + def __init__( + self, + token: str, + client_assertion_type: RevokeTokenRequestClientAssertionType = None, + client_assertion: str = None, + ): + self.token = token + if client_assertion_type is not None: + self.client_assertion_type = self._enum_matching( + client_assertion_type, + RevokeTokenRequestClientAssertionType.list(), + "client_assertion_type", + ) + if client_assertion is not None: + self.client_assertion = client_assertion diff --git a/src/ring_central/models/ring_out_status_info.py b/src/ring_central/models/ring_out_status_info.py new file mode 100644 index 00000000..499d21d3 --- /dev/null +++ b/src/ring_central/models/ring_out_status_info.py @@ -0,0 +1,196 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class CallStatus(Enum): + """An enumeration representing different categories. + + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + :cvar REJECTED: "Rejected" + :vartype REJECTED: str + :cvar GENERICERROR: "GenericError" + :vartype GENERICERROR: str + :cvar FINISHED: "Finished" + :vartype FINISHED: str + :cvar INTERNATIONALDISABLED: "InternationalDisabled" + :vartype INTERNATIONALDISABLED: str + :cvar DESTINATIONBLOCKED: "DestinationBlocked" + :vartype DESTINATIONBLOCKED: str + :cvar NOTENOUGHFUNDS: "NotEnoughFunds" + :vartype NOTENOUGHFUNDS: str + :cvar NOSUCHUSER: "NoSuchUser" + :vartype NOSUCHUSER: str + """ + + INVALID = "Invalid" + SUCCESS = "Success" + INPROGRESS = "InProgress" + BUSY = "Busy" + NOANSWER = "NoAnswer" + REJECTED = "Rejected" + GENERICERROR = "GenericError" + FINISHED = "Finished" + INTERNATIONALDISABLED = "InternationalDisabled" + DESTINATIONBLOCKED = "DestinationBlocked" + NOTENOUGHFUNDS = "NotEnoughFunds" + NOSUCHUSER = "NoSuchUser" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallStatus._member_map_.values())) + + +class CallerStatus(Enum): + """An enumeration representing different categories. + + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + :cvar REJECTED: "Rejected" + :vartype REJECTED: str + :cvar GENERICERROR: "GenericError" + :vartype GENERICERROR: str + :cvar FINISHED: "Finished" + :vartype FINISHED: str + :cvar INTERNATIONALDISABLED: "InternationalDisabled" + :vartype INTERNATIONALDISABLED: str + :cvar DESTINATIONBLOCKED: "DestinationBlocked" + :vartype DESTINATIONBLOCKED: str + :cvar NOTENOUGHFUNDS: "NotEnoughFunds" + :vartype NOTENOUGHFUNDS: str + :cvar NOSUCHUSER: "NoSuchUser" + :vartype NOSUCHUSER: str + """ + + INVALID = "Invalid" + SUCCESS = "Success" + INPROGRESS = "InProgress" + BUSY = "Busy" + NOANSWER = "NoAnswer" + REJECTED = "Rejected" + GENERICERROR = "GenericError" + FINISHED = "Finished" + INTERNATIONALDISABLED = "InternationalDisabled" + DESTINATIONBLOCKED = "DestinationBlocked" + NOTENOUGHFUNDS = "NotEnoughFunds" + NOSUCHUSER = "NoSuchUser" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CallerStatus._member_map_.values())) + + +class CalleeStatus(Enum): + """An enumeration representing different categories. + + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar SUCCESS: "Success" + :vartype SUCCESS: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar BUSY: "Busy" + :vartype BUSY: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + :cvar REJECTED: "Rejected" + :vartype REJECTED: str + :cvar GENERICERROR: "GenericError" + :vartype GENERICERROR: str + :cvar FINISHED: "Finished" + :vartype FINISHED: str + :cvar INTERNATIONALDISABLED: "InternationalDisabled" + :vartype INTERNATIONALDISABLED: str + :cvar DESTINATIONBLOCKED: "DestinationBlocked" + :vartype DESTINATIONBLOCKED: str + :cvar NOTENOUGHFUNDS: "NotEnoughFunds" + :vartype NOTENOUGHFUNDS: str + :cvar NOSUCHUSER: "NoSuchUser" + :vartype NOSUCHUSER: str + """ + + INVALID = "Invalid" + SUCCESS = "Success" + INPROGRESS = "InProgress" + BUSY = "Busy" + NOANSWER = "NoAnswer" + REJECTED = "Rejected" + GENERICERROR = "GenericError" + FINISHED = "Finished" + INTERNATIONALDISABLED = "InternationalDisabled" + DESTINATIONBLOCKED = "DestinationBlocked" + NOTENOUGHFUNDS = "NotEnoughFunds" + NOSUCHUSER = "NoSuchUser" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, CalleeStatus._member_map_.values())) + + +@JsonMap( + { + "call_status": "callStatus", + "caller_status": "callerStatus", + "callee_status": "calleeStatus", + } +) +class RingOutStatusInfo(BaseModel): + """RingOut status information + + :param call_status: Status of a call, defaults to None + :type call_status: CallStatus, optional + :param caller_status: Status of a calling party, defaults to None + :type caller_status: CallerStatus, optional + :param callee_status: Status of a called party, defaults to None + :type callee_status: CalleeStatus, optional + """ + + def __init__( + self, + call_status: CallStatus = None, + caller_status: CallerStatus = None, + callee_status: CalleeStatus = None, + ): + if call_status is not None: + self.call_status = self._enum_matching( + call_status, CallStatus.list(), "call_status" + ) + if caller_status is not None: + self.caller_status = self._enum_matching( + caller_status, CallerStatus.list(), "caller_status" + ) + if callee_status is not None: + self.callee_status = self._enum_matching( + callee_status, CalleeStatus.list(), "callee_status" + ) diff --git a/src/ring_central/models/role_id_resource.py b/src/ring_central/models/role_id_resource.py new file mode 100644 index 00000000..9ddda8ec --- /dev/null +++ b/src/ring_central/models/role_id_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class RoleIdResource(BaseModel): + """RoleIdResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + """ + + def __init__(self, uri: str = None, id_: str = None): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/role_resource.py b/src/ring_central/models/role_resource.py new file mode 100644 index 00000000..52f7ba05 --- /dev/null +++ b/src/ring_central/models/role_resource.py @@ -0,0 +1,119 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .permission_id_resource import PermissionIdResource + + +class Scope(Enum): + """An enumeration representing different categories. + + :cvar ACCOUNT: "Account" + :vartype ACCOUNT: str + :cvar ALLEXTENSIONS: "AllExtensions" + :vartype ALLEXTENSIONS: str + :cvar FEDERATION: "Federation" + :vartype FEDERATION: str + :cvar GROUP: "Group" + :vartype GROUP: str + :cvar NONUSEREXTENSIONS: "NonUserExtensions" + :vartype NONUSEREXTENSIONS: str + :cvar ROLEBASED: "RoleBased" + :vartype ROLEBASED: str + :cvar SELF: "Self" + :vartype SELF: str + :cvar USEREXTENSIONS: "UserExtensions" + :vartype USEREXTENSIONS: str + """ + + ACCOUNT = "Account" + ALLEXTENSIONS = "AllExtensions" + FEDERATION = "Federation" + GROUP = "Group" + NONUSEREXTENSIONS = "NonUserExtensions" + ROLEBASED = "RoleBased" + SELF = "Self" + USEREXTENSIONS = "UserExtensions" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Scope._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "display_name": "displayName", + "site_compatible": "siteCompatible", + "last_updated": "lastUpdated", + } +) +class RoleResource(BaseModel): + """RoleResource + + :param uri: Link to a role resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a role, defaults to None + :type id_: str, optional + :param display_name: Dispayed name of a role, defaults to None + :type display_name: str, optional + :param description: Role description, defaults to None + :type description: str, optional + :param site_compatible: Site compatibility of a user role, defaults to None + :type site_compatible: bool, optional + :param custom: Specifies if a user role is custom, defaults to None + :type custom: bool, optional + :param scope: Specifies resource for permission, defaults to None + :type scope: Scope, optional + :param hidden: hidden, defaults to None + :type hidden: bool, optional + :param last_updated: last_updated, defaults to None + :type last_updated: str, optional + :param permissions: permissions, defaults to None + :type permissions: List[PermissionIdResource], optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + display_name: str = None, + description: str = None, + site_compatible: bool = None, + custom: bool = None, + scope: Scope = None, + hidden: bool = None, + last_updated: str = None, + permissions: List[PermissionIdResource] = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if display_name is not None: + self.display_name = self._pattern_matching( + display_name, '^((?!(<|>|\/|")).)*$', "display_name" + ) + if description is not None: + self.description = self._pattern_matching( + description, '^((?!(<|>|\/|")).)*$', "description" + ) + if site_compatible is not None: + self.site_compatible = site_compatible + if custom is not None: + self.custom = custom + if scope is not None: + self.scope = self._enum_matching(scope, Scope.list(), "scope") + if hidden is not None: + self.hidden = hidden + if last_updated is not None: + self.last_updated = last_updated + if permissions is not None: + self.permissions = self._define_list(permissions, PermissionIdResource) diff --git a/src/ring_central/models/roles.py b/src/ring_central/models/roles.py new file mode 100644 index 00000000..b4f22a63 --- /dev/null +++ b/src/ring_central/models/roles.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "auto_assigned": "autoAssigned", + "display_name": "displayName", + "site_compatible": "siteCompatible", + "site_restricted": "siteRestricted", + } +) +class Roles(BaseModel): + """Roles + + :param uri: Link to a role, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a role, defaults to None + :type id_: str, optional + :param auto_assigned: auto_assigned, defaults to None + :type auto_assigned: bool, optional + :param display_name: display_name, defaults to None + :type display_name: str, optional + :param site_compatible: site_compatible, defaults to None + :type site_compatible: bool, optional + :param site_restricted: site_restricted, defaults to None + :type site_restricted: bool, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + auto_assigned: bool = None, + display_name: str = None, + site_compatible: bool = None, + site_restricted: bool = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if auto_assigned is not None: + self.auto_assigned = auto_assigned + if display_name is not None: + self.display_name = display_name + if site_compatible is not None: + self.site_compatible = site_compatible + if site_restricted is not None: + self.site_restricted = site_restricted diff --git a/src/ring_central/models/roles_business_site_resource.py b/src/ring_central/models/roles_business_site_resource.py new file mode 100644 index 00000000..0d0a2cb9 --- /dev/null +++ b/src/ring_central/models/roles_business_site_resource.py @@ -0,0 +1,80 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .basic_extension_info_resource import BasicExtensionInfoResource +from .roles_regional_settings_resource import RolesRegionalSettingsResource +from .contact_address_info_resource import ContactAddressInfoResource + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "regional_settings": "regionalSettings", + "business_address": "businessAddress", + } +) +class RolesBusinessSiteResource(BaseModel): + """RolesBusinessSiteResource + + :param uri: Link to a business site resource, defaults to None + :type uri: str, optional + :param id_: id_ + :type id_: str + :param email: email, defaults to None + :type email: str, optional + :param code: code, defaults to None + :type code: str, optional + :param name: name, defaults to None + :type name: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + :param caller_id_name: caller_id_name, defaults to None + :type caller_id_name: str, optional + :param operator: operator, defaults to None + :type operator: BasicExtensionInfoResource, optional + :param regional_settings: regional_settings, defaults to None + :type regional_settings: RolesRegionalSettingsResource, optional + :param business_address: business_address, defaults to None + :type business_address: ContactAddressInfoResource, optional + """ + + def __init__( + self, + id_: str, + uri: str = None, + email: str = None, + code: str = None, + name: str = None, + extension_number: str = None, + caller_id_name: str = None, + operator: BasicExtensionInfoResource = None, + regional_settings: RolesRegionalSettingsResource = None, + business_address: ContactAddressInfoResource = None, + ): + if uri is not None: + self.uri = uri + self.id_ = id_ + if email is not None: + self.email = email + if code is not None: + self.code = code + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if caller_id_name is not None: + self.caller_id_name = caller_id_name + if operator is not None: + self.operator = self._define_object(operator, BasicExtensionInfoResource) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RolesRegionalSettingsResource + ) + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactAddressInfoResource + ) diff --git a/src/ring_central/models/roles_collection_resource.py b/src/ring_central/models/roles_collection_resource.py new file mode 100644 index 00000000..7b6da371 --- /dev/null +++ b/src/ring_central/models/roles_collection_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .role_resource import RoleResource +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class RolesCollectionResource(BaseModel): + """RolesCollectionResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[RoleResource], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[RoleResource] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, RoleResource) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/roles_country_resource.py b/src/ring_central/models/roles_country_resource.py new file mode 100644 index 00000000..0991790d --- /dev/null +++ b/src/ring_central/models/roles_country_resource.py @@ -0,0 +1,76 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "iso_code": "isoCode", + "calling_code": "callingCode", + "emergency_calling": "emergencyCalling", + "number_selling": "numberSelling", + "login_allowed": "loginAllowed", + "free_softphone_line": "freeSoftphoneLine", + "signup_allowed": "signupAllowed", + } +) +class RolesCountryResource(BaseModel): + """RolesCountryResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param iso_code: iso_code, defaults to None + :type iso_code: str, optional + :param calling_code: calling_code, defaults to None + :type calling_code: str, optional + :param emergency_calling: emergency_calling, defaults to None + :type emergency_calling: bool, optional + :param number_selling: number_selling, defaults to None + :type number_selling: bool, optional + :param login_allowed: login_allowed, defaults to None + :type login_allowed: bool, optional + :param free_softphone_line: free_softphone_line, defaults to None + :type free_softphone_line: bool, optional + :param signup_allowed: signup_allowed, defaults to None + :type signup_allowed: bool, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + iso_code: str = None, + calling_code: str = None, + emergency_calling: bool = None, + number_selling: bool = None, + login_allowed: bool = None, + free_softphone_line: bool = None, + signup_allowed: bool = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if iso_code is not None: + self.iso_code = iso_code + if calling_code is not None: + self.calling_code = calling_code + if emergency_calling is not None: + self.emergency_calling = emergency_calling + if number_selling is not None: + self.number_selling = number_selling + if login_allowed is not None: + self.login_allowed = login_allowed + if free_softphone_line is not None: + self.free_softphone_line = free_softphone_line + if signup_allowed is not None: + self.signup_allowed = signup_allowed diff --git a/src/ring_central/models/roles_language_resource.py b/src/ring_central/models/roles_language_resource.py new file mode 100644 index 00000000..cd31ec7c --- /dev/null +++ b/src/ring_central/models/roles_language_resource.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "locale_code": "localeCode"}) +class RolesLanguageResource(BaseModel): + """RolesLanguageResource + + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param locale_code: locale_code, defaults to None + :type locale_code: str, optional + """ + + def __init__(self, id_: str = None, name: str = None, locale_code: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/roles_regional_settings_resource.py b/src/ring_central/models/roles_regional_settings_resource.py new file mode 100644 index 00000000..a1c8aea7 --- /dev/null +++ b/src/ring_central/models/roles_regional_settings_resource.py @@ -0,0 +1,97 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .roles_timezone_resource import RolesTimezoneResource +from .roles_country_resource import RolesCountryResource +from .roles_language_resource import RolesLanguageResource +from .currency_resource import CurrencyResource + + +class RolesRegionalSettingsResourceTimeFormat(Enum): + """An enumeration representing different categories. + + :cvar _12H: "12h" + :vartype _12H: str + :cvar _24H: "24h" + :vartype _24H: str + """ + + _12H = "12h" + _24H = "24h" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + RolesRegionalSettingsResourceTimeFormat._member_map_.values(), + ) + ) + + +@JsonMap( + { + "home_country": "homeCountry", + "greeting_language": "greetingLanguage", + "formatting_locale": "formattingLocale", + "time_format": "timeFormat", + } +) +class RolesRegionalSettingsResource(BaseModel): + """RolesRegionalSettingsResource + + :param timezone: timezone, defaults to None + :type timezone: RolesTimezoneResource, optional + :param home_country: home_country, defaults to None + :type home_country: RolesCountryResource, optional + :param language: language, defaults to None + :type language: RolesLanguageResource, optional + :param greeting_language: greeting_language, defaults to None + :type greeting_language: RolesLanguageResource, optional + :param formatting_locale: formatting_locale, defaults to None + :type formatting_locale: RolesLanguageResource, optional + :param time_format: time_format, defaults to None + :type time_format: RolesRegionalSettingsResourceTimeFormat, optional + :param currency: currency, defaults to None + :type currency: CurrencyResource, optional + """ + + def __init__( + self, + timezone: RolesTimezoneResource = None, + home_country: RolesCountryResource = None, + language: RolesLanguageResource = None, + greeting_language: RolesLanguageResource = None, + formatting_locale: RolesLanguageResource = None, + time_format: RolesRegionalSettingsResourceTimeFormat = None, + currency: CurrencyResource = None, + ): + if timezone is not None: + self.timezone = self._define_object(timezone, RolesTimezoneResource) + if home_country is not None: + self.home_country = self._define_object(home_country, RolesCountryResource) + if language is not None: + self.language = self._define_object(language, RolesLanguageResource) + if greeting_language is not None: + self.greeting_language = self._define_object( + greeting_language, RolesLanguageResource + ) + if formatting_locale is not None: + self.formatting_locale = self._define_object( + formatting_locale, RolesLanguageResource + ) + if time_format is not None: + self.time_format = self._enum_matching( + time_format, + RolesRegionalSettingsResourceTimeFormat.list(), + "time_format", + ) + if currency is not None: + self.currency = self._define_object(currency, CurrencyResource) diff --git a/src/ring_central/models/roles_timezone_resource.py b/src/ring_central/models/roles_timezone_resource.py new file mode 100644 index 00000000..bce4dc8b --- /dev/null +++ b/src/ring_central/models/roles_timezone_resource.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class RolesTimezoneResource(BaseModel): + """RolesTimezoneResource + + :param uri: uri, defaults to None + :type uri: str, optional + :param id_: id_, defaults to None + :type id_: str, optional + :param name: name, defaults to None + :type name: str, optional + :param description: description, defaults to None + :type description: str, optional + :param bias: bias, defaults to None + :type bias: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + name: str = None, + description: str = None, + bias: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if description is not None: + self.description = description + if bias is not None: + self.bias = bias diff --git a/src/ring_central/models/scale_size.py b/src/ring_central/models/scale_size.py new file mode 100644 index 00000000..6cbf2d42 --- /dev/null +++ b/src/ring_central/models/scale_size.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ScaleSize(Enum): + """An enumeration representing different categories. + + :cvar ORIGINAL: "original" + :vartype ORIGINAL: str + :cvar _90X90: "90x90" + :vartype _90X90: str + :cvar _195X195: "195x195" + :vartype _195X195: str + :cvar _584X584: "584x584" + :vartype _584X584: str + """ + + ORIGINAL = "original" + _90X90 = "90x90" + _195X195 = "195x195" + _584X584 = "584x584" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScaleSize._member_map_.values())) diff --git a/src/ring_central/models/schedule_info.py b/src/ring_central/models/schedule_info.py new file mode 100644 index 00000000..0b01204c --- /dev/null +++ b/src/ring_central/models/schedule_info.py @@ -0,0 +1,56 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .weekly_schedule_info import WeeklyScheduleInfo +from .ranges_info import RangesInfo + + +class ScheduleInfoRef(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScheduleInfoRef._member_map_.values())) + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class ScheduleInfo(BaseModel): + """Schedule when an answering rule should be applied + + :param weekly_ranges: Weekly schedule, defaults to None + :type weekly_ranges: WeeklyScheduleInfo, optional + :param ranges: Specific data ranges, defaults to None + :type ranges: List[RangesInfo], optional + :param ref: The user's schedule specified for business hours or after hours; it can also be set/retrieved calling the corresponding method, defaults to None + :type ref: ScheduleInfoRef, optional + """ + + def __init__( + self, + weekly_ranges: WeeklyScheduleInfo = None, + ranges: List[RangesInfo] = None, + ref: ScheduleInfoRef = None, + ): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object(weekly_ranges, WeeklyScheduleInfo) + if ranges is not None: + self.ranges = self._define_list(ranges, RangesInfo) + if ref is not None: + self.ref = self._enum_matching(ref, ScheduleInfoRef.list(), "ref") diff --git a/src/ring_central/models/schedule_info_user_business_hours.py b/src/ring_central/models/schedule_info_user_business_hours.py new file mode 100644 index 00000000..44a5a665 --- /dev/null +++ b/src/ring_central/models/schedule_info_user_business_hours.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .weekly_schedule_info import WeeklyScheduleInfo + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class ScheduleInfoUserBusinessHours(BaseModel): + """Schedule when an answering rule is applied + + :param weekly_ranges: Weekly schedule, defaults to None + :type weekly_ranges: WeeklyScheduleInfo, optional + """ + + def __init__(self, weekly_ranges: WeeklyScheduleInfo = None): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object(weekly_ranges, WeeklyScheduleInfo) diff --git a/src/ring_central/models/schedule_meeting_response.py b/src/ring_central/models/schedule_meeting_response.py new file mode 100644 index 00000000..80196e63 --- /dev/null +++ b/src/ring_central/models/schedule_meeting_response.py @@ -0,0 +1,70 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "start_host_video": "startHostVideo", + "start_participant_video": "startParticipantVideo", + "audio_options": "audioOptions", + "allow_join_before_host": "allowJoinBeforeHost", + "require_password_for_scheduling_new_meetings": "requirePasswordForSchedulingNewMeetings", + "require_password_for_instant_meetings": "requirePasswordForInstantMeetings", + "require_password_for_pmi_meetings": "requirePasswordForPmiMeetings", + "enforce_login": "enforceLogin", + } +) +class ScheduleMeetingResponse(BaseModel): + """ScheduleMeetingResponse + + :param start_host_video: start_host_video, defaults to None + :type start_host_video: bool, optional + :param start_participant_video: start_participant_video, defaults to None + :type start_participant_video: bool, optional + :param audio_options: audio_options, defaults to None + :type audio_options: bool, optional + :param allow_join_before_host: allow_join_before_host, defaults to None + :type allow_join_before_host: bool, optional + :param require_password_for_scheduling_new_meetings: require_password_for_scheduling_new_meetings, defaults to None + :type require_password_for_scheduling_new_meetings: bool, optional + :param require_password_for_instant_meetings: require_password_for_instant_meetings, defaults to None + :type require_password_for_instant_meetings: bool, optional + :param require_password_for_pmi_meetings: require_password_for_pmi_meetings, defaults to None + :type require_password_for_pmi_meetings: bool, optional + :param enforce_login: enforce_login, defaults to None + :type enforce_login: bool, optional + """ + + def __init__( + self, + start_host_video: bool = None, + start_participant_video: bool = None, + audio_options: bool = None, + allow_join_before_host: bool = None, + require_password_for_scheduling_new_meetings: bool = None, + require_password_for_instant_meetings: bool = None, + require_password_for_pmi_meetings: bool = None, + enforce_login: bool = None, + ): + if start_host_video is not None: + self.start_host_video = start_host_video + if start_participant_video is not None: + self.start_participant_video = start_participant_video + if audio_options is not None: + self.audio_options = audio_options + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host + if require_password_for_scheduling_new_meetings is not None: + self.require_password_for_scheduling_new_meetings = ( + require_password_for_scheduling_new_meetings + ) + if require_password_for_instant_meetings is not None: + self.require_password_for_instant_meetings = ( + require_password_for_instant_meetings + ) + if require_password_for_pmi_meetings is not None: + self.require_password_for_pmi_meetings = require_password_for_pmi_meetings + if enforce_login is not None: + self.enforce_login = enforce_login diff --git a/src/ring_central/models/schedule_user_meeting_info.py b/src/ring_central/models/schedule_user_meeting_info.py new file mode 100644 index 00000000..083247a2 --- /dev/null +++ b/src/ring_central/models/schedule_user_meeting_info.py @@ -0,0 +1,179 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScheduleUserMeetingInfoAudioOptions(Enum): + """An enumeration representing different categories. + + :cvar PHONE: "Phone" + :vartype PHONE: str + :cvar COMPUTERAUDIO: "ComputerAudio" + :vartype COMPUTERAUDIO: str + :cvar THIRDPARTY: "ThirdParty" + :vartype THIRDPARTY: str + """ + + PHONE = "Phone" + COMPUTERAUDIO = "ComputerAudio" + THIRDPARTY = "ThirdParty" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ScheduleUserMeetingInfoAudioOptions._member_map_.values(), + ) + ) + + +class RequirePasswordForPmiMeetings(Enum): + """An enumeration representing different categories. + + :cvar ALL: "all" + :vartype ALL: str + :cvar NONE: "none" + :vartype NONE: str + :cvar JBHONLY: "jbhOnly" + :vartype JBHONLY: str + """ + + ALL = "all" + NONE = "none" + JBHONLY = "jbhOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, RequirePasswordForPmiMeetings._member_map_.values()) + ) + + +@JsonMap( + { + "enforce_login": "enforceLogin", + "start_host_video": "startHostVideo", + "start_participants_video": "startParticipantsVideo", + "audio_options": "audioOptions", + "allow_join_before_host": "allowJoinBeforeHost", + "use_pmi_for_scheduled_meetings": "usePmiForScheduledMeetings", + "use_pmi_for_instant_meetings": "usePmiForInstantMeetings", + "require_password_for_scheduling_new_meetings": "requirePasswordForSchedulingNewMeetings", + "require_password_for_scheduled_meetings": "requirePasswordForScheduledMeetings", + "default_password_for_scheduled_meetings": "defaultPasswordForScheduledMeetings", + "require_password_for_instant_meetings": "requirePasswordForInstantMeetings", + "require_password_for_pmi_meetings": "requirePasswordForPmiMeetings", + "pmi_password": "pmiPassword", + "pstn_password_protected": "pstnPasswordProtected", + "mute_participants_on_entry": "muteParticipantsOnEntry", + } +) +class ScheduleUserMeetingInfo(BaseModel): + """Scheduling meeting settings locked on account level || Settings defining how to schedule user meetings + + :param enforce_login: If true, then only signed-in users can join this meeting, defaults to None + :type enforce_login: bool, optional + :param start_host_video: Starting meetings with host video on/off (true/false), defaults to None + :type start_host_video: bool, optional + :param start_participants_video: Starting meetings with participant video on/off (true/false), defaults to None + :type start_participants_video: bool, optional + :param audio_options: Determines how participants can join the audio channel of a meeting, defaults to None + :type audio_options: List[ScheduleUserMeetingInfoAudioOptions], optional + :param allow_join_before_host: Allows participants to join the meeting before the host arrives, defaults to None + :type allow_join_before_host: bool, optional + :param use_pmi_for_scheduled_meetings: Determines whether to use Personal Meeting ID (PMI) when scheduling a meeting, defaults to None + :type use_pmi_for_scheduled_meetings: bool, optional + :param use_pmi_for_instant_meetings: Determines whether to use Personal Meeting ID (PMI) when starting an instant meeting, defaults to None + :type use_pmi_for_instant_meetings: bool, optional + :param require_password_for_scheduling_new_meetings: A password will be generated when scheduling a meeting and participants will require password to join a meeting. The Personal Meeting ID (PMI) meetings are not included, defaults to None + :type require_password_for_scheduling_new_meetings: bool, optional + :param require_password_for_scheduled_meetings: Specifies whether to require a password for meetings which have already been scheduled, defaults to None + :type require_password_for_scheduled_meetings: bool, optional + :param default_password_for_scheduled_meetings: Password for already scheduled meetings. Users can set it individually, defaults to None + :type default_password_for_scheduled_meetings: str, optional + :param require_password_for_instant_meetings: A random password will be generated for an instant meeting, if set to `true`. If you use PMI for your instant meetings, this option will be disabled, defaults to None + :type require_password_for_instant_meetings: bool, optional + :param require_password_for_pmi_meetings: Specifies whether to require a password for meetings using Personal Meeting ID (PMI). The supported values are: 'none', 'all' and 'jbhOnly' (joined before host only), defaults to None + :type require_password_for_pmi_meetings: RequirePasswordForPmiMeetings, optional + :param pmi_password: The default password for Personal Meeting ID (PMI) meetings, defaults to None + :type pmi_password: str, optional + :param pstn_password_protected: Specifies whether to generate and require a password for participants joining by phone, defaults to None + :type pstn_password_protected: bool, optional + :param mute_participants_on_entry: mute_participants_on_entry, defaults to None + :type mute_participants_on_entry: bool, optional + """ + + def __init__( + self, + enforce_login: bool = None, + start_host_video: bool = None, + start_participants_video: bool = None, + audio_options: List[ScheduleUserMeetingInfoAudioOptions] = None, + allow_join_before_host: bool = None, + use_pmi_for_scheduled_meetings: bool = None, + use_pmi_for_instant_meetings: bool = None, + require_password_for_scheduling_new_meetings: bool = None, + require_password_for_scheduled_meetings: bool = None, + default_password_for_scheduled_meetings: str = None, + require_password_for_instant_meetings: bool = None, + require_password_for_pmi_meetings: RequirePasswordForPmiMeetings = None, + pmi_password: str = None, + pstn_password_protected: bool = None, + mute_participants_on_entry: bool = None, + ): + if enforce_login is not None: + self.enforce_login = enforce_login + if start_host_video is not None: + self.start_host_video = start_host_video + if start_participants_video is not None: + self.start_participants_video = start_participants_video + if audio_options is not None: + self.audio_options = self._define_list( + audio_options, ScheduleUserMeetingInfoAudioOptions + ) + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host + if use_pmi_for_scheduled_meetings is not None: + self.use_pmi_for_scheduled_meetings = use_pmi_for_scheduled_meetings + if use_pmi_for_instant_meetings is not None: + self.use_pmi_for_instant_meetings = use_pmi_for_instant_meetings + if require_password_for_scheduling_new_meetings is not None: + self.require_password_for_scheduling_new_meetings = ( + require_password_for_scheduling_new_meetings + ) + if require_password_for_scheduled_meetings is not None: + self.require_password_for_scheduled_meetings = ( + require_password_for_scheduled_meetings + ) + if default_password_for_scheduled_meetings is not None: + self.default_password_for_scheduled_meetings = ( + default_password_for_scheduled_meetings + ) + if require_password_for_instant_meetings is not None: + self.require_password_for_instant_meetings = ( + require_password_for_instant_meetings + ) + if require_password_for_pmi_meetings is not None: + self.require_password_for_pmi_meetings = self._enum_matching( + require_password_for_pmi_meetings, + RequirePasswordForPmiMeetings.list(), + "require_password_for_pmi_meetings", + ) + if pmi_password is not None: + self.pmi_password = pmi_password + if pstn_password_protected is not None: + self.pstn_password_protected = pstn_password_protected + if mute_participants_on_entry is not None: + self.mute_participants_on_entry = mute_participants_on_entry diff --git a/src/ring_central/models/scim_authentication_scheme.py b/src/ring_central/models/scim_authentication_scheme.py new file mode 100644 index 00000000..097a8dd4 --- /dev/null +++ b/src/ring_central/models/scim_authentication_scheme.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"documentation_uri": "documentationUri", "spec_uri": "specUri"}) +class ScimAuthenticationScheme(BaseModel): + """ScimAuthenticationScheme + + :param description: description, defaults to None + :type description: str, optional + :param documentation_uri: documentation_uri, defaults to None + :type documentation_uri: str, optional + :param name: name, defaults to None + :type name: str, optional + :param spec_uri: spec_uri, defaults to None + :type spec_uri: str, optional + :param primary: primary, defaults to None + :type primary: bool, optional + """ + + def __init__( + self, + description: str = None, + documentation_uri: str = None, + name: str = None, + spec_uri: str = None, + primary: bool = None, + ): + if description is not None: + self.description = description + if documentation_uri is not None: + self.documentation_uri = documentation_uri + if name is not None: + self.name = name + if spec_uri is not None: + self.spec_uri = spec_uri + if primary is not None: + self.primary = primary diff --git a/src/ring_central/models/scim_bulk_supported.py b/src/ring_central/models/scim_bulk_supported.py new file mode 100644 index 00000000..4e2c31c0 --- /dev/null +++ b/src/ring_central/models/scim_bulk_supported.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"max_operations": "maxOperations", "max_payload_size": "maxPayloadSize"}) +class ScimBulkSupported(BaseModel): + """ScimBulkSupported + + :param max_operations: max_operations, defaults to None + :type max_operations: int, optional + :param max_payload_size: max_payload_size, defaults to None + :type max_payload_size: int, optional + :param supported: supported, defaults to None + :type supported: bool, optional + """ + + def __init__( + self, + max_operations: int = None, + max_payload_size: int = None, + supported: bool = None, + ): + if max_operations is not None: + self.max_operations = max_operations + if max_payload_size is not None: + self.max_payload_size = max_payload_size + if supported is not None: + self.supported = supported diff --git a/src/ring_central/models/scim_email.py b/src/ring_central/models/scim_email.py new file mode 100644 index 00000000..7e23325c --- /dev/null +++ b/src/ring_central/models/scim_email.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimEmailType(Enum): + """An enumeration representing different categories. + + :cvar WORK: "work" + :vartype WORK: str + """ + + WORK = "work" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimEmailType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class ScimEmail(BaseModel): + """ScimEmail + + :param type_: type_ + :type type_: ScimEmailType + :param value: value + :type value: str + """ + + def __init__(self, type_: ScimEmailType, value: str): + self.type_ = self._enum_matching(type_, ScimEmailType.list(), "type_") + self.value = value diff --git a/src/ring_central/models/scim_enterprise_user.py b/src/ring_central/models/scim_enterprise_user.py new file mode 100644 index 00000000..e45a6891 --- /dev/null +++ b/src/ring_central/models/scim_enterprise_user.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ScimEnterpriseUser(BaseModel): + """ScimEnterpriseUser + + :param department: department, defaults to None + :type department: str, optional + """ + + def __init__(self, department: str = None): + if department is not None: + self.department = department diff --git a/src/ring_central/models/scim_filter_supported.py b/src/ring_central/models/scim_filter_supported.py new file mode 100644 index 00000000..870480f1 --- /dev/null +++ b/src/ring_central/models/scim_filter_supported.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"max_results": "maxResults"}) +class ScimFilterSupported(BaseModel): + """ScimFilterSupported + + :param max_results: max_results, defaults to None + :type max_results: int, optional + :param supported: supported, defaults to None + :type supported: bool, optional + """ + + def __init__(self, max_results: int = None, supported: bool = None): + if max_results is not None: + self.max_results = max_results + if supported is not None: + self.supported = supported diff --git a/src/ring_central/models/scim_meta.py b/src/ring_central/models/scim_meta.py new file mode 100644 index 00000000..a3d3ebd3 --- /dev/null +++ b/src/ring_central/models/scim_meta.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ResourceType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar GROUP: "Group" + :vartype GROUP: str + :cvar RESOURCETYPE: "ResourceType" + :vartype RESOURCETYPE: str + :cvar SCHEMA: "Schema" + :vartype SCHEMA: str + """ + + USER = "User" + GROUP = "Group" + RESOURCETYPE = "ResourceType" + SCHEMA = "Schema" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ResourceType._member_map_.values())) + + +@JsonMap({"last_modified": "lastModified", "resource_type": "resourceType"}) +class ScimMeta(BaseModel): + """Resource metadata + + :param created: created, defaults to None + :type created: str, optional + :param last_modified: last_modified, defaults to None + :type last_modified: str, optional + :param location: Resource location URI, defaults to None + :type location: str, optional + :param resource_type: resource_type, defaults to None + :type resource_type: ResourceType, optional + """ + + def __init__( + self, + created: str = None, + last_modified: str = None, + location: str = None, + resource_type: ResourceType = None, + ): + if created is not None: + self.created = created + if last_modified is not None: + self.last_modified = last_modified + if location is not None: + self.location = location + if resource_type is not None: + self.resource_type = self._enum_matching( + resource_type, ResourceType.list(), "resource_type" + ) diff --git a/src/ring_central/models/scim_name.py b/src/ring_central/models/scim_name.py new file mode 100644 index 00000000..4c63d729 --- /dev/null +++ b/src/ring_central/models/scim_name.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"family_name": "familyName", "given_name": "givenName"}) +class ScimName(BaseModel): + """ScimName + + :param family_name: family_name + :type family_name: str + :param given_name: given_name + :type given_name: str + """ + + def __init__(self, family_name: str, given_name: str): + self.family_name = family_name + self.given_name = given_name diff --git a/src/ring_central/models/scim_patch_operation.py b/src/ring_central/models/scim_patch_operation.py new file mode 100644 index 00000000..ebd588af --- /dev/null +++ b/src/ring_central/models/scim_patch_operation.py @@ -0,0 +1,49 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Op(Enum): + """An enumeration representing different categories. + + :cvar ADD: "add" + :vartype ADD: str + :cvar REPLACE: "replace" + :vartype REPLACE: str + :cvar REMOVE: "remove" + :vartype REMOVE: str + """ + + ADD = "add" + REPLACE = "replace" + REMOVE = "remove" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Op._member_map_.values())) + + +@JsonMap({}) +class ScimPatchOperation(BaseModel): + """ScimPatchOperation + + :param op: op + :type op: Op + :param path: path, defaults to None + :type path: str, optional + :param value: Corresponding 'value' of that field specified by 'path', defaults to None + :type value: str, optional + """ + + def __init__(self, op: Op, path: str = None, value: str = None): + self.op = self._enum_matching(op, Op.list(), "op") + if path is not None: + self.path = path + if value is not None: + self.value = value diff --git a/src/ring_central/models/scim_phone_number.py b/src/ring_central/models/scim_phone_number.py new file mode 100644 index 00000000..bf52ea78 --- /dev/null +++ b/src/ring_central/models/scim_phone_number.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimPhoneNumberType(Enum): + """An enumeration representing different categories. + + :cvar WORK: "work" + :vartype WORK: str + :cvar MOBILE: "mobile" + :vartype MOBILE: str + :cvar OTHER: "other" + :vartype OTHER: str + """ + + WORK = "work" + MOBILE = "mobile" + OTHER = "other" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimPhoneNumberType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class ScimPhoneNumber(BaseModel): + """ScimPhoneNumber + + :param type_: type_ + :type type_: ScimPhoneNumberType + :param value: value + :type value: str + """ + + def __init__(self, type_: ScimPhoneNumberType, value: str): + self.type_ = self._enum_matching(type_, ScimPhoneNumberType.list(), "type_") + self.value = value diff --git a/src/ring_central/models/scim_photo.py b/src/ring_central/models/scim_photo.py new file mode 100644 index 00000000..5ab92dcd --- /dev/null +++ b/src/ring_central/models/scim_photo.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimPhotoType(Enum): + """An enumeration representing different categories. + + :cvar PHOTO: "photo" + :vartype PHOTO: str + """ + + PHOTO = "photo" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimPhotoType._member_map_.values())) + + +@JsonMap({"type_": "type"}) +class ScimPhoto(BaseModel): + """ScimPhoto + + :param type_: type_ + :type type_: ScimPhotoType + :param value: value + :type value: str + """ + + def __init__(self, type_: ScimPhotoType, value: str): + self.type_ = self._enum_matching(type_, ScimPhotoType.list(), "type_") + self.value = value diff --git a/src/ring_central/models/scim_provider_config.py b/src/ring_central/models/scim_provider_config.py new file mode 100644 index 00000000..ae84cc00 --- /dev/null +++ b/src/ring_central/models/scim_provider_config.py @@ -0,0 +1,97 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_authentication_scheme import ScimAuthenticationScheme +from .scim_bulk_supported import ScimBulkSupported +from .scim_supported import ScimSupported +from .scim_filter_supported import ScimFilterSupported + + +class ScimProviderConfigSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_SERVICEPROVIDERCONFIG: "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" + :vartype URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_SERVICEPROVIDERCONFIG: str + """ + + URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_SERVICEPROVIDERCONFIG = ( + "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimProviderConfigSchemas._member_map_.values()) + ) + + +@JsonMap( + { + "authentication_schemes": "authenticationSchemes", + "change_password": "changePassword", + "xml_data_format": "xmlDataFormat", + } +) +class ScimProviderConfig(BaseModel): + """ScimProviderConfig + + :param authentication_schemes: authentication_schemes, defaults to None + :type authentication_schemes: List[ScimAuthenticationScheme], optional + :param bulk: bulk, defaults to None + :type bulk: ScimBulkSupported, optional + :param change_password: change_password, defaults to None + :type change_password: ScimSupported, optional + :param etag: etag, defaults to None + :type etag: ScimSupported, optional + :param filter: filter, defaults to None + :type filter: ScimFilterSupported, optional + :param patch: patch, defaults to None + :type patch: ScimSupported, optional + :param schemas: schemas, defaults to None + :type schemas: List[ScimProviderConfigSchemas], optional + :param sort: sort, defaults to None + :type sort: ScimSupported, optional + :param xml_data_format: xml_data_format, defaults to None + :type xml_data_format: ScimSupported, optional + """ + + def __init__( + self, + authentication_schemes: List[ScimAuthenticationScheme] = None, + bulk: ScimBulkSupported = None, + change_password: ScimSupported = None, + etag: ScimSupported = None, + filter: ScimFilterSupported = None, + patch: ScimSupported = None, + schemas: List[ScimProviderConfigSchemas] = None, + sort: ScimSupported = None, + xml_data_format: ScimSupported = None, + ): + if authentication_schemes is not None: + self.authentication_schemes = self._define_list( + authentication_schemes, ScimAuthenticationScheme + ) + if bulk is not None: + self.bulk = self._define_object(bulk, ScimBulkSupported) + if change_password is not None: + self.change_password = self._define_object(change_password, ScimSupported) + if etag is not None: + self.etag = self._define_object(etag, ScimSupported) + if filter is not None: + self.filter = self._define_object(filter, ScimFilterSupported) + if patch is not None: + self.patch = self._define_object(patch, ScimSupported) + if schemas is not None: + self.schemas = self._define_list(schemas, ScimProviderConfigSchemas) + if sort is not None: + self.sort = self._define_object(sort, ScimSupported) + if xml_data_format is not None: + self.xml_data_format = self._define_object(xml_data_format, ScimSupported) diff --git a/src/ring_central/models/scim_resource_type_response.py b/src/ring_central/models/scim_resource_type_response.py new file mode 100644 index 00000000..6351b92b --- /dev/null +++ b/src/ring_central/models/scim_resource_type_response.py @@ -0,0 +1,78 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_schema_extension import ScimSchemaExtension +from .scim_meta import ScimMeta + + +class ScimResourceTypeResponseSchema(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: "urn:ietf:params:scim:schemas:core:2.0:User" + :vartype URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: str + """ + + URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER = ( + "urn:ietf:params:scim:schemas:core:2.0:User" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimResourceTypeResponseSchema._member_map_.values()) + ) + + +@JsonMap({"id_": "id", "schema_extensions": "schemaExtensions"}) +class ScimResourceTypeResponse(BaseModel): + """ScimResourceTypeResponse + + :param id_: Unique resource type ID, same value as the "name" attribute, defaults to None + :type id_: str, optional + :param name: Resource type name + :type name: str + :param endpoint: The resource type's HTTP-addressable endpoint + :type endpoint: str + :param description: Description of the resource type, defaults to None + :type description: str, optional + :param schema: schema + :type schema: ScimResourceTypeResponseSchema + :param schema_extensions: schema_extensions, defaults to None + :type schema_extensions: List[ScimSchemaExtension], optional + :param meta: Resource metadata, defaults to None + :type meta: ScimMeta, optional + """ + + def __init__( + self, + name: str, + endpoint: str, + schema: ScimResourceTypeResponseSchema, + id_: str = None, + description: str = None, + schema_extensions: List[ScimSchemaExtension] = None, + meta: ScimMeta = None, + ): + if id_ is not None: + self.id_ = id_ + self.name = name + self.endpoint = endpoint + if description is not None: + self.description = description + self.schema = self._enum_matching( + schema, ScimResourceTypeResponseSchema.list(), "schema" + ) + if schema_extensions is not None: + self.schema_extensions = self._define_list( + schema_extensions, ScimSchemaExtension + ) + if meta is not None: + self.meta = self._define_object(meta, ScimMeta) diff --git a/src/ring_central/models/scim_resource_type_search_response.py b/src/ring_central/models/scim_resource_type_search_response.py new file mode 100644 index 00000000..04c3b845 --- /dev/null +++ b/src/ring_central/models/scim_resource_type_search_response.py @@ -0,0 +1,78 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_resource_type_response import ScimResourceTypeResponse + + +class ScimResourceTypeSearchResponseSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: "urn:ietf:params:scim:api:messages:2.0:ListResponse" + :vartype URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: str + """ + + URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE = ( + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ScimResourceTypeSearchResponseSchemas._member_map_.values(), + ) + ) + + +@JsonMap( + { + "resources": "Resources", + "items_per_page": "itemsPerPage", + "start_index": "startIndex", + "total_results": "totalResults", + } +) +class ScimResourceTypeSearchResponse(BaseModel): + """ScimResourceTypeSearchResponse + + :param resources: Resource type list, defaults to None + :type resources: List[ScimResourceTypeResponse], optional + :param items_per_page: items_per_page, defaults to None + :type items_per_page: int, optional + :param schemas: schemas, defaults to None + :type schemas: List[ScimResourceTypeSearchResponseSchemas], optional + :param start_index: start_index, defaults to None + :type start_index: int, optional + :param total_results: total_results, defaults to None + :type total_results: int, optional + """ + + def __init__( + self, + resources: List[ScimResourceTypeResponse] = None, + items_per_page: int = None, + schemas: List[ScimResourceTypeSearchResponseSchemas] = None, + start_index: int = None, + total_results: int = None, + ): + if resources is not None: + self.resources = self._define_list(resources, ScimResourceTypeResponse) + if items_per_page is not None: + self.items_per_page = items_per_page + if schemas is not None: + self.schemas = self._define_list( + schemas, ScimResourceTypeSearchResponseSchemas + ) + if start_index is not None: + self.start_index = start_index + if total_results is not None: + self.total_results = total_results diff --git a/src/ring_central/models/scim_schema_attribute.py b/src/ring_central/models/scim_schema_attribute.py new file mode 100644 index 00000000..75025e98 --- /dev/null +++ b/src/ring_central/models/scim_schema_attribute.py @@ -0,0 +1,200 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimSchemaAttributeType(Enum): + """An enumeration representing different categories. + + :cvar STRING: "string" + :vartype STRING: str + :cvar BOOLEAN: "boolean" + :vartype BOOLEAN: str + :cvar DECIMAL: "decimal" + :vartype DECIMAL: str + :cvar INTEGER: "integer" + :vartype INTEGER: str + :cvar DATETIME: "dateTime" + :vartype DATETIME: str + :cvar REFERENCE: "reference" + :vartype REFERENCE: str + :cvar COMPLEX: "complex" + :vartype COMPLEX: str + """ + + STRING = "string" + BOOLEAN = "boolean" + DECIMAL = "decimal" + INTEGER = "integer" + DATETIME = "dateTime" + REFERENCE = "reference" + COMPLEX = "complex" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimSchemaAttributeType._member_map_.values()) + ) + + +class Mutability(Enum): + """An enumeration representing different categories. + + :cvar READONLY: "readOnly" + :vartype READONLY: str + :cvar READWRITE: "readWrite" + :vartype READWRITE: str + :cvar IMMUTABLE: "immutable" + :vartype IMMUTABLE: str + :cvar WRITEONLY: "writeOnly" + :vartype WRITEONLY: str + """ + + READONLY = "readOnly" + READWRITE = "readWrite" + IMMUTABLE = "immutable" + WRITEONLY = "writeOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Mutability._member_map_.values())) + + +class Returned(Enum): + """An enumeration representing different categories. + + :cvar ALWAYS: "always" + :vartype ALWAYS: str + :cvar NEVER: "never" + :vartype NEVER: str + :cvar DEFAULT: "default" + :vartype DEFAULT: str + :cvar REQUEST: "request" + :vartype REQUEST: str + """ + + ALWAYS = "always" + NEVER = "never" + DEFAULT = "default" + REQUEST = "request" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Returned._member_map_.values())) + + +class Uniqueness(Enum): + """An enumeration representing different categories. + + :cvar NONE: "none" + :vartype NONE: str + :cvar SERVER: "server" + :vartype SERVER: str + :cvar GLOBAL: "global" + :vartype GLOBAL: str + """ + + NONE = "none" + SERVER = "server" + GLOBAL = "global" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Uniqueness._member_map_.values())) + + +@JsonMap( + { + "type_": "type", + "sub_attributes": "subAttributes", + "multi_valued": "multiValued", + "canonical_values": "canonicalValues", + "case_exact": "caseExact", + "reference_types": "referenceTypes", + } +) +class ScimSchemaAttribute(BaseModel): + """ScimSchemaAttribute + + :param name: The name of the attribute + :type name: str + :param type_: type_ + :type type_: ScimSchemaAttributeType + :param sub_attributes: sub_attributes, defaults to None + :type sub_attributes: List[ScimSchemaAttribute], optional + :param multi_valued: A Boolean value indicating the attribute's plurality + :type multi_valued: bool + :param description: The description of the attribute, defaults to None + :type description: str, optional + :param required: required + :type required: bool + :param canonical_values: A collection of suggested canonical values, defaults to None + :type canonical_values: List[str], optional + :param case_exact: case_exact, defaults to None + :type case_exact: bool, optional + :param mutability: Indicates the circumstances under which the value of the attribute can be (re)defined + :type mutability: Mutability + :param returned: Indicates when an attribute and associated values are returned + :type returned: Returned + :param uniqueness: Specifies how the service provider enforces uniqueness of attribute values + :type uniqueness: Uniqueness + :param reference_types: Indicates the SCIM resource types that be referenced, defaults to None + :type reference_types: List[str], optional + """ + + def __init__( + self, + name: str, + type_: ScimSchemaAttributeType, + multi_valued: bool, + required: bool, + mutability: Mutability, + returned: Returned, + uniqueness: Uniqueness, + sub_attributes: List[ScimSchemaAttribute] = None, + description: str = None, + canonical_values: List[str] = None, + case_exact: bool = None, + reference_types: List[str] = None, + ): + self.name = name + self.type_ = self._enum_matching(type_, ScimSchemaAttributeType.list(), "type_") + if sub_attributes is not None: + self.sub_attributes = self._define_list(sub_attributes, ScimSchemaAttribute) + self.multi_valued = multi_valued + if description is not None: + self.description = description + self.required = required + if canonical_values is not None: + self.canonical_values = canonical_values + if case_exact is not None: + self.case_exact = case_exact + self.mutability = self._enum_matching( + mutability, Mutability.list(), "mutability" + ) + self.returned = self._enum_matching(returned, Returned.list(), "returned") + self.uniqueness = self._enum_matching( + uniqueness, Uniqueness.list(), "uniqueness" + ) + if reference_types is not None: + self.reference_types = reference_types diff --git a/src/ring_central/models/scim_schema_extension.py b/src/ring_central/models/scim_schema_extension.py new file mode 100644 index 00000000..7276728a --- /dev/null +++ b/src/ring_central/models/scim_schema_extension.py @@ -0,0 +1,44 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimSchemaExtensionSchema(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_ENTERPRISE_2_0_USER: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + :vartype URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_ENTERPRISE_2_0_USER: str + """ + + URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_ENTERPRISE_2_0_USER = ( + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimSchemaExtensionSchema._member_map_.values()) + ) + + +@JsonMap({}) +class ScimSchemaExtension(BaseModel): + """ScimSchemaExtension + + :param schema: schema + :type schema: ScimSchemaExtensionSchema + :param required: required + :type required: bool + """ + + def __init__(self, schema: ScimSchemaExtensionSchema, required: bool): + self.schema = self._enum_matching( + schema, ScimSchemaExtensionSchema.list(), "schema" + ) + self.required = required diff --git a/src/ring_central/models/scim_schema_response.py b/src/ring_central/models/scim_schema_response.py new file mode 100644 index 00000000..d3ce9183 --- /dev/null +++ b/src/ring_central/models/scim_schema_response.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_schema_attribute import ScimSchemaAttribute +from .scim_meta import ScimMeta + + +@JsonMap({"id_": "id"}) +class ScimSchemaResponse(BaseModel): + """ScimSchemaResponse + + :param id_: The unique URI of the schema + :type id_: str + :param name: The name of the schema, defaults to None + :type name: str, optional + :param description: The description of the schema, defaults to None + :type description: str, optional + :param attributes: attributes, defaults to None + :type attributes: List[ScimSchemaAttribute], optional + :param meta: Resource metadata, defaults to None + :type meta: ScimMeta, optional + """ + + def __init__( + self, + id_: str, + name: str = None, + description: str = None, + attributes: List[ScimSchemaAttribute] = None, + meta: ScimMeta = None, + ): + self.id_ = id_ + if name is not None: + self.name = name + if description is not None: + self.description = description + if attributes is not None: + self.attributes = self._define_list(attributes, ScimSchemaAttribute) + if meta is not None: + self.meta = self._define_object(meta, ScimMeta) diff --git a/src/ring_central/models/scim_schema_search_response.py b/src/ring_central/models/scim_schema_search_response.py new file mode 100644 index 00000000..06d70a4d --- /dev/null +++ b/src/ring_central/models/scim_schema_search_response.py @@ -0,0 +1,75 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_schema_response import ScimSchemaResponse + + +class ScimSchemaSearchResponseSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: "urn:ietf:params:scim:api:messages:2.0:ListResponse" + :vartype URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: str + """ + + URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE = ( + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, ScimSchemaSearchResponseSchemas._member_map_.values() + ) + ) + + +@JsonMap( + { + "resources": "Resources", + "items_per_page": "itemsPerPage", + "start_index": "startIndex", + "total_results": "totalResults", + } +) +class ScimSchemaSearchResponse(BaseModel): + """ScimSchemaSearchResponse + + :param resources: Resource type list, defaults to None + :type resources: List[ScimSchemaResponse], optional + :param items_per_page: items_per_page, defaults to None + :type items_per_page: int, optional + :param schemas: schemas, defaults to None + :type schemas: List[ScimSchemaSearchResponseSchemas], optional + :param start_index: start_index, defaults to None + :type start_index: int, optional + :param total_results: total_results, defaults to None + :type total_results: int, optional + """ + + def __init__( + self, + resources: List[ScimSchemaResponse] = None, + items_per_page: int = None, + schemas: List[ScimSchemaSearchResponseSchemas] = None, + start_index: int = None, + total_results: int = None, + ): + if resources is not None: + self.resources = self._define_list(resources, ScimSchemaResponse) + if items_per_page is not None: + self.items_per_page = items_per_page + if schemas is not None: + self.schemas = self._define_list(schemas, ScimSchemaSearchResponseSchemas) + if start_index is not None: + self.start_index = start_index + if total_results is not None: + self.total_results = total_results diff --git a/src/ring_central/models/scim_search_request.py b/src/ring_central/models/scim_search_request.py new file mode 100644 index 00000000..00ce6d8f --- /dev/null +++ b/src/ring_central/models/scim_search_request.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimSearchRequestSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_SEARCHREQUEST: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" + :vartype URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_SEARCHREQUEST: str + """ + + URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_SEARCHREQUEST = ( + "urn:ietf:params:scim:api:messages:2.0:SearchRequest" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimSearchRequestSchemas._member_map_.values()) + ) + + +@JsonMap({"start_index": "startIndex"}) +class ScimSearchRequest(BaseModel): + """ScimSearchRequest + + :param count: Page size, defaults to None + :type count: int, optional + :param filter: Only support 'userName' or 'email' filter expressions for now, defaults to None + :type filter: str, optional + :param schemas: schemas, defaults to None + :type schemas: List[ScimSearchRequestSchemas], optional + :param start_index: Start index (1-based), defaults to None + :type start_index: int, optional + """ + + def __init__( + self, + count: int = None, + filter: str = None, + schemas: List[ScimSearchRequestSchemas] = None, + start_index: int = None, + ): + if count is not None: + self.count = count + if filter is not None: + self.filter = filter + if schemas is not None: + self.schemas = self._define_list(schemas, ScimSearchRequestSchemas) + if start_index is not None: + self.start_index = start_index diff --git a/src/ring_central/models/scim_supported.py b/src/ring_central/models/scim_supported.py new file mode 100644 index 00000000..9eb3ba21 --- /dev/null +++ b/src/ring_central/models/scim_supported.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class ScimSupported(BaseModel): + """ScimSupported + + :param supported: supported, defaults to None + :type supported: bool, optional + """ + + def __init__(self, supported: bool = None): + if supported is not None: + self.supported = supported diff --git a/src/ring_central/models/scim_user.py b/src/ring_central/models/scim_user.py new file mode 100644 index 00000000..3f22fa6d --- /dev/null +++ b/src/ring_central/models/scim_user.py @@ -0,0 +1,113 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_user_address import ScimUserAddress +from .scim_email import ScimEmail +from .scim_name import ScimName +from .scim_phone_number import ScimPhoneNumber +from .scim_photo import ScimPhoto +from .scim_enterprise_user import ScimEnterpriseUser + + +class ScimUserSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: "urn:ietf:params:scim:schemas:core:2.0:User" + :vartype URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: str + """ + + URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER = ( + "urn:ietf:params:scim:schemas:core:2.0:User" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimUserSchemas._member_map_.values())) + + +@JsonMap( + { + "external_id": "externalId", + "id_": "id", + "phone_numbers": "phoneNumbers", + "urn_ietf_params_scim_schemas_extension_enterprise_2_0_user": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "user_name": "userName", + } +) +class ScimUser(BaseModel): + """ScimUser + + :param active: User status, defaults to None + :type active: bool, optional + :param addresses: addresses, defaults to None + :type addresses: List[ScimUserAddress], optional + :param emails: emails + :type emails: List[ScimEmail] + :param external_id: External unique resource ID defined by provisioning client, defaults to None + :type external_id: str, optional + :param id_: Unique resource ID defined by RingCentral, defaults to None + :type id_: str, optional + :param name: name + :type name: ScimName + :param phone_numbers: phone_numbers, defaults to None + :type phone_numbers: List[ScimPhoneNumber], optional + :param photos: photos, defaults to None + :type photos: List[ScimPhoto], optional + :param schemas: schemas + :type schemas: List[ScimUserSchemas] + :param title: User title, defaults to None + :type title: str, optional + :param urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: urn_ietf_params_scim_schemas_extension_enterprise_2_0_user, defaults to None + :type urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: ScimEnterpriseUser, optional + :param user_name: MUST be same as work type email address + :type user_name: str + """ + + def __init__( + self, + emails: List[ScimEmail], + name: ScimName, + schemas: List[ScimUserSchemas], + user_name: str, + active: bool = None, + addresses: List[ScimUserAddress] = None, + external_id: str = None, + id_: str = None, + phone_numbers: List[ScimPhoneNumber] = None, + photos: List[ScimPhoto] = None, + title: str = None, + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: ScimEnterpriseUser = None, + ): + if active is not None: + self.active = active + if addresses is not None: + self.addresses = self._define_list(addresses, ScimUserAddress) + self.emails = self._define_list(emails, ScimEmail) + if external_id is not None: + self.external_id = external_id + if id_ is not None: + self.id_ = id_ + self.name = self._define_object(name, ScimName) + if phone_numbers is not None: + self.phone_numbers = self._define_list(phone_numbers, ScimPhoneNumber) + if photos is not None: + self.photos = self._define_list(photos, ScimPhoto) + self.schemas = self._define_list(schemas, ScimUserSchemas) + if title is not None: + self.title = title + if urn_ietf_params_scim_schemas_extension_enterprise_2_0_user is not None: + self.urn_ietf_params_scim_schemas_extension_enterprise_2_0_user = ( + self._define_object( + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user, + ScimEnterpriseUser, + ) + ) + self.user_name = user_name diff --git a/src/ring_central/models/scim_user_address.py b/src/ring_central/models/scim_user_address.py new file mode 100644 index 00000000..e4b8c75b --- /dev/null +++ b/src/ring_central/models/scim_user_address.py @@ -0,0 +1,65 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ScimUserAddressType(Enum): + """An enumeration representing different categories. + + :cvar WORK: "work" + :vartype WORK: str + """ + + WORK = "work" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimUserAddressType._member_map_.values())) + + +@JsonMap( + {"postal_code": "postalCode", "street_address": "streetAddress", "type_": "type"} +) +class ScimUserAddress(BaseModel): + """ScimUserAddress + + :param country: country, defaults to None + :type country: str, optional + :param locality: locality, defaults to None + :type locality: str, optional + :param postal_code: postal_code, defaults to None + :type postal_code: str, optional + :param region: region, defaults to None + :type region: str, optional + :param street_address: street_address, defaults to None + :type street_address: str, optional + :param type_: type_ + :type type_: ScimUserAddressType + """ + + def __init__( + self, + type_: ScimUserAddressType, + country: str = None, + locality: str = None, + postal_code: str = None, + region: str = None, + street_address: str = None, + ): + if country is not None: + self.country = country + if locality is not None: + self.locality = locality + if postal_code is not None: + self.postal_code = postal_code + if region is not None: + self.region = region + if street_address is not None: + self.street_address = street_address + self.type_ = self._enum_matching(type_, ScimUserAddressType.list(), "type_") diff --git a/src/ring_central/models/scim_user_patch.py b/src/ring_central/models/scim_user_patch.py new file mode 100644 index 00000000..3c8c5596 --- /dev/null +++ b/src/ring_central/models/scim_user_patch.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_patch_operation import ScimPatchOperation + + +class ScimUserPatchSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_PATCHOP: "urn:ietf:params:scim:api:messages:2.0:PatchOp" + :vartype URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_PATCHOP: str + """ + + URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_PATCHOP = ( + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ScimUserPatchSchemas._member_map_.values())) + + +@JsonMap({"operations": "Operations"}) +class ScimUserPatch(BaseModel): + """ScimUserPatch + + :param operations: Patch operations list + :type operations: List[ScimPatchOperation] + :param schemas: schemas + :type schemas: List[ScimUserPatchSchemas] + """ + + def __init__( + self, operations: List[ScimPatchOperation], schemas: List[ScimUserPatchSchemas] + ): + self.operations = self._define_list(operations, ScimPatchOperation) + self.schemas = self._define_list(schemas, ScimUserPatchSchemas) diff --git a/src/ring_central/models/scim_user_response.py b/src/ring_central/models/scim_user_response.py new file mode 100644 index 00000000..9e5e531d --- /dev/null +++ b/src/ring_central/models/scim_user_response.py @@ -0,0 +1,121 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_user_address import ScimUserAddress +from .scim_email import ScimEmail +from .scim_name import ScimName +from .scim_phone_number import ScimPhoneNumber +from .scim_photo import ScimPhoto +from .scim_enterprise_user import ScimEnterpriseUser +from .scim_meta import ScimMeta + + +class ScimUserResponseSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: "urn:ietf:params:scim:schemas:core:2.0:User" + :vartype URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: str + """ + + URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER = ( + "urn:ietf:params:scim:schemas:core:2.0:User" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimUserResponseSchemas._member_map_.values()) + ) + + +@JsonMap( + { + "external_id": "externalId", + "id_": "id", + "phone_numbers": "phoneNumbers", + "urn_ietf_params_scim_schemas_extension_enterprise_2_0_user": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "user_name": "userName", + } +) +class ScimUserResponse(BaseModel): + """ScimUserResponse + + :param active: User status, defaults to None + :type active: bool, optional + :param addresses: addresses, defaults to None + :type addresses: List[ScimUserAddress], optional + :param emails: emails + :type emails: List[ScimEmail] + :param external_id: External unique resource ID defined by provisioning client, defaults to None + :type external_id: str, optional + :param id_: Unique resource ID defined by RingCentral, defaults to None + :type id_: str, optional + :param name: name + :type name: ScimName + :param phone_numbers: phone_numbers, defaults to None + :type phone_numbers: List[ScimPhoneNumber], optional + :param photos: photos, defaults to None + :type photos: List[ScimPhoto], optional + :param schemas: schemas + :type schemas: List[ScimUserResponseSchemas] + :param title: User title, defaults to None + :type title: str, optional + :param urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: urn_ietf_params_scim_schemas_extension_enterprise_2_0_user, defaults to None + :type urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: ScimEnterpriseUser, optional + :param user_name: MUST be same as work type email address + :type user_name: str + :param meta: Resource metadata, defaults to None + :type meta: ScimMeta, optional + """ + + def __init__( + self, + emails: List[ScimEmail], + name: ScimName, + schemas: List[ScimUserResponseSchemas], + user_name: str, + active: bool = None, + addresses: List[ScimUserAddress] = None, + external_id: str = None, + id_: str = None, + phone_numbers: List[ScimPhoneNumber] = None, + photos: List[ScimPhoto] = None, + title: str = None, + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: ScimEnterpriseUser = None, + meta: ScimMeta = None, + ): + if active is not None: + self.active = active + if addresses is not None: + self.addresses = self._define_list(addresses, ScimUserAddress) + self.emails = self._define_list(emails, ScimEmail) + if external_id is not None: + self.external_id = external_id + if id_ is not None: + self.id_ = id_ + self.name = self._define_object(name, ScimName) + if phone_numbers is not None: + self.phone_numbers = self._define_list(phone_numbers, ScimPhoneNumber) + if photos is not None: + self.photos = self._define_list(photos, ScimPhoto) + self.schemas = self._define_list(schemas, ScimUserResponseSchemas) + if title is not None: + self.title = title + if urn_ietf_params_scim_schemas_extension_enterprise_2_0_user is not None: + self.urn_ietf_params_scim_schemas_extension_enterprise_2_0_user = ( + self._define_object( + urn_ietf_params_scim_schemas_extension_enterprise_2_0_user, + ScimEnterpriseUser, + ) + ) + self.user_name = user_name + if meta is not None: + self.meta = self._define_object(meta, ScimMeta) diff --git a/src/ring_central/models/scim_user_search_response.py b/src/ring_central/models/scim_user_search_response.py new file mode 100644 index 00000000..b48f4897 --- /dev/null +++ b/src/ring_central/models/scim_user_search_response.py @@ -0,0 +1,73 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .scim_user_response import ScimUserResponse + + +class ScimUserSearchResponseSchemas(Enum): + """An enumeration representing different categories. + + :cvar URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: "urn:ietf:params:scim:api:messages:2.0:ListResponse" + :vartype URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE: str + """ + + URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LISTRESPONSE = ( + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ) + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ScimUserSearchResponseSchemas._member_map_.values()) + ) + + +@JsonMap( + { + "resources": "Resources", + "items_per_page": "itemsPerPage", + "start_index": "startIndex", + "total_results": "totalResults", + } +) +class ScimUserSearchResponse(BaseModel): + """ScimUserSearchResponse + + :param resources: User list, defaults to None + :type resources: List[ScimUserResponse], optional + :param items_per_page: items_per_page, defaults to None + :type items_per_page: int, optional + :param schemas: schemas, defaults to None + :type schemas: List[ScimUserSearchResponseSchemas], optional + :param start_index: start_index, defaults to None + :type start_index: int, optional + :param total_results: total_results, defaults to None + :type total_results: int, optional + """ + + def __init__( + self, + resources: List[ScimUserResponse] = None, + items_per_page: int = None, + schemas: List[ScimUserSearchResponseSchemas] = None, + start_index: int = None, + total_results: int = None, + ): + if resources is not None: + self.resources = self._define_list(resources, ScimUserResponse) + if items_per_page is not None: + self.items_per_page = items_per_page + if schemas is not None: + self.schemas = self._define_list(schemas, ScimUserSearchResponseSchemas) + if start_index is not None: + self.start_index = start_index + if total_results is not None: + self.total_results = total_results diff --git a/src/ring_central/models/search_directory_contact_type.py b/src/ring_central/models/search_directory_contact_type.py new file mode 100644 index 00000000..fb77026e --- /dev/null +++ b/src/ring_central/models/search_directory_contact_type.py @@ -0,0 +1,68 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SearchDirectoryContactType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar SITE: "Site" + :vartype SITE: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + :cvar EXTERNAL: "External" + :vartype EXTERNAL: str + """ + + USER = "User" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + PARKLOCATION = "ParkLocation" + IVRMENU = "IvrMenu" + LIMITED = "Limited" + APPLICATIONEXTENSION = "ApplicationExtension" + SITE = "Site" + BOT = "Bot" + ROOM = "Room" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + GROUPCALLPICKUP = "GroupCallPickup" + EXTERNAL = "External" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SearchDirectoryContactType._member_map_.values()) + ) diff --git a/src/ring_central/models/search_directory_entries_request.py b/src/ring_central/models/search_directory_entries_request.py new file mode 100644 index 00000000..0781df3e --- /dev/null +++ b/src/ring_central/models/search_directory_entries_request.py @@ -0,0 +1,181 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .search_directory_contact_type import SearchDirectoryContactType +from .search_directory_extension_type import SearchDirectoryExtensionType +from .order_by import OrderBy + + +class SearchFields(Enum): + """An enumeration representing different categories. + + :cvar FIRSTNAME: "firstName" + :vartype FIRSTNAME: str + :cvar LASTNAME: "lastName" + :vartype LASTNAME: str + :cvar EXTENSIONNUMBER: "extensionNumber" + :vartype EXTENSIONNUMBER: str + :cvar PHONENUMBER: "phoneNumber" + :vartype PHONENUMBER: str + :cvar EMAIL: "email" + :vartype EMAIL: str + :cvar JOBTITLE: "jobTitle" + :vartype JOBTITLE: str + :cvar DEPARTMENT: "department" + :vartype DEPARTMENT: str + :cvar CUSTOMFIELDVALUE: "customFieldValue" + :vartype CUSTOMFIELDVALUE: str + """ + + FIRSTNAME = "firstName" + LASTNAME = "lastName" + EXTENSIONNUMBER = "extensionNumber" + PHONENUMBER = "phoneNumber" + EMAIL = "email" + JOBTITLE = "jobTitle" + DEPARTMENT = "department" + CUSTOMFIELDVALUE = "customFieldValue" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SearchFields._member_map_.values())) + + +class ExtensionStatuses(Enum): + """An enumeration representing different categories. + + :cvar ENABLED: "Enabled" + :vartype ENABLED: str + :cvar DISABLED: "Disabled" + :vartype DISABLED: str + :cvar NOTACTIVATED: "NotActivated" + :vartype NOTACTIVATED: str + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + NOTACTIVATED = "NotActivated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ExtensionStatuses._member_map_.values())) + + +@JsonMap( + { + "search_string": "searchString", + "search_fields": "searchFields", + "show_federated": "showFederated", + "show_admin_only_contacts": "showAdminOnlyContacts", + "extension_type": "extensionType", + "site_id": "siteId", + "show_external_contacts": "showExternalContacts", + "account_ids": "accountIds", + "site_ids": "siteIds", + "extension_statuses": "extensionStatuses", + "extension_types": "extensionTypes", + "order_by": "orderBy", + "per_page": "perPage", + } +) +class SearchDirectoryEntriesRequest(BaseModel): + """SearchDirectoryEntriesRequest + + :param search_string: String value to filter the contacts. The value specified is searched through the following fields: `firstName`, `lastName`, `extensionNumber`, `phoneNumber`, `email`, `jobTitle`, `department`, `customFieldValue` , defaults to None + :type search_string: str, optional + :param search_fields: The list of field to be searched for, defaults to None + :type search_fields: List[SearchFields], optional + :param show_federated: If `true` then contacts of all accounts in federation are returned, if it is in federation, account section will be returned. If `false` then only contacts of the current account are returned, and account section is eliminated in this case, defaults to None + :type show_federated: bool, optional + :param show_admin_only_contacts: Should show AdminOnly Contacts, defaults to None + :type show_admin_only_contacts: bool, optional + :param extension_type: Type of directory contact to filter, defaults to None + :type extension_type: SearchDirectoryContactType, optional + :param site_id: Internal identifier of the business site to which extensions belong, defaults to None + :type site_id: str, optional + :param show_external_contacts: Allows to control whether External (Hybrid) contacts should be returned in the response or not, defaults to None + :type show_external_contacts: bool, optional + :param account_ids: The list of Internal identifiers of an accounts, defaults to None + :type account_ids: List[str], optional + :param department: Department, defaults to None + :type department: str, optional + :param site_ids: The list of Internal identifiers of the business sites to which extensions belong, defaults to None + :type site_ids: List[str], optional + :param extension_statuses: Extension current state., defaults to None + :type extension_statuses: List[ExtensionStatuses], optional + :param extension_types: Types of extension to filter the contacts, defaults to None + :type extension_types: List[SearchDirectoryExtensionType], optional + :param order_by: Sorting settings, defaults to None + :type order_by: List[OrderBy], optional + :param page: page, defaults to None + :type page: int, optional + :param per_page: per_page, defaults to None + :type per_page: int, optional + """ + + def __init__( + self, + search_string: str = None, + search_fields: List[SearchFields] = None, + show_federated: bool = None, + show_admin_only_contacts: bool = None, + extension_type: SearchDirectoryContactType = None, + site_id: str = None, + show_external_contacts: bool = None, + account_ids: List[str] = None, + department: str = None, + site_ids: List[str] = None, + extension_statuses: List[ExtensionStatuses] = None, + extension_types: List[SearchDirectoryExtensionType] = None, + order_by: List[OrderBy] = None, + page: int = None, + per_page: int = None, + ): + if search_string is not None: + self.search_string = search_string + if search_fields is not None: + self.search_fields = self._define_list(search_fields, SearchFields) + if show_federated is not None: + self.show_federated = show_federated + if show_admin_only_contacts is not None: + self.show_admin_only_contacts = show_admin_only_contacts + if extension_type is not None: + self.extension_type = self._enum_matching( + extension_type, SearchDirectoryContactType.list(), "extension_type" + ) + if site_id is not None: + self.site_id = site_id + if show_external_contacts is not None: + self.show_external_contacts = show_external_contacts + if account_ids is not None: + self.account_ids = account_ids + if department is not None: + self.department = department + if site_ids is not None: + self.site_ids = site_ids + if extension_statuses is not None: + self.extension_statuses = self._define_list( + extension_statuses, ExtensionStatuses + ) + if extension_types is not None: + self.extension_types = self._define_list( + extension_types, SearchDirectoryExtensionType + ) + if order_by is not None: + self.order_by = self._define_list(order_by, OrderBy) + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page diff --git a/src/ring_central/models/search_directory_extension_type.py b/src/ring_central/models/search_directory_extension_type.py new file mode 100644 index 00000000..800e825f --- /dev/null +++ b/src/ring_central/models/search_directory_extension_type.py @@ -0,0 +1,83 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SearchDirectoryExtensionType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar LIMITED: "Limited" + :vartype LIMITED: str + :cvar BOT: "Bot" + :vartype BOT: str + :cvar SITE: "Site" + :vartype SITE: str + :cvar ROOM: "Room" + :vartype ROOM: str + :cvar PROXYADMIN: "ProxyAdmin" + :vartype PROXYADMIN: str + :cvar DELEGATEDLINESGROUP: "DelegatedLinesGroup" + :vartype DELEGATEDLINESGROUP: str + :cvar FLEXIBLEUSER: "FlexibleUser" + :vartype FLEXIBLEUSER: str + :cvar GROUPCALLPICKUP: "GroupCallPickup" + :vartype GROUPCALLPICKUP: str + :cvar ROOMCONNECTOR: "RoomConnector" + :vartype ROOMCONNECTOR: str + """ + + USER = "User" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + DIGITALUSER = "DigitalUser" + VIRTUALUSER = "VirtualUser" + FAXUSER = "FaxUser" + PAGINGONLY = "PagingOnly" + SHAREDLINESGROUP = "SharedLinesGroup" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + LIMITED = "Limited" + BOT = "Bot" + SITE = "Site" + ROOM = "Room" + PROXYADMIN = "ProxyAdmin" + DELEGATEDLINESGROUP = "DelegatedLinesGroup" + FLEXIBLEUSER = "FlexibleUser" + GROUPCALLPICKUP = "GroupCallPickup" + ROOMCONNECTOR = "RoomConnector" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SearchDirectoryExtensionType._member_map_.values()) + ) diff --git a/src/ring_central/models/send_welcome_email_v2_request.py b/src/ring_central/models/send_welcome_email_v2_request.py new file mode 100644 index 00000000..6e870f52 --- /dev/null +++ b/src/ring_central/models/send_welcome_email_v2_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class SendWelcomeEmailV2Request(BaseModel): + """SendWelcomeEmailV2Request + + :param email: email, defaults to None + :type email: str, optional + """ + + def __init__(self, email: str = None): + if email is not None: + self.email = email diff --git a/src/ring_central/models/service_feature_info.py b/src/ring_central/models/service_feature_info.py new file mode 100644 index 00000000..2b4c07b4 --- /dev/null +++ b/src/ring_central/models/service_feature_info.py @@ -0,0 +1,223 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ServiceFeatureInfoFeatureName(Enum): + """An enumeration representing different categories. + + :cvar ACCOUNTFEDERATION: "AccountFederation" + :vartype ACCOUNTFEDERATION: str + :cvar ARCHIVER: "Archiver" + :vartype ARCHIVER: str + :cvar AUTOMATICCALLRECORDINGMUTE: "AutomaticCallRecordingMute" + :vartype AUTOMATICCALLRECORDINGMUTE: str + :cvar AUTOMATICINBOUNDCALLRECORDING: "AutomaticInboundCallRecording" + :vartype AUTOMATICINBOUNDCALLRECORDING: str + :cvar AUTOMATICOUTBOUNDCALLRECORDING: "AutomaticOutboundCallRecording" + :vartype AUTOMATICOUTBOUNDCALLRECORDING: str + :cvar BLOCKEDMESSAGEFORWARDING: "BlockedMessageForwarding" + :vartype BLOCKEDMESSAGEFORWARDING: str + :cvar CALENDAR: "Calendar" + :vartype CALENDAR: str + :cvar CALLERIDCONTROL: "CallerIdControl" + :vartype CALLERIDCONTROL: str + :cvar CALLFORWARDING: "CallForwarding" + :vartype CALLFORWARDING: str + :cvar CALLPARK: "CallPark" + :vartype CALLPARK: str + :cvar CALLPARKLOCATIONS: "CallParkLocations" + :vartype CALLPARKLOCATIONS: str + :cvar CALLSUPERVISION: "CallSupervision" + :vartype CALLSUPERVISION: str + :cvar CALLSWITCH: "CallSwitch" + :vartype CALLSWITCH: str + :cvar CALLQUALITYSURVEY: "CallQualitySurvey" + :vartype CALLQUALITYSURVEY: str + :cvar CONFERENCING: "Conferencing" + :vartype CONFERENCING: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar CONFIGUREDELEGATES: "ConfigureDelegates" + :vartype CONFIGUREDELEGATES: str + :cvar DEVELOPERPORTAL: "DeveloperPortal" + :vartype DEVELOPERPORTAL: str + :cvar DND: "DND" + :vartype DND: str + :cvar DYNAMICCONFERENCE: "DynamicConference" + :vartype DYNAMICCONFERENCE: str + :cvar EMERGENCYADDRESSAUTOUPDATE: "EmergencyAddressAutoUpdate" + :vartype EMERGENCYADDRESSAUTOUPDATE: str + :cvar EMERGENCYCALLING: "EmergencyCalling" + :vartype EMERGENCYCALLING: str + :cvar ENCRYPTIONATREST: "EncryptionAtRest" + :vartype ENCRYPTIONATREST: str + :cvar EXTERNALDIRECTORYINTEGRATION: "ExternalDirectoryIntegration" + :vartype EXTERNALDIRECTORYINTEGRATION: str + :cvar FAX: "Fax" + :vartype FAX: str + :cvar FAXRECEIVING: "FaxReceiving" + :vartype FAXRECEIVING: str + :cvar FREESOFTPHONELINES: "FreeSoftPhoneLines" + :vartype FREESOFTPHONELINES: str + :cvar HDVOICE: "HDVoice" + :vartype HDVOICE: str + :cvar HIPAACOMPLIANCE: "HipaaCompliance" + :vartype HIPAACOMPLIANCE: str + :cvar INTERCOM: "Intercom" + :vartype INTERCOM: str + :cvar INTERNATIONALCALLING: "InternationalCalling" + :vartype INTERNATIONALCALLING: str + :cvar INTERNATIONALSMS: "InternationalSMS" + :vartype INTERNATIONALSMS: str + :cvar LINKEDSOFTPHONELINES: "LinkedSoftphoneLines" + :vartype LINKEDSOFTPHONELINES: str + :cvar MMS: "MMS" + :vartype MMS: str + :cvar MOBILEVOIPEMERGENCYCALLING: "MobileVoipEmergencyCalling" + :vartype MOBILEVOIPEMERGENCYCALLING: str + :cvar ONDEMANDCALLRECORDING: "OnDemandCallRecording" + :vartype ONDEMANDCALLRECORDING: str + :cvar PAGER: "Pager" + :vartype PAGER: str + :cvar PAGERRECEIVING: "PagerReceiving" + :vartype PAGERRECEIVING: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar PASSWORDAUTH: "PasswordAuth" + :vartype PASSWORDAUTH: str + :cvar PROMOMESSAGE: "PromoMessage" + :vartype PROMOMESSAGE: str + :cvar REPORTS: "Reports" + :vartype REPORTS: str + :cvar PRESENCE: "Presence" + :vartype PRESENCE: str + :cvar RCTEAMS: "RCTeams" + :vartype RCTEAMS: str + :cvar RINGOUT: "RingOut" + :vartype RINGOUT: str + :cvar SALESFORCE: "SalesForce" + :vartype SALESFORCE: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + :cvar SINGLEEXTENSIONUI: "SingleExtensionUI" + :vartype SINGLEEXTENSIONUI: str + :cvar SITECODES: "SiteCodes" + :vartype SITECODES: str + :cvar SMS: "SMS" + :vartype SMS: str + :cvar SMSRECEIVING: "SMSReceiving" + :vartype SMSRECEIVING: str + :cvar SOFTPHONEUPDATE: "SoftPhoneUpdate" + :vartype SOFTPHONEUPDATE: str + :cvar TELEPHONYSESSIONS: "TelephonySessions" + :vartype TELEPHONYSESSIONS: str + :cvar USERMANAGEMENT: "UserManagement" + :vartype USERMANAGEMENT: str + :cvar VIDEOCONFERENCING: "VideoConferencing" + :vartype VIDEOCONFERENCING: str + :cvar VOIPCALLING: "VoipCalling" + :vartype VOIPCALLING: str + :cvar VOIPCALLINGONMOBILE: "VoipCallingOnMobile" + :vartype VOIPCALLINGONMOBILE: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar VOICEMAILTOTEXT: "VoicemailToText" + :vartype VOICEMAILTOTEXT: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + """ + + ACCOUNTFEDERATION = "AccountFederation" + ARCHIVER = "Archiver" + AUTOMATICCALLRECORDINGMUTE = "AutomaticCallRecordingMute" + AUTOMATICINBOUNDCALLRECORDING = "AutomaticInboundCallRecording" + AUTOMATICOUTBOUNDCALLRECORDING = "AutomaticOutboundCallRecording" + BLOCKEDMESSAGEFORWARDING = "BlockedMessageForwarding" + CALENDAR = "Calendar" + CALLERIDCONTROL = "CallerIdControl" + CALLFORWARDING = "CallForwarding" + CALLPARK = "CallPark" + CALLPARKLOCATIONS = "CallParkLocations" + CALLSUPERVISION = "CallSupervision" + CALLSWITCH = "CallSwitch" + CALLQUALITYSURVEY = "CallQualitySurvey" + CONFERENCING = "Conferencing" + CONFERENCINGNUMBER = "ConferencingNumber" + CONFIGUREDELEGATES = "ConfigureDelegates" + DEVELOPERPORTAL = "DeveloperPortal" + DND = "DND" + DYNAMICCONFERENCE = "DynamicConference" + EMERGENCYADDRESSAUTOUPDATE = "EmergencyAddressAutoUpdate" + EMERGENCYCALLING = "EmergencyCalling" + ENCRYPTIONATREST = "EncryptionAtRest" + EXTERNALDIRECTORYINTEGRATION = "ExternalDirectoryIntegration" + FAX = "Fax" + FAXRECEIVING = "FaxReceiving" + FREESOFTPHONELINES = "FreeSoftPhoneLines" + HDVOICE = "HDVoice" + HIPAACOMPLIANCE = "HipaaCompliance" + INTERCOM = "Intercom" + INTERNATIONALCALLING = "InternationalCalling" + INTERNATIONALSMS = "InternationalSMS" + LINKEDSOFTPHONELINES = "LinkedSoftphoneLines" + MMS = "MMS" + MOBILEVOIPEMERGENCYCALLING = "MobileVoipEmergencyCalling" + ONDEMANDCALLRECORDING = "OnDemandCallRecording" + PAGER = "Pager" + PAGERRECEIVING = "PagerReceiving" + PAGING = "Paging" + PASSWORDAUTH = "PasswordAuth" + PROMOMESSAGE = "PromoMessage" + REPORTS = "Reports" + PRESENCE = "Presence" + RCTEAMS = "RCTeams" + RINGOUT = "RingOut" + SALESFORCE = "SalesForce" + SHAREDLINES = "SharedLines" + SINGLEEXTENSIONUI = "SingleExtensionUI" + SITECODES = "SiteCodes" + SMS = "SMS" + SMSRECEIVING = "SMSReceiving" + SOFTPHONEUPDATE = "SoftPhoneUpdate" + TELEPHONYSESSIONS = "TelephonySessions" + USERMANAGEMENT = "UserManagement" + VIDEOCONFERENCING = "VideoConferencing" + VOIPCALLING = "VoipCalling" + VOIPCALLINGONMOBILE = "VoipCallingOnMobile" + VOICEMAIL = "Voicemail" + VOICEMAILTOTEXT = "VoicemailToText" + WEBPHONE = "WebPhone" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ServiceFeatureInfoFeatureName._member_map_.values()) + ) + + +@JsonMap({"feature_name": "featureName"}) +class ServiceFeatureInfo(BaseModel): + """ServiceFeatureInfo + + :param feature_name: Feature name, defaults to None + :type feature_name: ServiceFeatureInfoFeatureName, optional + :param enabled: Feature status, shows feature availability for the extension , defaults to None + :type enabled: bool, optional + """ + + def __init__( + self, feature_name: ServiceFeatureInfoFeatureName = None, enabled: bool = None + ): + if feature_name is not None: + self.feature_name = self._enum_matching( + feature_name, ServiceFeatureInfoFeatureName.list(), "feature_name" + ) + if enabled is not None: + self.enabled = enabled diff --git a/src/ring_central/models/service_info.py b/src/ring_central/models/service_info.py new file mode 100644 index 00000000..8f504818 --- /dev/null +++ b/src/ring_central/models/service_info.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .billing_plan_info import BillingPlanInfo +from .brand_info import BrandInfo +from .service_plan_info import ServicePlanInfo +from .target_service_plan_info import TargetServicePlanInfo +from .country_info_short_model import CountryInfoShortModel +from .u_brand_info import UBrandInfo + + +@JsonMap( + { + "billing_plan": "billingPlan", + "service_plan": "servicePlan", + "target_service_plan": "targetServicePlan", + "contracted_country": "contractedCountry", + "u_brand": "uBrand", + } +) +class ServiceInfo(BaseModel): + """Account service information, including brand, sub-brand, service plan and + billing plan + + + :param uri: Canonical URI of a service info resource, defaults to None + :type uri: str, optional + :param billing_plan: Information on account billing plan, defaults to None + :type billing_plan: BillingPlanInfo, optional + :param brand: Information on account brand, defaults to None + :type brand: BrandInfo, optional + :param service_plan: Information on account service plan, defaults to None + :type service_plan: ServicePlanInfo, optional + :param target_service_plan: Information on account target service plan, defaults to None + :type target_service_plan: TargetServicePlanInfo, optional + :param contracted_country: contracted_country, defaults to None + :type contracted_country: CountryInfoShortModel, optional + :param u_brand: Account sub-brand information, defaults to None + :type u_brand: UBrandInfo, optional + """ + + def __init__( + self, + uri: str = None, + billing_plan: BillingPlanInfo = None, + brand: BrandInfo = None, + service_plan: ServicePlanInfo = None, + target_service_plan: TargetServicePlanInfo = None, + contracted_country: CountryInfoShortModel = None, + u_brand: UBrandInfo = None, + ): + if uri is not None: + self.uri = uri + if billing_plan is not None: + self.billing_plan = self._define_object(billing_plan, BillingPlanInfo) + if brand is not None: + self.brand = self._define_object(brand, BrandInfo) + if service_plan is not None: + self.service_plan = self._define_object(service_plan, ServicePlanInfo) + if target_service_plan is not None: + self.target_service_plan = self._define_object( + target_service_plan, TargetServicePlanInfo + ) + if contracted_country is not None: + self.contracted_country = self._define_object( + contracted_country, CountryInfoShortModel + ) + if u_brand is not None: + self.u_brand = self._define_object(u_brand, UBrandInfo) diff --git a/src/ring_central/models/service_info_brand.py b/src/ring_central/models/service_info_brand.py new file mode 100644 index 00000000..9b24d302 --- /dev/null +++ b/src/ring_central/models/service_info_brand.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ServiceInfoBrand(BaseModel): + """Internal RC "brand" information + + :param id_: RingCentral brand ID + :type id_: str + :param name: RingCentral brand name + :type name: str + """ + + def __init__(self, id_: str, name: str): + self.id_ = id_ + self.name = name diff --git a/src/ring_central/models/service_info_country_short_model.py b/src/ring_central/models/service_info_country_short_model.py new file mode 100644 index 00000000..3c951487 --- /dev/null +++ b/src/ring_central/models/service_info_country_short_model.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "iso_code": "isoCode", "calling_code": "callingCode"}) +class ServiceInfoCountryShortModel(BaseModel): + """ServiceInfoCountryShortModel + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a country resource, defaults to None + :type uri: str, optional + :param name: The official name of a country, defaults to None + :type name: str, optional + :param iso_code: A ISO country code value complying with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. , defaults to None + :type iso_code: str, optional + :param calling_code: Country calling code defined by [ITU-T](http://en.wikipedia.org/wiki/ITU-T) recommendations [E.123](http://en.wikipedia.org/wiki/E.123) and [E.164](http://en.wikipedia.org/wiki/E.164), see [Calling Codes](http://en.wikipedia.org/wiki/List_of_country_calling_codes) , defaults to None + :type calling_code: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + iso_code: str = None, + calling_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if iso_code is not None: + self.iso_code = iso_code + if calling_code is not None: + self.calling_code = calling_code diff --git a/src/ring_central/models/service_info_package.py b/src/ring_central/models/service_info_package.py new file mode 100644 index 00000000..817b3ca2 --- /dev/null +++ b/src/ring_central/models/service_info_package.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Version(Enum): + """An enumeration representing different categories. + + :cvar _1: "1" + :vartype _1: str + """ + + _1 = "1" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Version._member_map_.values())) + + +@JsonMap({"id_": "id"}) +class ServiceInfoPackage(BaseModel): + """Billing package information + + :param id_: Billing package ID + :type id_: str + :param version: Billing package version + :type version: Version + """ + + def __init__(self, id_: str, version: Version): + self.id_ = id_ + self.version = self._enum_matching(version, Version.list(), "version") diff --git a/src/ring_central/models/service_info_plan.py b/src/ring_central/models/service_info_plan.py new file mode 100644 index 00000000..e4eda1eb --- /dev/null +++ b/src/ring_central/models/service_info_plan.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ServiceInfoPlanFreemiumProductType(Enum): + """An enumeration representing different categories. + + :cvar FREYJA: "Freyja" + :vartype FREYJA: str + :cvar PHOENIX: "Phoenix" + :vartype PHOENIX: str + """ + + FREYJA = "Freyja" + PHOENIX = "Phoenix" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ServiceInfoPlanFreemiumProductType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "freemium_product_type": "freemiumProductType"}) +class ServiceInfoPlan(BaseModel): + """Information on account service plan + + :param id_: Internal identifier of a service plan, defaults to None + :type id_: str, optional + :param name: Name of a service plan, defaults to None + :type name: str, optional + :param edition: Edition of a service plan, defaults to None + :type edition: str, optional + :param freemium_product_type: freemium_product_type, defaults to None + :type freemium_product_type: ServiceInfoPlanFreemiumProductType, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + edition: str = None, + freemium_product_type: ServiceInfoPlanFreemiumProductType = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if edition is not None: + self.edition = edition + if freemium_product_type is not None: + self.freemium_product_type = self._enum_matching( + freemium_product_type, + ServiceInfoPlanFreemiumProductType.list(), + "freemium_product_type", + ) diff --git a/src/ring_central/models/service_info_u_brand.py b/src/ring_central/models/service_info_u_brand.py new file mode 100644 index 00000000..8ad13a8e --- /dev/null +++ b/src/ring_central/models/service_info_u_brand.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ServiceInfoUBrand(BaseModel): + """Account sub-brand information + + :param id_: Sub-brand unique ID, defaults to None + :type id_: str, optional + :param name: Sub-brand name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/service_info_v2.py b/src/ring_central/models/service_info_v2.py new file mode 100644 index 00000000..f4b170ea --- /dev/null +++ b/src/ring_central/models/service_info_v2.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .service_info_package import ServiceInfoPackage +from .service_info_brand import ServiceInfoBrand +from .service_info_country_short_model import ServiceInfoCountryShortModel +from .service_info_u_brand import ServiceInfoUBrand +from .service_info_plan import ServiceInfoPlan + + +@JsonMap( + { + "contracted_country": "contractedCountry", + "u_brand": "uBrand", + "service_plan": "servicePlan", + } +) +class ServiceInfoV2(BaseModel): + """Service Plan information (billing package, brand, etc.) + + :param package: Billing package information + :type package: ServiceInfoPackage + :param brand: Internal RC "brand" information, defaults to None + :type brand: ServiceInfoBrand, optional + :param contracted_country: contracted_country, defaults to None + :type contracted_country: ServiceInfoCountryShortModel, optional + :param u_brand: Account sub-brand information, defaults to None + :type u_brand: ServiceInfoUBrand, optional + :param service_plan: Information on account service plan, defaults to None + :type service_plan: ServiceInfoPlan, optional + """ + + def __init__( + self, + package: ServiceInfoPackage, + brand: ServiceInfoBrand = None, + contracted_country: ServiceInfoCountryShortModel = None, + u_brand: ServiceInfoUBrand = None, + service_plan: ServiceInfoPlan = None, + ): + self.package = self._define_object(package, ServiceInfoPackage) + if brand is not None: + self.brand = self._define_object(brand, ServiceInfoBrand) + if contracted_country is not None: + self.contracted_country = self._define_object( + contracted_country, ServiceInfoCountryShortModel + ) + if u_brand is not None: + self.u_brand = self._define_object(u_brand, ServiceInfoUBrand) + if service_plan is not None: + self.service_plan = self._define_object(service_plan, ServiceInfoPlan) diff --git a/src/ring_central/models/service_plan_info.py b/src/ring_central/models/service_plan_info.py new file mode 100644 index 00000000..b8f53607 --- /dev/null +++ b/src/ring_central/models/service_plan_info.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class ServicePlanInfoFreemiumProductType(Enum): + """An enumeration representing different categories. + + :cvar FREYJA: "Freyja" + :vartype FREYJA: str + :cvar PHOENIX: "Phoenix" + :vartype PHOENIX: str + """ + + FREYJA = "Freyja" + PHOENIX = "Phoenix" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + ServicePlanInfoFreemiumProductType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "freemium_product_type": "freemiumProductType"}) +class ServicePlanInfo(BaseModel): + """Information on account service plan + + :param id_: Internal identifier of a service plan, defaults to None + :type id_: str, optional + :param name: Name of a service plan, defaults to None + :type name: str, optional + :param edition: Edition of a service plan, defaults to None + :type edition: str, optional + :param freemium_product_type: freemium_product_type, defaults to None + :type freemium_product_type: ServicePlanInfoFreemiumProductType, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + edition: str = None, + freemium_product_type: ServicePlanInfoFreemiumProductType = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if edition is not None: + self.edition = edition + if freemium_product_type is not None: + self.freemium_product_type = self._enum_matching( + freemium_product_type, + ServicePlanInfoFreemiumProductType.list(), + "freemium_product_type", + ) diff --git a/src/ring_central/models/session_global_list_entry.py b/src/ring_central/models/session_global_list_entry.py new file mode 100644 index 00000000..ee073a57 --- /dev/null +++ b/src/ring_central/models/session_global_list_entry.py @@ -0,0 +1,97 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_webinar_ref_model import WcsWebinarRefModel +from .wcs_session_status_model import WcsSessionStatusModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "scheduled_start_time": "scheduledStartTime", + "scheduled_duration": "scheduledDuration", + "time_zone": "timeZone", + "localized_time_zone_description": "localizedTimeZoneDescription", + "panel_join_time_offset": "panelJoinTimeOffset", + "host_join_uri": "hostJoinUri", + "locale_code": "localeCode", + } +) +class SessionGlobalListEntry(BaseModel): + """SessionGlobalListEntry + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param webinar: webinar + :type webinar: WcsWebinarRefModel + :param scheduled_start_time: Session scheduled start time. + :type scheduled_start_time: str + :param scheduled_duration: The duration of the Session in seconds. + :type scheduled_duration: int + :param time_zone: IANA-compatible time zone name (see https://www.iana.org/time-zones). + :type time_zone: str + :param localized_time_zone_description: Localized time zone description., defaults to None + :type localized_time_zone_description: str, optional + :param panel_join_time_offset: The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync , defaults to None + :type panel_join_time_offset: int, optional + :param title: Session title. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type description: str, optional + :param status: Session status (for the purposes of Configuration service), defaults to None + :type status: WcsSessionStatusModel, optional + :param host_join_uri: The URI to join the webinar as a host, defaults to None + :type host_join_uri: str, optional + :param locale_code: Session locale code. Can't be blank or null, defaults to None + :type locale_code: str, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + webinar: WcsWebinarRefModel, + scheduled_start_time: str, + scheduled_duration: int, + time_zone: str, + id_: str = None, + localized_time_zone_description: str = None, + panel_join_time_offset: int = None, + title: str = None, + description: str = None, + status: WcsSessionStatusModel = None, + host_join_uri: str = None, + locale_code: str = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.webinar = self._define_object(webinar, WcsWebinarRefModel) + self.scheduled_start_time = scheduled_start_time + self.scheduled_duration = scheduled_duration + self.time_zone = time_zone + if localized_time_zone_description is not None: + self.localized_time_zone_description = localized_time_zone_description + if panel_join_time_offset is not None: + self.panel_join_time_offset = panel_join_time_offset + if title is not None: + self.title = title + if description is not None: + self.description = description + if status is not None: + self.status = self._enum_matching( + status, WcsSessionStatusModel.list(), "status" + ) + if host_join_uri is not None: + self.host_join_uri = host_join_uri + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/session_global_list_resource.py b/src/ring_central/models/session_global_list_resource.py new file mode 100644 index 00000000..e39262bb --- /dev/null +++ b/src/ring_central/models/session_global_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .session_global_resource import SessionGlobalResource +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class SessionGlobalListResource(BaseModel): + """SessionGlobalListResource + + :param records: records + :type records: List[SessionGlobalResource] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[SessionGlobalResource], paging: RcwPagingModel): + self.records = self._define_list(records, SessionGlobalResource) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/session_global_resource.py b/src/ring_central/models/session_global_resource.py new file mode 100644 index 00000000..b5f87e4b --- /dev/null +++ b/src/ring_central/models/session_global_resource.py @@ -0,0 +1,171 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .webinar_ref_model import WebinarRefModel +from .rcw_session_status_model import RcwSessionStatusModel +from .session_runtime_status_model import SessionRuntimeStatusModel +from .recording_model import RecordingModel +from .session_livestream_minimal_model import SessionLivestreamMinimalModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "start_time": "startTime", + "end_time": "endTime", + "scheduled_start_time": "scheduledStartTime", + "scheduled_duration": "scheduledDuration", + "time_zone": "timeZone", + "locale_code": "localeCode", + "panel_join_time_offset": "panelJoinTimeOffset", + "broadcasting_start_time": "broadcastingStartTime", + "broadcasting_end_time": "broadcastingEndTime", + "runtime_status": "runtimeStatus", + "participant_count": "participantCount", + "attendee_count": "attendeeCount", + "unique_participant_count": "uniqueParticipantCount", + "unique_attendee_count": "uniqueAttendeeCount", + "video_bridge_id": "videoBridgeId", + } +) +class SessionGlobalResource(BaseModel): + """SessionGlobalResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param webinar: webinar + :type webinar: WebinarRefModel + :param start_time: Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" , defaults to None + :type start_time: str, optional + :param end_time: Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") , defaults to None + :type end_time: str, optional + :param duration: Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty), defaults to None + :type duration: int, optional + :param title: Session title. If blank - derived from webinar title., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. If blank - derived from webinar title., defaults to None + :type description: str, optional + :param scheduled_start_time: Session scheduled start time., defaults to None + :type scheduled_start_time: str, optional + :param scheduled_duration: The scheduled duration of the Session in seconds., defaults to None + :type scheduled_duration: int, optional + :param time_zone: IANA-compatible time zone name (see https://www.iana.org/time-zones)., defaults to None + :type time_zone: str, optional + :param locale_code: Session locale code. Can't be blank or null., defaults to None + :type locale_code: str, optional + :param panel_join_time_offset: The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync , defaults to None + :type panel_join_time_offset: int, optional + :param broadcasting_start_time: The time when broadcasting started., defaults to None + :type broadcasting_start_time: str, optional + :param broadcasting_end_time: The time when broadcasting ended., defaults to None + :type broadcasting_end_time: str, optional + :param status: Webinar session status, defaults to None + :type status: RcwSessionStatusModel, optional + :param runtime_status: Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active , defaults to None + :type runtime_status: SessionRuntimeStatusModel, optional + :param participant_count: The number of participants (of all roles) who joined the webinar, defaults to None + :type participant_count: int, optional + :param attendee_count: The number of attendees who joined the webinar, defaults to None + :type attendee_count: int, optional + :param unique_participant_count: Unique number of participants (of all roles) who joined the webinar, defaults to None + :type unique_participant_count: int, optional + :param unique_attendee_count: Unique number of attendees who joined the webinar, defaults to None + :type unique_attendee_count: int, optional + :param video_bridge_id: The RCV bridge id, defaults to None + :type video_bridge_id: str, optional + :param recording: recording, defaults to None + :type recording: RecordingModel, optional + :param livestreams: The list of livestreams configured for the session, defaults to None + :type livestreams: List[SessionLivestreamMinimalModel], optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + webinar: WebinarRefModel, + id_: str = None, + start_time: str = None, + end_time: str = None, + duration: int = None, + title: str = None, + description: str = None, + scheduled_start_time: str = None, + scheduled_duration: int = None, + time_zone: str = None, + locale_code: str = None, + panel_join_time_offset: int = None, + broadcasting_start_time: str = None, + broadcasting_end_time: str = None, + status: RcwSessionStatusModel = None, + runtime_status: SessionRuntimeStatusModel = None, + participant_count: int = None, + attendee_count: int = None, + unique_participant_count: int = None, + unique_attendee_count: int = None, + video_bridge_id: str = None, + recording: RecordingModel = None, + livestreams: List[SessionLivestreamMinimalModel] = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.webinar = self._define_object(webinar, WebinarRefModel) + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if duration is not None: + self.duration = duration + if title is not None: + self.title = title + if description is not None: + self.description = description + if scheduled_start_time is not None: + self.scheduled_start_time = scheduled_start_time + if scheduled_duration is not None: + self.scheduled_duration = scheduled_duration + if time_zone is not None: + self.time_zone = time_zone + if locale_code is not None: + self.locale_code = locale_code + if panel_join_time_offset is not None: + self.panel_join_time_offset = panel_join_time_offset + if broadcasting_start_time is not None: + self.broadcasting_start_time = broadcasting_start_time + if broadcasting_end_time is not None: + self.broadcasting_end_time = broadcasting_end_time + if status is not None: + self.status = self._enum_matching( + status, RcwSessionStatusModel.list(), "status" + ) + if runtime_status is not None: + self.runtime_status = self._enum_matching( + runtime_status, SessionRuntimeStatusModel.list(), "runtime_status" + ) + if participant_count is not None: + self.participant_count = participant_count + if attendee_count is not None: + self.attendee_count = attendee_count + if unique_participant_count is not None: + self.unique_participant_count = unique_participant_count + if unique_attendee_count is not None: + self.unique_attendee_count = unique_attendee_count + if video_bridge_id is not None: + self.video_bridge_id = video_bridge_id + if recording is not None: + self.recording = self._define_object(recording, RecordingModel) + if livestreams is not None: + self.livestreams = self._define_list( + livestreams, SessionLivestreamMinimalModel + ) diff --git a/src/ring_central/models/session_livestream_minimal_model.py b/src/ring_central/models/session_livestream_minimal_model.py new file mode 100644 index 00000000..57cb68ab --- /dev/null +++ b/src/ring_central/models/session_livestream_minimal_model.py @@ -0,0 +1,58 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .session_livestream_status_model import SessionLivestreamStatusModel + + +@JsonMap( + { + "livestream_id": "livestreamId", + "service_provider": "serviceProvider", + "livestream_status": "livestreamStatus", + "previous_livestream_status": "previousLivestreamStatus", + "livestream_start_time": "livestreamStartTime", + } +) +class SessionLivestreamMinimalModel(BaseModel): + """SessionLivestreamMinimalModel + + :param livestream_id: Identifier of the livestream + :type livestream_id: str + :param service_provider: Name of the livestreaming service provider + :type service_provider: str + :param livestream_status: Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS + :type livestream_status: SessionLivestreamStatusModel + :param previous_livestream_status: Last known state of the livestream as notified by Webinar Livestreaming Controller Service (WLCS). Value may not be consistent with latest state, especially for livestream associated with OAuth2.0 based service providers. Thus, state must be obtained directly from WLCS , defaults to None + :type previous_livestream_status: SessionLivestreamStatusModel, optional + :param livestream_start_time: Time at which the session started to publish media to livestream service provider., defaults to None + :type livestream_start_time: str, optional + :param error: Generalized API error structure suitable for any error type, defaults to None + :type error: dict, optional + """ + + def __init__( + self, + livestream_id: str, + service_provider: str, + livestream_status: SessionLivestreamStatusModel, + previous_livestream_status: SessionLivestreamStatusModel = None, + livestream_start_time: str = None, + error: dict = None, + ): + self.livestream_id = livestream_id + self.service_provider = service_provider + self.livestream_status = self._enum_matching( + livestream_status, SessionLivestreamStatusModel.list(), "livestream_status" + ) + if previous_livestream_status is not None: + self.previous_livestream_status = self._enum_matching( + previous_livestream_status, + SessionLivestreamStatusModel.list(), + "previous_livestream_status", + ) + if livestream_start_time is not None: + self.livestream_start_time = livestream_start_time + if error is not None: + self.error = error diff --git a/src/ring_central/models/session_livestream_status_model.py b/src/ring_central/models/session_livestream_status_model.py new file mode 100644 index 00000000..85e9b729 --- /dev/null +++ b/src/ring_central/models/session_livestream_status_model.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SessionLivestreamStatusModel(Enum): + """An enumeration representing different categories. + + :cvar INITIALIZED: "Initialized" + :vartype INITIALIZED: str + :cvar AUTHORIZED: "Authorized" + :vartype AUTHORIZED: str + :cvar CONFIGURED: "Configured" + :vartype CONFIGURED: str + :cvar PUBLISHSETUP: "PublishSetup" + :vartype PUBLISHSETUP: str + :cvar PUBLISHING: "Publishing" + :vartype PUBLISHING: str + :cvar PAUSED: "Paused" + :vartype PAUSED: str + :cvar ERROR: "Error" + :vartype ERROR: str + :cvar BREAK: "Break" + :vartype BREAK: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + INITIALIZED = "Initialized" + AUTHORIZED = "Authorized" + CONFIGURED = "Configured" + PUBLISHSETUP = "PublishSetup" + PUBLISHING = "Publishing" + PAUSED = "Paused" + ERROR = "Error" + BREAK = "Break" + DELETED = "Deleted" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SessionLivestreamStatusModel._member_map_.values()) + ) diff --git a/src/ring_central/models/session_ref_admin_model.py b/src/ring_central/models/session_ref_admin_model.py new file mode 100644 index 00000000..7a9b2e0c --- /dev/null +++ b/src/ring_central/models/session_ref_admin_model.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .webinar_ref_model import WebinarRefModel + + +@JsonMap({"id_": "id", "start_time": "startTime", "end_time": "endTime"}) +class SessionRefAdminModel(BaseModel): + """SessionRefAdminModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param start_time: Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" , defaults to None + :type start_time: str, optional + :param end_time: Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") , defaults to None + :type end_time: str, optional + :param duration: Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty), defaults to None + :type duration: int, optional + :param title: Session title. If blank - derived from webinar title., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. If blank - derived from webinar title., defaults to None + :type description: str, optional + :param webinar: webinar, defaults to None + :type webinar: WebinarRefModel, optional + """ + + def __init__( + self, + id_: str = None, + start_time: str = None, + end_time: str = None, + duration: int = None, + title: str = None, + description: str = None, + webinar: WebinarRefModel = None, + ): + if id_ is not None: + self.id_ = id_ + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if duration is not None: + self.duration = duration + if title is not None: + self.title = title + if description is not None: + self.description = description + if webinar is not None: + self.webinar = self._define_object(webinar, WebinarRefModel) diff --git a/src/ring_central/models/session_ref_model.py b/src/ring_central/models/session_ref_model.py new file mode 100644 index 00000000..ba606969 --- /dev/null +++ b/src/ring_central/models/session_ref_model.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .webinar_ref_model import WebinarRefModel + + +@JsonMap({"id_": "id", "start_time": "startTime", "end_time": "endTime"}) +class SessionRefModel(BaseModel): + """SessionRefModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param start_time: Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" , defaults to None + :type start_time: str, optional + :param end_time: Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") , defaults to None + :type end_time: str, optional + :param duration: Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty), defaults to None + :type duration: int, optional + :param title: Session title. If blank - derived from webinar title., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. If blank - derived from webinar title., defaults to None + :type description: str, optional + :param webinar: webinar, defaults to None + :type webinar: WebinarRefModel, optional + """ + + def __init__( + self, + id_: str = None, + start_time: str = None, + end_time: str = None, + duration: int = None, + title: str = None, + description: str = None, + webinar: WebinarRefModel = None, + ): + if id_ is not None: + self.id_ = id_ + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if duration is not None: + self.duration = duration + if title is not None: + self.title = title + if description is not None: + self.description = description + if webinar is not None: + self.webinar = self._define_object(webinar, WebinarRefModel) diff --git a/src/ring_central/models/session_resource.py b/src/ring_central/models/session_resource.py new file mode 100644 index 00000000..2bb64da6 --- /dev/null +++ b/src/ring_central/models/session_resource.py @@ -0,0 +1,166 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_session_status_model import RcwSessionStatusModel +from .session_runtime_status_model import SessionRuntimeStatusModel +from .recording_extended_model import RecordingExtendedModel +from .session_livestream_minimal_model import SessionLivestreamMinimalModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "start_time": "startTime", + "end_time": "endTime", + "scheduled_start_time": "scheduledStartTime", + "scheduled_duration": "scheduledDuration", + "time_zone": "timeZone", + "locale_code": "localeCode", + "panel_join_time_offset": "panelJoinTimeOffset", + "broadcasting_start_time": "broadcastingStartTime", + "broadcasting_end_time": "broadcastingEndTime", + "runtime_status": "runtimeStatus", + "participant_count": "participantCount", + "attendee_count": "attendeeCount", + "unique_participant_count": "uniqueParticipantCount", + "unique_attendee_count": "uniqueAttendeeCount", + "video_bridge_id": "videoBridgeId", + } +) +class SessionResource(BaseModel): + """SessionResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param start_time: Session start time. If a session hasn't been started this fields should be set to "scheduledStartTime" , defaults to None + :type start_time: str, optional + :param end_time: Session end time. If a session hasn't been finished this fields should be set to ("startTime"+"scheduledDuration") , defaults to None + :type end_time: str, optional + :param duration: Session duration in seconds rounded up (returned if 'startTime' and 'endTime' are not empty), defaults to None + :type duration: int, optional + :param title: Session title. If blank - derived from webinar title., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. If blank - derived from webinar title., defaults to None + :type description: str, optional + :param scheduled_start_time: Session scheduled start time., defaults to None + :type scheduled_start_time: str, optional + :param scheduled_duration: The scheduled duration of the Session in seconds., defaults to None + :type scheduled_duration: int, optional + :param time_zone: IANA-compatible time zone name (see https://www.iana.org/time-zones)., defaults to None + :type time_zone: str, optional + :param locale_code: Session locale code. Can't be blank or null., defaults to None + :type locale_code: str, optional + :param panel_join_time_offset: The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync , defaults to None + :type panel_join_time_offset: int, optional + :param broadcasting_start_time: The time when broadcasting started., defaults to None + :type broadcasting_start_time: str, optional + :param broadcasting_end_time: The time when broadcasting ended., defaults to None + :type broadcasting_end_time: str, optional + :param status: Webinar session status, defaults to None + :type status: RcwSessionStatusModel, optional + :param runtime_status: Session runtime status (for 'Active' Sessions only). It is omitted (or null) if the status is not Active , defaults to None + :type runtime_status: SessionRuntimeStatusModel, optional + :param participant_count: The number of participants (of all roles) who joined the webinar, defaults to None + :type participant_count: int, optional + :param attendee_count: The number of attendees who joined the webinar, defaults to None + :type attendee_count: int, optional + :param unique_participant_count: Unique number of participants (of all roles) who joined the webinar, defaults to None + :type unique_participant_count: int, optional + :param unique_attendee_count: Unique number of attendees who joined the webinar, defaults to None + :type unique_attendee_count: int, optional + :param video_bridge_id: The RCV bridge id, defaults to None + :type video_bridge_id: str, optional + :param recording: recording, defaults to None + :type recording: RecordingExtendedModel, optional + :param livestreams: The list of livestreams configured for the session, defaults to None + :type livestreams: List[SessionLivestreamMinimalModel], optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + id_: str = None, + start_time: str = None, + end_time: str = None, + duration: int = None, + title: str = None, + description: str = None, + scheduled_start_time: str = None, + scheduled_duration: int = None, + time_zone: str = None, + locale_code: str = None, + panel_join_time_offset: int = None, + broadcasting_start_time: str = None, + broadcasting_end_time: str = None, + status: RcwSessionStatusModel = None, + runtime_status: SessionRuntimeStatusModel = None, + participant_count: int = None, + attendee_count: int = None, + unique_participant_count: int = None, + unique_attendee_count: int = None, + video_bridge_id: str = None, + recording: RecordingExtendedModel = None, + livestreams: List[SessionLivestreamMinimalModel] = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if duration is not None: + self.duration = duration + if title is not None: + self.title = title + if description is not None: + self.description = description + if scheduled_start_time is not None: + self.scheduled_start_time = scheduled_start_time + if scheduled_duration is not None: + self.scheduled_duration = scheduled_duration + if time_zone is not None: + self.time_zone = time_zone + if locale_code is not None: + self.locale_code = locale_code + if panel_join_time_offset is not None: + self.panel_join_time_offset = panel_join_time_offset + if broadcasting_start_time is not None: + self.broadcasting_start_time = broadcasting_start_time + if broadcasting_end_time is not None: + self.broadcasting_end_time = broadcasting_end_time + if status is not None: + self.status = self._enum_matching( + status, RcwSessionStatusModel.list(), "status" + ) + if runtime_status is not None: + self.runtime_status = self._enum_matching( + runtime_status, SessionRuntimeStatusModel.list(), "runtime_status" + ) + if participant_count is not None: + self.participant_count = participant_count + if attendee_count is not None: + self.attendee_count = attendee_count + if unique_participant_count is not None: + self.unique_participant_count = unique_participant_count + if unique_attendee_count is not None: + self.unique_attendee_count = unique_attendee_count + if video_bridge_id is not None: + self.video_bridge_id = video_bridge_id + if recording is not None: + self.recording = self._define_object(recording, RecordingExtendedModel) + if livestreams is not None: + self.livestreams = self._define_list( + livestreams, SessionLivestreamMinimalModel + ) diff --git a/src/ring_central/models/session_runtime_status_model.py b/src/ring_central/models/session_runtime_status_model.py new file mode 100644 index 00000000..adf0d805 --- /dev/null +++ b/src/ring_central/models/session_runtime_status_model.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SessionRuntimeStatusModel(Enum): + """An enumeration representing different categories. + + :cvar IDLE: "Idle" + :vartype IDLE: str + :cvar PRACTICE: "Practice" + :vartype PRACTICE: str + :cvar GOINGLIVE: "GoingLive" + :vartype GOINGLIVE: str + :cvar LIVE: "Live" + :vartype LIVE: str + :cvar BREAK: "Break" + :vartype BREAK: str + :cvar DEBRIEF: "Debrief" + :vartype DEBRIEF: str + """ + + IDLE = "Idle" + PRACTICE = "Practice" + GOINGLIVE = "GoingLive" + LIVE = "Live" + BREAK = "Break" + DEBRIEF = "Debrief" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SessionRuntimeStatusModel._member_map_.values()) + ) diff --git a/src/ring_central/models/setup_wizard_state_enum.py b/src/ring_central/models/setup_wizard_state_enum.py new file mode 100644 index 00000000..45bf0ee5 --- /dev/null +++ b/src/ring_central/models/setup_wizard_state_enum.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SetupWizardStateEnum(Enum): + """An enumeration representing different categories. + + :cvar NOTSTARTED: "NotStarted" + :vartype NOTSTARTED: str + :cvar INCOMPLETE: "Incomplete" + :vartype INCOMPLETE: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + NOTSTARTED = "NotStarted" + INCOMPLETE = "Incomplete" + COMPLETED = "Completed" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SetupWizardStateEnum._member_map_.values())) diff --git a/src/ring_central/models/setup_wizard_state_for_update_enum.py b/src/ring_central/models/setup_wizard_state_for_update_enum.py new file mode 100644 index 00000000..f6033e88 --- /dev/null +++ b/src/ring_central/models/setup_wizard_state_for_update_enum.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SetupWizardStateForUpdateEnum(Enum): + """An enumeration representing different categories. + + :cvar NOTSTARTED: "NotStarted" + :vartype NOTSTARTED: str + :cvar INCOMPLETE: "Incomplete" + :vartype INCOMPLETE: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + NOTSTARTED = "NotStarted" + INCOMPLETE = "Incomplete" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SetupWizardStateForUpdateEnum._member_map_.values()) + ) diff --git a/src/ring_central/models/shared_lines_info.py b/src/ring_central/models/shared_lines_info.py new file mode 100644 index 00000000..99d99261 --- /dev/null +++ b/src/ring_central/models/shared_lines_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class SharedLinesInfo(BaseModel): + """SharedLines call handling action settings + + :param timeout: Number of seconds to wait before forwarding unanswered calls. The value range is 10 - 80 , defaults to None + :type timeout: int, optional + """ + + def __init__(self, timeout: int = None): + if timeout is not None: + self.timeout = timeout diff --git a/src/ring_central/models/shipping_address_info.py b/src/ring_central/models/shipping_address_info.py new file mode 100644 index 00000000..04df80a5 --- /dev/null +++ b/src/ring_central/models/shipping_address_info.py @@ -0,0 +1,130 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "customer_name": "customerName", + "additional_customer_name": "additionalCustomerName", + "customer_email": "customerEmail", + "additional_customer_email": "additionalCustomerEmail", + "customer_phone": "customerPhone", + "additional_customer_phone": "additionalCustomerPhone", + "state_id": "stateId", + "state_iso_code": "stateIsoCode", + "state_name": "stateName", + "country_id": "countryId", + "country_iso_code": "countryIsoCode", + "country_name": "countryName", + "tax_id": "taxId", + } +) +class ShippingAddressInfo(BaseModel): + """Shipping address for the order. If it coincides with the Emergency + Service Address, then can be omitted. By default, the same value as the + emergencyServiceAddress. Multiple addresses can be specified; in case + an order contains several devices, they can be delivered to different addresses + + + :param customer_name: Name of a primary contact person (receiver), defaults to None + :type customer_name: str, optional + :param additional_customer_name: Name of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type additional_customer_name: str, optional + :param customer_email: Email of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type customer_email: str, optional + :param additional_customer_email: Email of an additional contact person. Should be specified for countries except the US, Canada, the UK and Australia. , defaults to None + :type additional_customer_email: str, optional + :param customer_phone: Phone number of a primary contact person (receiver). Should be specified for countries except the US, Canada, the UK and Australia , defaults to None + :type customer_phone: str, optional + :param additional_customer_phone: Phone number of an additional contact person. Should be specified for countries except the US, Canada, the UK & Australia. , defaults to None + :type additional_customer_phone: str, optional + :param street: Street address, line 1 - street address, P.O. box, company name, c/o , defaults to None + :type street: str, optional + :param street2: Street address, line 2 - apartment, suite, unit, building, floor, etc. , defaults to None + :type street2: str, optional + :param city: City name, defaults to None + :type city: str, optional + :param state: State/province name, defaults to None + :type state: str, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param state_iso_code: ISO code of a state, defaults to None + :type state_iso_code: str, optional + :param state_name: Full name of a state, defaults to None + :type state_name: str, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: str, optional + :param country_iso_code: ISO code of a country, defaults to None + :type country_iso_code: str, optional + :param country: Country name, defaults to None + :type country: str, optional + :param country_name: Full name of a country, defaults to None + :type country_name: str, optional + :param zip: Zip code, defaults to None + :type zip: str, optional + :param tax_id: National taxpayer identification number. Should be specified for Brazil (CNPJ/CPF number) and Argentina (CUIT number). , defaults to None + :type tax_id: str, optional + """ + + def __init__( + self, + customer_name: str = None, + additional_customer_name: str = None, + customer_email: str = None, + additional_customer_email: str = None, + customer_phone: str = None, + additional_customer_phone: str = None, + street: str = None, + street2: str = None, + city: str = None, + state: str = None, + state_id: str = None, + state_iso_code: str = None, + state_name: str = None, + country_id: str = None, + country_iso_code: str = None, + country: str = None, + country_name: str = None, + zip: str = None, + tax_id: str = None, + ): + if customer_name is not None: + self.customer_name = customer_name + if additional_customer_name is not None: + self.additional_customer_name = additional_customer_name + if customer_email is not None: + self.customer_email = customer_email + if additional_customer_email is not None: + self.additional_customer_email = additional_customer_email + if customer_phone is not None: + self.customer_phone = customer_phone + if additional_customer_phone is not None: + self.additional_customer_phone = additional_customer_phone + if street is not None: + self.street = street + if street2 is not None: + self.street2 = street2 + if city is not None: + self.city = city + if state is not None: + self.state = state + if state_id is not None: + self.state_id = state_id + if state_iso_code is not None: + self.state_iso_code = state_iso_code + if state_name is not None: + self.state_name = state_name + if country_id is not None: + self.country_id = country_id + if country_iso_code is not None: + self.country_iso_code = country_iso_code + if country is not None: + self.country = country + if country_name is not None: + self.country_name = country_name + if zip is not None: + self.zip = zip + if tax_id is not None: + self.tax_id = tax_id diff --git a/src/ring_central/models/shipping_info.py b/src/ring_central/models/shipping_info.py new file mode 100644 index 00000000..1675f096 --- /dev/null +++ b/src/ring_central/models/shipping_info.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .shipping_status import ShippingStatus +from .shipping_method_info import ShippingMethodInfo +from .shipping_address_info import ShippingAddressInfo + + +@JsonMap({"tracking_number": "trackingNumber"}) +class ShippingInfo(BaseModel): + """Shipping information, according to which devices (in case of HardPhone) + or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered + to the customer + + + :param status: Order item shipping status. It is set to `Initial` when the order is submitted. Then it is changed to `Accepted` when a distributor starts processing the order. Finally, it is changed to `Shipped` which means that the distributor has shipped the device. , defaults to None + :type status: ShippingStatus, optional + :param carrier: Shipping carrier name. Appears only if the device status is 'Shipped' , defaults to None + :type carrier: str, optional + :param tracking_number: Carrier-specific tracking number. Appears only if the device status is 'Shipped' , defaults to None + :type tracking_number: str, optional + :param method: method, defaults to None + :type method: ShippingMethodInfo, optional + :param address: Shipping address for the order. If it coincides with the Emergency Service Address, then can be omitted. By default, the same value as the emergencyServiceAddress. Multiple addresses can be specified; in case an order contains several devices, they can be delivered to different addresses , defaults to None + :type address: ShippingAddressInfo, optional + """ + + def __init__( + self, + status: ShippingStatus = None, + carrier: str = None, + tracking_number: str = None, + method: ShippingMethodInfo = None, + address: ShippingAddressInfo = None, + ): + if status is not None: + self.status = self._enum_matching(status, ShippingStatus.list(), "status") + if carrier is not None: + self.carrier = carrier + if tracking_number is not None: + self.tracking_number = tracking_number + if method is not None: + self.method = self._define_object(method, ShippingMethodInfo) + if address is not None: + self.address = self._define_object(address, ShippingAddressInfo) diff --git a/src/ring_central/models/shipping_method_info.py b/src/ring_central/models/shipping_method_info.py new file mode 100644 index 00000000..3980b5e2 --- /dev/null +++ b/src/ring_central/models/shipping_method_info.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Id(Enum): + """An enumeration representing different categories. + + :cvar _1: "1" + :vartype _1: str + :cvar _2: "2" + :vartype _2: str + :cvar _3: "3" + :vartype _3: str + """ + + _1 = "1" + _2 = "2" + _3 = "3" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Id._member_map_.values())) + + +class ShippingMethodInfoName(Enum): + """An enumeration representing different categories. + + :cvar GROUND: "Ground" + :vartype GROUND: str + :cvar _2_DAY: "2 Day" + :vartype _2_DAY: str + :cvar OVERNIGHT: "Overnight" + :vartype OVERNIGHT: str + """ + + GROUND = "Ground" + _2_DAY = "2 Day" + OVERNIGHT = "Overnight" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, ShippingMethodInfoName._member_map_.values()) + ) + + +@JsonMap({"id_": "id"}) +class ShippingMethodInfo(BaseModel): + """ShippingMethodInfo + + :param id_: Shipping method ID: - "1" - Ground Shipping (5-7 business days) - "2" - Expedited Shipping (2-days) - "3" - Overnight Shipping + :type id_: Id + :param name: Method name, corresponding to the identifier, defaults to None + :type name: ShippingMethodInfoName, optional + """ + + def __init__(self, id_: Id, name: ShippingMethodInfoName = None): + self.id_ = self._enum_matching(id_, Id.list(), "id_") + if name is not None: + self.name = self._enum_matching(name, ShippingMethodInfoName.list(), "name") diff --git a/src/ring_central/models/shipping_status.py b/src/ring_central/models/shipping_status.py new file mode 100644 index 00000000..21045f9b --- /dev/null +++ b/src/ring_central/models/shipping_status.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ShippingStatus(Enum): + """An enumeration representing different categories. + + :cvar INITIAL: "Initial" + :vartype INITIAL: str + :cvar ACCEPTED: "Accepted" + :vartype ACCEPTED: str + :cvar SHIPPED: "Shipped" + :vartype SHIPPED: str + """ + + INITIAL = "Initial" + ACCEPTED = "Accepted" + SHIPPED = "Shipped" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ShippingStatus._member_map_.values())) diff --git a/src/ring_central/models/short_site_info.py b/src/ring_central/models/short_site_info.py new file mode 100644 index 00000000..db87ee58 --- /dev/null +++ b/src/ring_central/models/short_site_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class ShortSiteInfo(BaseModel): + """ShortSiteInfo + + :param id_: Internal identifier of a site extension, defaults to None + :type id_: str, optional + :param name: Extension user first name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/signup_info_resource.py b/src/ring_central/models/signup_info_resource.py new file mode 100644 index 00000000..248ef071 --- /dev/null +++ b/src/ring_central/models/signup_info_resource.py @@ -0,0 +1,145 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class SignupState(Enum): + """An enumeration representing different categories. + + :cvar ACCOUNTCREATED: "AccountCreated" + :vartype ACCOUNTCREATED: str + :cvar BILLINGENTERED: "BillingEntered" + :vartype BILLINGENTERED: str + :cvar CREDITCARDAPPROVED: "CreditCardApproved" + :vartype CREDITCARDAPPROVED: str + :cvar ACCOUNTCONFIRMED: "AccountConfirmed" + :vartype ACCOUNTCONFIRMED: str + :cvar PHONEVERIFICATIONREQUIRED: "PhoneVerificationRequired" + :vartype PHONEVERIFICATIONREQUIRED: str + :cvar PHONEVERIFICATIONPASSED: "PhoneVerificationPassed" + :vartype PHONEVERIFICATIONPASSED: str + """ + + ACCOUNTCREATED = "AccountCreated" + BILLINGENTERED = "BillingEntered" + CREDITCARDAPPROVED = "CreditCardApproved" + ACCOUNTCONFIRMED = "AccountConfirmed" + PHONEVERIFICATIONREQUIRED = "PhoneVerificationRequired" + PHONEVERIFICATIONPASSED = "PhoneVerificationPassed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SignupState._member_map_.values())) + + +class VerificationReason(Enum): + """An enumeration representing different categories. + + :cvar CC_FAILED: "CC_Failed" + :vartype CC_FAILED: str + :cvar PHONE_SUSPICIOUS: "Phone_Suspicious" + :vartype PHONE_SUSPICIOUS: str + :cvar CC_PHONE_NOT_MATCH: "CC_Phone_Not_Match" + :vartype CC_PHONE_NOT_MATCH: str + :cvar AVS_NOT_AVAILABLE: "AVS_Not_Available" + :vartype AVS_NOT_AVAILABLE: str + :cvar MAXMIND: "MaxMind" + :vartype MAXMIND: str + :cvar CC_BLACKLISTED: "CC_Blacklisted" + :vartype CC_BLACKLISTED: str + :cvar EMAIL_BLACKLISTED: "Email_Blacklisted" + :vartype EMAIL_BLACKLISTED: str + :cvar PHONE_BLACKLISTED: "Phone_Blacklisted" + :vartype PHONE_BLACKLISTED: str + :cvar COOKIE_BLACKLISTED: "Cookie_Blacklisted" + :vartype COOKIE_BLACKLISTED: str + :cvar DEVICE_BLACKLISTED: "Device_Blacklisted" + :vartype DEVICE_BLACKLISTED: str + :cvar IP_BLACKLISTED: "IP_Blacklisted" + :vartype IP_BLACKLISTED: str + :cvar AGENT_INSTANCE_BLACKLISTED: "Agent_Instance_Blacklisted" + :vartype AGENT_INSTANCE_BLACKLISTED: str + :cvar CHARGE_LIMIT: "Charge_Limit" + :vartype CHARGE_LIMIT: str + :cvar OTHER_COUNTRY: "Other_Country" + :vartype OTHER_COUNTRY: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + """ + + CC_FAILED = "CC_Failed" + PHONE_SUSPICIOUS = "Phone_Suspicious" + CC_PHONE_NOT_MATCH = "CC_Phone_Not_Match" + AVS_NOT_AVAILABLE = "AVS_Not_Available" + MAXMIND = "MaxMind" + CC_BLACKLISTED = "CC_Blacklisted" + EMAIL_BLACKLISTED = "Email_Blacklisted" + PHONE_BLACKLISTED = "Phone_Blacklisted" + COOKIE_BLACKLISTED = "Cookie_Blacklisted" + DEVICE_BLACKLISTED = "Device_Blacklisted" + IP_BLACKLISTED = "IP_Blacklisted" + AGENT_INSTANCE_BLACKLISTED = "Agent_Instance_Blacklisted" + CHARGE_LIMIT = "Charge_Limit" + OTHER_COUNTRY = "Other_Country" + UNKNOWN = "Unknown" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, VerificationReason._member_map_.values())) + + +@JsonMap( + { + "tos_accepted": "tosAccepted", + "signup_state": "signupState", + "verification_reason": "verificationReason", + "marketing_accepted": "marketingAccepted", + "creation_time": "creationTime", + } +) +class SignupInfoResource(BaseModel): + """Account sign up data + + :param tos_accepted: tos_accepted, defaults to None + :type tos_accepted: bool, optional + :param signup_state: signup_state, defaults to None + :type signup_state: List[SignupState], optional + :param verification_reason: verification_reason, defaults to None + :type verification_reason: VerificationReason, optional + :param marketing_accepted: Updates 'Send Marketing Information' flag on web interface , defaults to None + :type marketing_accepted: bool, optional + :param creation_time: The timestamp of account creation, defaults to None + :type creation_time: str, optional + """ + + def __init__( + self, + tos_accepted: bool = None, + signup_state: List[SignupState] = None, + verification_reason: VerificationReason = None, + marketing_accepted: bool = None, + creation_time: str = None, + ): + if tos_accepted is not None: + self.tos_accepted = tos_accepted + if signup_state is not None: + self.signup_state = self._define_list(signup_state, SignupState) + if verification_reason is not None: + self.verification_reason = self._enum_matching( + verification_reason, VerificationReason.list(), "verification_reason" + ) + if marketing_accepted is not None: + self.marketing_accepted = marketing_accepted + if creation_time is not None: + self.creation_time = creation_time diff --git a/src/ring_central/models/sip_flags_response.py b/src/ring_central/models/sip_flags_response.py new file mode 100644 index 00000000..c1d45e99 --- /dev/null +++ b/src/ring_central/models/sip_flags_response.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "voip_feature_enabled": "voipFeatureEnabled", + "voip_country_blocked": "voipCountryBlocked", + "outbound_calls_enabled": "outboundCallsEnabled", + "dscp_enabled": "dscpEnabled", + "dscp_signaling": "dscpSignaling", + "dscp_voice": "dscpVoice", + "dscp_video": "dscpVideo", + } +) +class SipFlagsResponse(BaseModel): + """SIP flags information + + :param voip_feature_enabled: Indicates that VoIP calling feature is enabled, defaults to None + :type voip_feature_enabled: bool, optional + :param voip_country_blocked: Indicates that the request is sent from IP address of a country where VoIP calling is disallowed , defaults to None + :type voip_country_blocked: bool, optional + :param outbound_calls_enabled: Indicates that outbound calls are enabled, defaults to None + :type outbound_calls_enabled: bool, optional + :param dscp_enabled: dscp_enabled, defaults to None + :type dscp_enabled: bool, optional + :param dscp_signaling: dscp_signaling, defaults to None + :type dscp_signaling: int, optional + :param dscp_voice: dscp_voice, defaults to None + :type dscp_voice: int, optional + :param dscp_video: dscp_video, defaults to None + :type dscp_video: int, optional + """ + + def __init__( + self, + voip_feature_enabled: bool = None, + voip_country_blocked: bool = None, + outbound_calls_enabled: bool = None, + dscp_enabled: bool = None, + dscp_signaling: int = None, + dscp_voice: int = None, + dscp_video: int = None, + ): + if voip_feature_enabled is not None: + self.voip_feature_enabled = voip_feature_enabled + if voip_country_blocked is not None: + self.voip_country_blocked = voip_country_blocked + if outbound_calls_enabled is not None: + self.outbound_calls_enabled = outbound_calls_enabled + if dscp_enabled is not None: + self.dscp_enabled = dscp_enabled + if dscp_signaling is not None: + self.dscp_signaling = dscp_signaling + if dscp_voice is not None: + self.dscp_voice = dscp_voice + if dscp_video is not None: + self.dscp_video = dscp_video diff --git a/src/ring_central/models/sip_info_request.py b/src/ring_central/models/sip_info_request.py new file mode 100644 index 00000000..3be7e383 --- /dev/null +++ b/src/ring_central/models/sip_info_request.py @@ -0,0 +1,49 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class SipInfoRequestTransport(Enum): + """An enumeration representing different categories. + + :cvar UDP: "UDP" + :vartype UDP: str + :cvar TCP: "TCP" + :vartype TCP: str + :cvar TLS: "TLS" + :vartype TLS: str + :cvar WSS: "WSS" + :vartype WSS: str + """ + + UDP = "UDP" + TCP = "TCP" + TLS = "TLS" + WSS = "WSS" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SipInfoRequestTransport._member_map_.values()) + ) + + +@JsonMap({}) +class SipInfoRequest(BaseModel): + """SipInfoRequest + + :param transport: Supported transport. SIP info will be returned for this transport if supported, defaults to None + :type transport: SipInfoRequestTransport, optional + """ + + def __init__(self, transport: SipInfoRequestTransport = None): + if transport is not None: + self.transport = self._enum_matching( + transport, SipInfoRequestTransport.list(), "transport" + ) diff --git a/src/ring_central/models/sip_info_resource.py b/src/ring_central/models/sip_info_resource.py new file mode 100644 index 00000000..236e4c9c --- /dev/null +++ b/src/ring_central/models/sip_info_resource.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .outbound_proxy_info import OutboundProxyInfo + + +@JsonMap( + { + "outbound_proxies": "outboundProxies", + "user_name": "userName", + "authorization_id": "authorizationId", + } +) +class SipInfoResource(BaseModel): + """SipInfoResource + + :param domain: SIP domain, defaults to None + :type domain: str, optional + :param outbound_proxies: List of outbound proxies, defaults to None + :type outbound_proxies: List[OutboundProxyInfo], optional + :param user_name: User credentials, defaults to None + :type user_name: str, optional + :param password: User password, defaults to None + :type password: str, optional + :param authorization_id: Internal identifier for SIP authorization, defaults to None + :type authorization_id: str, optional + """ + + def __init__( + self, + domain: str = None, + outbound_proxies: List[OutboundProxyInfo] = None, + user_name: str = None, + password: str = None, + authorization_id: str = None, + ): + if domain is not None: + self.domain = domain + if outbound_proxies is not None: + self.outbound_proxies = self._define_list( + outbound_proxies, OutboundProxyInfo + ) + if user_name is not None: + self.user_name = user_name + if password is not None: + self.password = password + if authorization_id is not None: + self.authorization_id = authorization_id diff --git a/src/ring_central/models/sip_info_response.py b/src/ring_central/models/sip_info_response.py new file mode 100644 index 00000000..d853ac51 --- /dev/null +++ b/src/ring_central/models/sip_info_response.py @@ -0,0 +1,128 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .authorization_type import AuthorizationType + + +class SipInfoResponseTransport(Enum): + """An enumeration representing different categories. + + :cvar UDP: "UDP" + :vartype UDP: str + :cvar TCP: "TCP" + :vartype TCP: str + :cvar TLS: "TLS" + :vartype TLS: str + :cvar WSS: "WSS" + :vartype WSS: str + """ + + UDP = "UDP" + TCP = "TCP" + TLS = "TLS" + WSS = "WSS" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SipInfoResponseTransport._member_map_.values()) + ) + + +@JsonMap( + { + "authorization_types": "authorizationTypes", + "authorization_id": "authorizationId", + "outbound_proxy": "outboundProxy", + "outbound_proxy_i_pv6": "outboundProxyIPv6", + "outbound_proxy_backup": "outboundProxyBackup", + "outbound_proxy_i_pv6_backup": "outboundProxyIPv6Backup", + "switch_back_interval": "switchBackInterval", + "stun_servers": "stunServers", + } +) +class SipInfoResponse(BaseModel): + """SipInfoResponse + + :param username: User credentials, defaults to None + :type username: str, optional + :param password: User password. Not returned if SipDigest is not enabled, defaults to None + :type password: str, optional + :param authorization_types: Supported authorization types and their priority for clients, defaults to None + :type authorization_types: List[AuthorizationType], optional + :param authorization_id: Identifier for SIP authorization, defaults to None + :type authorization_id: str, optional + :param domain: SIP domain, defaults to None + :type domain: str, optional + :param outbound_proxy: SIP outbound proxy server address (in the format ), defaults to None + :type outbound_proxy: str, optional + :param outbound_proxy_i_pv6: SIP outbound IPv6 proxy server address (in the format ), defaults to None + :type outbound_proxy_i_pv6: str, optional + :param outbound_proxy_backup: SIP outbound proxy server backup address (in the format ), defaults to None + :type outbound_proxy_backup: str, optional + :param outbound_proxy_i_pv6_backup: SIP outbound IPv6 proxy server backup address (in the format ), defaults to None + :type outbound_proxy_i_pv6_backup: str, optional + :param transport: Preferred transport. SIP info will be returned for this transport if supported, defaults to None + :type transport: SipInfoResponseTransport, optional + :param certificate: For TLS transport only, Base64 encoded certificate, defaults to None + :type certificate: str, optional + :param switch_back_interval: The interval in seconds after which the app must try to switch back to primary proxy if it was previously switched to backup. If this parameter is not returned, the app must stay on backup proxy and try to switch to primary proxy after the next SIP-provision call. , defaults to None + :type switch_back_interval: int, optional + :param stun_servers: List of stun servers in the format , defaults to None + :type stun_servers: List[str], optional + """ + + def __init__( + self, + username: str = None, + password: str = None, + authorization_types: List[AuthorizationType] = None, + authorization_id: str = None, + domain: str = None, + outbound_proxy: str = None, + outbound_proxy_i_pv6: str = None, + outbound_proxy_backup: str = None, + outbound_proxy_i_pv6_backup: str = None, + transport: SipInfoResponseTransport = None, + certificate: str = None, + switch_back_interval: int = None, + stun_servers: List[str] = None, + ): + if username is not None: + self.username = username + if password is not None: + self.password = password + if authorization_types is not None: + self.authorization_types = self._define_list( + authorization_types, AuthorizationType + ) + if authorization_id is not None: + self.authorization_id = authorization_id + if domain is not None: + self.domain = domain + if outbound_proxy is not None: + self.outbound_proxy = outbound_proxy + if outbound_proxy_i_pv6 is not None: + self.outbound_proxy_i_pv6 = outbound_proxy_i_pv6 + if outbound_proxy_backup is not None: + self.outbound_proxy_backup = outbound_proxy_backup + if outbound_proxy_i_pv6_backup is not None: + self.outbound_proxy_i_pv6_backup = outbound_proxy_i_pv6_backup + if transport is not None: + self.transport = self._enum_matching( + transport, SipInfoResponseTransport.list(), "transport" + ) + if certificate is not None: + self.certificate = certificate + if switch_back_interval is not None: + self.switch_back_interval = switch_back_interval + if stun_servers is not None: + self.stun_servers = stun_servers diff --git a/src/ring_central/models/sip_registration_device_emergency_info.py b/src/ring_central/models/sip_registration_device_emergency_info.py new file mode 100644 index 00000000..fba18fb9 --- /dev/null +++ b/src/ring_central/models/sip_registration_device_emergency_info.py @@ -0,0 +1,235 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import Union +from .utils.json_map import JsonMap +from .base import BaseModel +from .base import OneOfBaseModel +from .sip_registration_device_location_info import SipRegistrationDeviceLocationInfo +from .device_emergency_service_address_resource_default import ( + DeviceEmergencyServiceAddressResourceDefault, +) +from .device_emergency_service_address_resource_au import ( + DeviceEmergencyServiceAddressResourceAu, +) +from .device_emergency_service_address_resource_fr import ( + DeviceEmergencyServiceAddressResourceFr, +) + + +class AddressGuard(OneOfBaseModel): + class_list = { + "DeviceEmergencyServiceAddressResourceDefault": DeviceEmergencyServiceAddressResourceDefault, + "DeviceEmergencyServiceAddressResourceAu": DeviceEmergencyServiceAddressResourceAu, + "DeviceEmergencyServiceAddressResourceFr": DeviceEmergencyServiceAddressResourceFr, + } + + +Address = Union[ + DeviceEmergencyServiceAddressResourceDefault, + DeviceEmergencyServiceAddressResourceAu, + DeviceEmergencyServiceAddressResourceFr, +] + + +class SipRegistrationDeviceEmergencyInfoAddressStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + :cvar PROCESSING: "Processing" + :vartype PROCESSING: str + """ + + VALID = "Valid" + INVALID = "Invalid" + PROCESSING = "Processing" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SipRegistrationDeviceEmergencyInfoAddressStatus._member_map_.values(), + ) + ) + + +class SipRegistrationDeviceEmergencyInfoVisibility(Enum): + """An enumeration representing different categories. + + :cvar PRIVATE: "Private" + :vartype PRIVATE: str + :cvar PUBLIC: "Public" + :vartype PUBLIC: str + """ + + PRIVATE = "Private" + PUBLIC = "Public" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SipRegistrationDeviceEmergencyInfoVisibility._member_map_.values(), + ) + ) + + +class SipRegistrationDeviceEmergencyInfoSyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SipRegistrationDeviceEmergencyInfoSyncStatus._member_map_.values(), + ) + ) + + +class SipRegistrationDeviceEmergencyInfoAddressEditableStatus(Enum): + """An enumeration representing different categories. + + :cvar MAINDEVICE: "MainDevice" + :vartype MAINDEVICE: str + :cvar ANYDEVICE: "AnyDevice" + :vartype ANYDEVICE: str + """ + + MAINDEVICE = "MainDevice" + ANYDEVICE = "AnyDevice" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SipRegistrationDeviceEmergencyInfoAddressEditableStatus._member_map_.values(), + ) + ) + + +@JsonMap( + { + "out_of_country": "outOfCountry", + "address_status": "addressStatus", + "sync_status": "syncStatus", + "address_editable_status": "addressEditableStatus", + "address_required": "addressRequired", + "address_location_only": "addressLocationOnly", + } +) +class SipRegistrationDeviceEmergencyInfo(BaseModel): + """Emergency response location settings of a device + + :param address: address, defaults to None + :type address: Address, optional + :param location: Company emergency response location details, defaults to None + :type location: SipRegistrationDeviceLocationInfo, optional + :param out_of_country: Specifies if emergency address is out of country, defaults to None + :type out_of_country: bool, optional + :param address_status: Emergency address status, defaults to None + :type address_status: SipRegistrationDeviceEmergencyInfoAddressStatus, optional + :param visibility: Specifies whether to return only private or only public (company) ERLs (Emergency Response Locations) , defaults to None + :type visibility: SipRegistrationDeviceEmergencyInfoVisibility, optional + :param sync_status: Resulting status of emergency address synchronization. Returned if `syncEmergencyAddress` parameter is set to `true` , defaults to None + :type sync_status: SipRegistrationDeviceEmergencyInfoSyncStatus, optional + :param address_editable_status: Ability to register new emergency address for a phone line using devices sharing this line or only main device (line owner) , defaults to None + :type address_editable_status: SipRegistrationDeviceEmergencyInfoAddressEditableStatus, optional + :param address_required: Indicates if emergency address is required for the country of a phone line, defaults to None + :type address_required: bool, optional + :param address_location_only: Indicates if out of country emergency address is not allowed for the country of a phone line, defaults to None + :type address_location_only: bool, optional + """ + + def __init__( + self, + address: Address = None, + location: SipRegistrationDeviceLocationInfo = None, + out_of_country: bool = None, + address_status: SipRegistrationDeviceEmergencyInfoAddressStatus = None, + visibility: SipRegistrationDeviceEmergencyInfoVisibility = None, + sync_status: SipRegistrationDeviceEmergencyInfoSyncStatus = None, + address_editable_status: SipRegistrationDeviceEmergencyInfoAddressEditableStatus = None, + address_required: bool = None, + address_location_only: bool = None, + ): + if address is not None: + self.address = AddressGuard.return_one_of(address) + if location is not None: + self.location = self._define_object( + location, SipRegistrationDeviceLocationInfo + ) + if out_of_country is not None: + self.out_of_country = out_of_country + if address_status is not None: + self.address_status = self._enum_matching( + address_status, + SipRegistrationDeviceEmergencyInfoAddressStatus.list(), + "address_status", + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, + SipRegistrationDeviceEmergencyInfoVisibility.list(), + "visibility", + ) + if sync_status is not None: + self.sync_status = self._enum_matching( + sync_status, + SipRegistrationDeviceEmergencyInfoSyncStatus.list(), + "sync_status", + ) + if address_editable_status is not None: + self.address_editable_status = self._enum_matching( + address_editable_status, + SipRegistrationDeviceEmergencyInfoAddressEditableStatus.list(), + "address_editable_status", + ) + if address_required is not None: + self.address_required = address_required + if address_location_only is not None: + self.address_location_only = address_location_only diff --git a/src/ring_central/models/sip_registration_device_info.py b/src/ring_central/models/sip_registration_device_info.py new file mode 100644 index 00000000..e84ed9f8 --- /dev/null +++ b/src/ring_central/models/sip_registration_device_info.py @@ -0,0 +1,211 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .device_model_info import DeviceModelInfo +from .device_extension_info import DeviceExtensionInfo +from .device_emergency_service_address_resource_default import ( + DeviceEmergencyServiceAddressResourceDefault, +) +from .sip_registration_device_emergency_info import SipRegistrationDeviceEmergencyInfo +from .shipping_info import ShippingInfo +from .device_phone_lines_info import DevicePhoneLinesInfo +from .line_pooling_enum import LinePoolingEnum +from .device_site_info import DeviceSiteInfo + + +class SipRegistrationDeviceInfoType(Enum): + """An enumeration representing different categories. + + :cvar HARDPHONE: "HardPhone" + :vartype HARDPHONE: str + :cvar SOFTPHONE: "SoftPhone" + :vartype SOFTPHONE: str + :cvar OTHERPHONE: "OtherPhone" + :vartype OTHERPHONE: str + :cvar PAGING: "Paging" + :vartype PAGING: str + :cvar WEBPHONE: "WebPhone" + :vartype WEBPHONE: str + :cvar ROOM: "Room" + :vartype ROOM: str + """ + + HARDPHONE = "HardPhone" + SOFTPHONE = "SoftPhone" + OTHERPHONE = "OtherPhone" + PAGING = "Paging" + WEBPHONE = "WebPhone" + ROOM = "Room" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SipRegistrationDeviceInfoType._member_map_.values()) + ) + + +class SipRegistrationDeviceInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ONLINE: "Online" + :vartype ONLINE: str + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + """ + + ONLINE = "Online" + OFFLINE = "Offline" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, SipRegistrationDeviceInfoStatus._member_map_.values() + ) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "computer_name": "computerName", + "emergency_service_address": "emergencyServiceAddress", + "phone_lines": "phoneLines", + "box_billing_id": "boxBillingId", + "use_as_common_phone": "useAsCommonPhone", + "line_pooling": "linePooling", + "in_company_net": "inCompanyNet", + "last_location_report_time": "lastLocationReportTime", + } +) +class SipRegistrationDeviceInfo(BaseModel): + """SipRegistrationDeviceInfo + + :param uri: Canonical URI of the resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a device, defaults to None + :type id_: str, optional + :param type_: Device type, defaults to None + :type type_: SipRegistrationDeviceInfoType, optional + :param sku: Device identification number (SKU, Stock Keeping Unit) in the format TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all other devices including soft phones); ID - device model ID; AT - add-on type ID; AC - add-on count (if any). For example 'HP-56-2-2' , defaults to None + :type sku: str, optional + :param status: status, defaults to None + :type status: SipRegistrationDeviceInfoStatus, optional + :param name: Device name. Mandatory if ordering SoftPhone or OtherPhone. Optional for HardPhone. If not specified for HardPhone, then device model name is used as device name , defaults to None + :type name: str, optional + :param serial: Serial number for HardPhone (is returned only when the phone is shipped and provisioned); endpoint_id for Softphone and mobile applications , defaults to None + :type serial: str, optional + :param computer_name: Computer name (for devices of `SoftPhone` type only), defaults to None + :type computer_name: str, optional + :param model: HardPhone model information, defaults to None + :type model: DeviceModelInfo, optional + :param extension: extension, defaults to None + :type extension: DeviceExtensionInfo, optional + :param emergency_service_address: Address for emergency cases. The same emergency address is assigned to all the numbers of one device, defaults to None + :type emergency_service_address: DeviceEmergencyServiceAddressResourceDefault, optional + :param emergency: Emergency response location settings of a device, defaults to None + :type emergency: SipRegistrationDeviceEmergencyInfo, optional + :param shipping: Shipping information, according to which devices (in case of HardPhone) or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered to the customer , defaults to None + :type shipping: ShippingInfo, optional + :param phone_lines: Phone lines information, defaults to None + :type phone_lines: List[DevicePhoneLinesInfo], optional + :param box_billing_id: Box billing identifier of a device. Applicable only for devices of `HardPhone` type. , defaults to None + :type box_billing_id: int, optional + :param use_as_common_phone: Supported only for devices assigned to Limited extensions. If true, enables users to log in to this phone as a common phone., defaults to None + :type use_as_common_phone: bool, optional + :param line_pooling: Pooling type of device: - `Host` - device with a standalone paid phone line which can be linked to soft phone client instance; - `Guest` - device with a linked phone line; - `None` - device without a phone line or with a specific line (free, BLA, etc.) , defaults to None + :type line_pooling: LinePoolingEnum, optional + :param in_company_net: Network location status. `true` if the device is located in the configured corporate network (On-Net); `false` for Off-Net location. Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not enabled for the account/user, or if device network location is not determined , defaults to None + :type in_company_net: bool, optional + :param site: Site data, defaults to None + :type site: DeviceSiteInfo, optional + :param last_location_report_time: Timestamp of receiving last location report in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z , defaults to None + :type last_location_report_time: str, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + type_: SipRegistrationDeviceInfoType = None, + sku: str = None, + status: SipRegistrationDeviceInfoStatus = None, + name: str = None, + serial: str = None, + computer_name: str = None, + model: DeviceModelInfo = None, + extension: DeviceExtensionInfo = None, + emergency_service_address: DeviceEmergencyServiceAddressResourceDefault = None, + emergency: SipRegistrationDeviceEmergencyInfo = None, + shipping: ShippingInfo = None, + phone_lines: List[DevicePhoneLinesInfo] = None, + box_billing_id: int = None, + use_as_common_phone: bool = None, + line_pooling: LinePoolingEnum = None, + in_company_net: bool = None, + site: DeviceSiteInfo = None, + last_location_report_time: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, SipRegistrationDeviceInfoType.list(), "type_" + ) + if sku is not None: + self.sku = sku + if status is not None: + self.status = self._enum_matching( + status, SipRegistrationDeviceInfoStatus.list(), "status" + ) + if name is not None: + self.name = name + if serial is not None: + self.serial = serial + if computer_name is not None: + self.computer_name = computer_name + if model is not None: + self.model = self._define_object(model, DeviceModelInfo) + if extension is not None: + self.extension = self._define_object(extension, DeviceExtensionInfo) + if emergency_service_address is not None: + self.emergency_service_address = self._define_object( + emergency_service_address, DeviceEmergencyServiceAddressResourceDefault + ) + if emergency is not None: + self.emergency = self._define_object( + emergency, SipRegistrationDeviceEmergencyInfo + ) + if shipping is not None: + self.shipping = self._define_object(shipping, ShippingInfo) + if phone_lines is not None: + self.phone_lines = self._define_list(phone_lines, DevicePhoneLinesInfo) + if box_billing_id is not None: + self.box_billing_id = box_billing_id + if use_as_common_phone is not None: + self.use_as_common_phone = use_as_common_phone + if line_pooling is not None: + self.line_pooling = self._enum_matching( + line_pooling, LinePoolingEnum.list(), "line_pooling" + ) + if in_company_net is not None: + self.in_company_net = in_company_net + if site is not None: + self.site = self._define_object(site, DeviceSiteInfo) + if last_location_report_time is not None: + self.last_location_report_time = last_location_report_time diff --git a/src/ring_central/models/sip_registration_device_location_info.py b/src/ring_central/models/sip_registration_device_location_info.py new file mode 100644 index 00000000..f79ab7fa --- /dev/null +++ b/src/ring_central/models/sip_registration_device_location_info.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "address_format_id": "addressFormatId"}) +class SipRegistrationDeviceLocationInfo(BaseModel): + """Company emergency response location details + + :param id_: Internal identifier of an emergency response location, defaults to None + :type id_: str, optional + :param name: Emergency response location name, defaults to None + :type name: str, optional + :param address_format_id: Address format ID, defaults to None + :type address_format_id: str, optional + """ + + def __init__( + self, id_: str = None, name: str = None, address_format_id: str = None + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if address_format_id is not None: + self.address_format_id = address_format_id diff --git a/src/ring_central/models/site.py b/src/ring_central/models/site.py new file mode 100644 index 00000000..77383139 --- /dev/null +++ b/src/ring_central/models/site.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class Site(BaseModel): + """Specifies a site that message template is associated with. Supported only if the Sites feature is enabled. + The default is `main-site` value. + + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + :param name: Custom name of a site, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/site_basic_info.py b/src/ring_central/models/site_basic_info.py new file mode 100644 index 00000000..5c915f2c --- /dev/null +++ b/src/ring_central/models/site_basic_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteBasicInfo(BaseModel): + """SiteBasicInfo + + :param id_: Site extension identifier or "main-site" for the main site + :type id_: str + :param name: Site name + :type name: str + """ + + def __init__(self, id_: str, name: str): + self.id_ = id_ + self.name = name diff --git a/src/ring_central/models/site_info.py b/src/ring_central/models/site_info.py new file mode 100644 index 00000000..694d86ed --- /dev/null +++ b/src/ring_central/models/site_info.py @@ -0,0 +1,81 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .regional_settings import RegionalSettings +from .operator_info import OperatorInfo + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "business_address": "businessAddress", + "regional_settings": "regionalSettings", + } +) +class SiteInfo(BaseModel): + """SiteInfo + + :param id_: Internal identifier of a site extension, defaults to None + :type id_: str, optional + :param uri: Link to a site resource, defaults to None + :type uri: str, optional + :param name: Extension user first name, defaults to None + :type name: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + :param caller_id_name: Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) , defaults to None + :type caller_id_name: str, optional + :param email: Site extension contact email, defaults to None + :type email: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param operator: Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled , defaults to None + :type operator: OperatorInfo, optional + :param code: Site code value. Returned only if specified , defaults to None + :type code: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + extension_number: str = None, + caller_id_name: str = None, + email: str = None, + business_address: ContactBusinessAddressInfo = None, + regional_settings: RegionalSettings = None, + operator: OperatorInfo = None, + code: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if caller_id_name is not None: + self.caller_id_name = caller_id_name + if email is not None: + self.email = email + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if operator is not None: + self.operator = self._define_object(operator, OperatorInfo) + if code is not None: + self.code = code diff --git a/src/ring_central/models/site_ivr_actions.py b/src/ring_central/models/site_ivr_actions.py new file mode 100644 index 00000000..2892834e --- /dev/null +++ b/src/ring_central/models/site_ivr_actions.py @@ -0,0 +1,95 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_ivr_actions_extension_info import SiteIvrActionsExtensionInfo + + +class SiteIvrActionsInput(Enum): + """An enumeration representing different categories. + + :cvar STAR: "Star" + :vartype STAR: str + :cvar HASH: "Hash" + :vartype HASH: str + :cvar NOINPUT: "NoInput" + :vartype NOINPUT: str + """ + + STAR = "Star" + HASH = "Hash" + NOINPUT = "NoInput" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SiteIvrActionsInput._member_map_.values())) + + +class SiteIvrActionsAction(Enum): + """An enumeration representing different categories. + + :cvar REPEAT: "Repeat" + :vartype REPEAT: str + :cvar RETURNTOROOT: "ReturnToRoot" + :vartype RETURNTOROOT: str + :cvar RETURNTOPREVIOUS: "ReturnToPrevious" + :vartype RETURNTOPREVIOUS: str + :cvar RETURNTOTOPLEVELMENU: "ReturnToTopLevelMenu" + :vartype RETURNTOTOPLEVELMENU: str + :cvar CONNECT: "Connect" + :vartype CONNECT: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar DONOTHING: "DoNothing" + :vartype DONOTHING: str + """ + + REPEAT = "Repeat" + RETURNTOROOT = "ReturnToRoot" + RETURNTOPREVIOUS = "ReturnToPrevious" + RETURNTOTOPLEVELMENU = "ReturnToTopLevelMenu" + CONNECT = "Connect" + DISCONNECT = "Disconnect" + DONOTHING = "DoNothing" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SiteIvrActionsAction._member_map_.values())) + + +@JsonMap({}) +class SiteIvrActions(BaseModel): + """Keys handling settings + + :param input: input, defaults to None + :type input: SiteIvrActionsInput, optional + :param action: Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput only; - Disconnect - end call, for NoInput only. , defaults to None + :type action: SiteIvrActionsAction, optional + :param extension: Extension information, defaults to None + :type extension: SiteIvrActionsExtensionInfo, optional + """ + + def __init__( + self, + input: SiteIvrActionsInput = None, + action: SiteIvrActionsAction = None, + extension: SiteIvrActionsExtensionInfo = None, + ): + if input is not None: + self.input = self._enum_matching(input, SiteIvrActionsInput.list(), "input") + if action is not None: + self.action = self._enum_matching( + action, SiteIvrActionsAction.list(), "action" + ) + if extension is not None: + self.extension = self._define_object(extension, SiteIvrActionsExtensionInfo) diff --git a/src/ring_central/models/site_ivr_actions_extension_info.py b/src/ring_central/models/site_ivr_actions_extension_info.py new file mode 100644 index 00000000..83f5b31a --- /dev/null +++ b/src/ring_central/models/site_ivr_actions_extension_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteIvrActionsExtensionInfo(BaseModel): + """Extension information + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param name: Name of an extension user, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/site_ivr_actions_extension_info_update.py b/src/ring_central/models/site_ivr_actions_extension_info_update.py new file mode 100644 index 00000000..1279189b --- /dev/null +++ b/src/ring_central/models/site_ivr_actions_extension_info_update.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteIvrActionsExtensionInfoUpdate(BaseModel): + """Extension information + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/site_ivr_actions_update.py b/src/ring_central/models/site_ivr_actions_update.py new file mode 100644 index 00000000..9dae8ad5 --- /dev/null +++ b/src/ring_central/models/site_ivr_actions_update.py @@ -0,0 +1,109 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_ivr_actions_extension_info_update import SiteIvrActionsExtensionInfoUpdate + + +class SiteIvrActionsUpdateInput(Enum): + """An enumeration representing different categories. + + :cvar STAR: "Star" + :vartype STAR: str + :cvar HASH: "Hash" + :vartype HASH: str + :cvar NOINPUT: "NoInput" + :vartype NOINPUT: str + :cvar _0: "0" + :vartype _0: str + """ + + STAR = "Star" + HASH = "Hash" + NOINPUT = "NoInput" + _0 = "0" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SiteIvrActionsUpdateInput._member_map_.values()) + ) + + +class SiteIvrActionsUpdateAction(Enum): + """An enumeration representing different categories. + + :cvar REPEAT: "Repeat" + :vartype REPEAT: str + :cvar RETURNTOROOT: "ReturnToRoot" + :vartype RETURNTOROOT: str + :cvar RETURNTOPREVIOUS: "ReturnToPrevious" + :vartype RETURNTOPREVIOUS: str + :cvar RETURNTOTOPLEVELMENU: "ReturnToTopLevelMenu" + :vartype RETURNTOTOPLEVELMENU: str + :cvar CONNECT: "Connect" + :vartype CONNECT: str + :cvar CONNECTTOOPERATOR: "ConnectToOperator" + :vartype CONNECTTOOPERATOR: str + :cvar DISCONNECT: "Disconnect" + :vartype DISCONNECT: str + :cvar DONOTHING: "DoNothing" + :vartype DONOTHING: str + """ + + REPEAT = "Repeat" + RETURNTOROOT = "ReturnToRoot" + RETURNTOPREVIOUS = "ReturnToPrevious" + RETURNTOTOPLEVELMENU = "ReturnToTopLevelMenu" + CONNECT = "Connect" + CONNECTTOOPERATOR = "ConnectToOperator" + DISCONNECT = "Disconnect" + DONOTHING = "DoNothing" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SiteIvrActionsUpdateAction._member_map_.values()) + ) + + +@JsonMap({}) +class SiteIvrActionsUpdate(BaseModel): + """Keys handling settings + + :param input: input, defaults to None + :type input: SiteIvrActionsUpdateInput, optional + :param action: Key handling action: - Repeat - repeat menu greeting, for Star and Hash only; - ReturnToRoot - return to root IVR menu, for Star and Hash only; - ReturnToPrevious - return to previous IVR menu, for Star and Hash only; - Connect - connect to specific extension, for NoInput and "0" (zero) only; - Disconnect - end call, for NoInput only. , defaults to None + :type action: SiteIvrActionsUpdateAction, optional + :param extension: Extension information, defaults to None + :type extension: SiteIvrActionsExtensionInfoUpdate, optional + """ + + def __init__( + self, + input: SiteIvrActionsUpdateInput = None, + action: SiteIvrActionsUpdateAction = None, + extension: SiteIvrActionsExtensionInfoUpdate = None, + ): + if input is not None: + self.input = self._enum_matching( + input, SiteIvrActionsUpdateInput.list(), "input" + ) + if action is not None: + self.action = self._enum_matching( + action, SiteIvrActionsUpdateAction.list(), "action" + ) + if extension is not None: + self.extension = self._define_object( + extension, SiteIvrActionsExtensionInfoUpdate + ) diff --git a/src/ring_central/models/site_ivr_settings.py b/src/ring_central/models/site_ivr_settings.py new file mode 100644 index 00000000..39da4951 --- /dev/null +++ b/src/ring_central/models/site_ivr_settings.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_ivr_top_menu import SiteIvrTopMenu +from .site_ivr_actions import SiteIvrActions + + +@JsonMap({"top_menu": "topMenu"}) +class SiteIvrSettings(BaseModel): + """SiteIvrSettings + + :param top_menu: Top IVR Menu extension. Mandatory for MultiLevel mode , defaults to None + :type top_menu: SiteIvrTopMenu, optional + :param actions: actions, defaults to None + :type actions: List[SiteIvrActions], optional + """ + + def __init__( + self, top_menu: SiteIvrTopMenu = None, actions: List[SiteIvrActions] = None + ): + if top_menu is not None: + self.top_menu = self._define_object(top_menu, SiteIvrTopMenu) + if actions is not None: + self.actions = self._define_list(actions, SiteIvrActions) diff --git a/src/ring_central/models/site_ivr_settings_update.py b/src/ring_central/models/site_ivr_settings_update.py new file mode 100644 index 00000000..870acf94 --- /dev/null +++ b/src/ring_central/models/site_ivr_settings_update.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_ivr_top_menu_update import SiteIvrTopMenuUpdate +from .site_ivr_actions_update import SiteIvrActionsUpdate + + +@JsonMap({"top_menu": "topMenu"}) +class SiteIvrSettingsUpdate(BaseModel): + """SiteIvrSettingsUpdate + + :param top_menu: Top IVR Menu extension, defaults to None + :type top_menu: SiteIvrTopMenuUpdate, optional + :param actions: actions, defaults to None + :type actions: List[SiteIvrActionsUpdate], optional + """ + + def __init__( + self, + top_menu: SiteIvrTopMenuUpdate = None, + actions: List[SiteIvrActionsUpdate] = None, + ): + if top_menu is not None: + self.top_menu = self._define_object(top_menu, SiteIvrTopMenuUpdate) + if actions is not None: + self.actions = self._define_list(actions, SiteIvrActionsUpdate) diff --git a/src/ring_central/models/site_ivr_top_menu.py b/src/ring_central/models/site_ivr_top_menu.py new file mode 100644 index 00000000..d042e434 --- /dev/null +++ b/src/ring_central/models/site_ivr_top_menu.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteIvrTopMenu(BaseModel): + """Top IVR Menu extension. Mandatory for MultiLevel mode + + + :param id_: Internal identifier of an IVR menu extension, defaults to None + :type id_: str, optional + :param uri: Link to an IVR menu extension resource, defaults to None + :type uri: str, optional + :param name: Full name of an IVR menu extension user, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/site_ivr_top_menu_update.py b/src/ring_central/models/site_ivr_top_menu_update.py new file mode 100644 index 00000000..8585a568 --- /dev/null +++ b/src/ring_central/models/site_ivr_top_menu_update.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteIvrTopMenuUpdate(BaseModel): + """Top IVR Menu extension + + :param id_: Internal identifier of an IVR menu extension , defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/site_member_info.py b/src/ring_central/models/site_member_info.py new file mode 100644 index 00000000..889ed8d1 --- /dev/null +++ b/src/ring_central/models/site_member_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber", "type_": "type"}) +class SiteMemberInfo(BaseModel): + """SiteMemberInfo + + :param id_: id_, defaults to None + :type id_: int, optional + :param uri: uri, defaults to None + :type uri: str, optional + :param extension_number: extension_number, defaults to None + :type extension_number: str, optional + :param type_: type_, defaults to None + :type type_: str, optional + :param name: name, defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + extension_number: str = None, + type_: str = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if type_ is not None: + self.type_ = type_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/site_members_bulk_update.py b/src/ring_central/models/site_members_bulk_update.py new file mode 100644 index 00000000..e6dc22f8 --- /dev/null +++ b/src/ring_central/models/site_members_bulk_update.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "removed_extension_ids": "removedExtensionIds", + "added_extension_ids": "addedExtensionIds", + } +) +class SiteMembersBulkUpdate(BaseModel): + """SiteMembersBulkUpdate + + :param removed_extension_ids: List of removed extensions, defaults to None + :type removed_extension_ids: List[str], optional + :param added_extension_ids: List of added extensions, defaults to None + :type added_extension_ids: List[str], optional + """ + + def __init__( + self, + removed_extension_ids: List[str] = None, + added_extension_ids: List[str] = None, + ): + if removed_extension_ids is not None: + self.removed_extension_ids = removed_extension_ids + if added_extension_ids is not None: + self.added_extension_ids = added_extension_ids diff --git a/src/ring_central/models/site_members_list.py b/src/ring_central/models/site_members_list.py new file mode 100644 index 00000000..cd2af42b --- /dev/null +++ b/src/ring_central/models/site_members_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_member_info import SiteMemberInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class SiteMembersList(BaseModel): + """SiteMembersList + + :param uri: Link to a site members list resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[SiteMemberInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[SiteMemberInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, SiteMemberInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/site_operator_reference.py b/src/ring_central/models/site_operator_reference.py new file mode 100644 index 00000000..8a2fc9e7 --- /dev/null +++ b/src/ring_central/models/site_operator_reference.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteOperatorReference(BaseModel): + """Site Fax/SMS recipient (operator) reference. Multi-level IVR should + be enabled + + + :param id_: Internal identifier of an operator extension, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/site_reference.py b/src/ring_central/models/site_reference.py new file mode 100644 index 00000000..968d6a22 --- /dev/null +++ b/src/ring_central/models/site_reference.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteReference(BaseModel): + """SiteReference + + :param id_: Internal identifier of a site, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/site_resource.py b/src/ring_central/models/site_resource.py new file mode 100644 index 00000000..b312c28c --- /dev/null +++ b/src/ring_central/models/site_resource.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SiteResource(BaseModel): + """Site extension information + + :param id_: Site extension identifier, defaults to None + :type id_: str, optional + :param name: Site extension name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/site_update_request.py b/src/ring_central/models/site_update_request.py new file mode 100644 index 00000000..71afba8b --- /dev/null +++ b/src/ring_central/models/site_update_request.py @@ -0,0 +1,64 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_business_address_info import ContactBusinessAddressInfo +from .regional_settings import RegionalSettings +from .operator_info import OperatorInfo + + +@JsonMap( + { + "extension_number": "extensionNumber", + "caller_id_name": "callerIdName", + "business_address": "businessAddress", + "regional_settings": "regionalSettings", + } +) +class SiteUpdateRequest(BaseModel): + """SiteUpdateRequest + + :param name: Extension user first name + :type name: str + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + :param caller_id_name: Custom name of a caller. Max number of characters is 15 (only alphabetical symbols, numbers and commas are supported) , defaults to None + :type caller_id_name: str, optional + :param email: Site extension contact email, defaults to None + :type email: str, optional + :param business_address: User's business address. The default is Company (Auto-Receptionist) settings , defaults to None + :type business_address: ContactBusinessAddressInfo, optional + :param regional_settings: Regional data (timezone, home country, language) of an extension/account. The default is Company (Auto-Receptionist) settings , defaults to None + :type regional_settings: RegionalSettings, optional + :param operator: Site Fax/SMS recipient (operator) reference. Multi-level IVR should be enabled , defaults to None + :type operator: OperatorInfo, optional + """ + + def __init__( + self, + name: str, + extension_number: str = None, + caller_id_name: str = None, + email: str = None, + business_address: ContactBusinessAddressInfo = None, + regional_settings: RegionalSettings = None, + operator: OperatorInfo = None, + ): + self.name = name + if extension_number is not None: + self.extension_number = extension_number + if caller_id_name is not None: + self.caller_id_name = caller_id_name + if email is not None: + self.email = email + if business_address is not None: + self.business_address = self._define_object( + business_address, ContactBusinessAddressInfo + ) + if regional_settings is not None: + self.regional_settings = self._define_object( + regional_settings, RegionalSettings + ) + if operator is not None: + self.operator = self._define_object(operator, OperatorInfo) diff --git a/src/ring_central/models/sites_list.py b/src/ring_central/models/sites_list.py new file mode 100644 index 00000000..d3695ab4 --- /dev/null +++ b/src/ring_central/models/sites_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .site_info import SiteInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class SitesList(BaseModel): + """SitesList + + :param uri: Link to a sites resource, defaults to None + :type uri: str, optional + :param records: records, defaults to None + :type records: List[SiteInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[SiteInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, SiteInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/sms_direction_enum.py b/src/ring_central/models/sms_direction_enum.py new file mode 100644 index 00000000..3642e606 --- /dev/null +++ b/src/ring_central/models/sms_direction_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SmsDirectionEnum(Enum): + """An enumeration representing different categories. + + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + """ + + INBOUND = "Inbound" + OUTBOUND = "Outbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SmsDirectionEnum._member_map_.values())) diff --git a/src/ring_central/models/sms_request_country_info.py b/src/ring_central/models/sms_request_country_info.py new file mode 100644 index 00000000..e8d69f6b --- /dev/null +++ b/src/ring_central/models/sms_request_country_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "iso_code": "isoCode"}) +class SmsRequestCountryInfo(BaseModel): + """Target number country information. Either `id` or `isoCode` can be specified. + + :param id_: Internal identifier of a country, defaults to None + :type id_: str, optional + :param iso_code: ISO 3166-1 alpha-2 code of a country, defaults to None + :type iso_code: str, optional + """ + + def __init__(self, id_: str = None, iso_code: str = None): + if id_ is not None: + self.id_ = id_ + if iso_code is not None: + self.iso_code = iso_code diff --git a/src/ring_central/models/sms_status_enum.py b/src/ring_central/models/sms_status_enum.py new file mode 100644 index 00000000..6a3c784c --- /dev/null +++ b/src/ring_central/models/sms_status_enum.py @@ -0,0 +1,33 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SmsStatusEnum(Enum): + """An enumeration representing different categories. + + :cvar QUEUED: "Queued" + :vartype QUEUED: str + :cvar DELIVERED: "Delivered" + :vartype DELIVERED: str + :cvar SENT: "Sent" + :vartype SENT: str + :cvar SENDINGFAILED: "SendingFailed" + :vartype SENDINGFAILED: str + :cvar DELIVERYFAILED: "DeliveryFailed" + :vartype DELIVERYFAILED: str + """ + + QUEUED = "Queued" + DELIVERED = "Delivered" + SENT = "Sent" + SENDINGFAILED = "SendingFailed" + DELIVERYFAILED = "DeliveryFailed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SmsStatusEnum._member_map_.values())) diff --git a/src/ring_central/models/soc_msg_creation_time_order.py b/src/ring_central/models/soc_msg_creation_time_order.py new file mode 100644 index 00000000..fe154756 --- /dev/null +++ b/src/ring_central/models/soc_msg_creation_time_order.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SocMsgCreationTimeOrder(Enum): + """An enumeration representing different categories. + + :cvar _CREATIONTIME: "-creationTime" + :vartype _CREATIONTIME: str + :cvar _CREATIONTIME: "+creationTime" + :vartype _CREATIONTIME: str + :cvar CREATIONTIME: "creationTime" + :vartype CREATIONTIME: str + """ + + _CREATIONTIME = "-creationTime" + _CREATIONTIME = "+creationTime" + CREATIONTIME = "creationTime" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SocMsgCreationTimeOrder._member_map_.values()) + ) diff --git a/src/ring_central/models/soc_msg_gender.py b/src/ring_central/models/soc_msg_gender.py new file mode 100644 index 00000000..77c4ff93 --- /dev/null +++ b/src/ring_central/models/soc_msg_gender.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SocMsgGender(Enum): + """An enumeration representing different categories. + + :cvar MAN: "Man" + :vartype MAN: str + :cvar WOMAN: "Woman" + :vartype WOMAN: str + """ + + MAN = "Man" + WOMAN = "Woman" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SocMsgGender._member_map_.values())) diff --git a/src/ring_central/models/sort_by.py b/src/ring_central/models/sort_by.py new file mode 100644 index 00000000..8a5f25ae --- /dev/null +++ b/src/ring_central/models/sort_by.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SortBy(Enum): + """An enumeration representing different categories. + + :cvar FIRSTNAME: "FirstName" + :vartype FIRSTNAME: str + :cvar LASTNAME: "LastName" + :vartype LASTNAME: str + :cvar COMPANY: "Company" + :vartype COMPANY: str + """ + + FIRSTNAME = "FirstName" + LASTNAME = "LastName" + COMPANY = "Company" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SortBy._member_map_.values())) diff --git a/src/ring_central/models/speaker_identification_object.py b/src/ring_central/models/speaker_identification_object.py new file mode 100644 index 00000000..7b67e2ea --- /dev/null +++ b/src/ring_central/models/speaker_identification_object.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .diarize_segment import DiarizeSegment + + +@JsonMap({}) +class SpeakerIdentificationObject(BaseModel): + """SpeakerIdentificationObject + + :param utterances: utterances + :type utterances: List[DiarizeSegment] + """ + + def __init__(self, utterances: List[DiarizeSegment]): + self.utterances = self._define_list(utterances, DiarizeSegment) diff --git a/src/ring_central/models/speaker_insights_object.py b/src/ring_central/models/speaker_insights_object.py new file mode 100644 index 00000000..dba6f139 --- /dev/null +++ b/src/ring_central/models/speaker_insights_object.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .speaker_insights_unit import SpeakerInsightsUnit + + +@JsonMap({"speaker_count": "speakerCount"}) +class SpeakerInsightsObject(BaseModel): + """SpeakerInsightsObject + + :param speaker_count: speaker_count, defaults to None + :type speaker_count: int, optional + :param insights: insights, defaults to None + :type insights: List[SpeakerInsightsUnit], optional + """ + + def __init__( + self, speaker_count: int = None, insights: List[SpeakerInsightsUnit] = None + ): + if speaker_count is not None: + self.speaker_count = speaker_count + if insights is not None: + self.insights = self._define_list(insights, SpeakerInsightsUnit) diff --git a/src/ring_central/models/speaker_insights_unit.py b/src/ring_central/models/speaker_insights_unit.py new file mode 100644 index 00000000..513f8763 --- /dev/null +++ b/src/ring_central/models/speaker_insights_unit.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .speaker_insights_values_items import SpeakerInsightsValuesItems + + +class SpeakerInsightsUnitName(Enum): + """An enumeration representing different categories. + + :cvar ENERGY: "Energy" + :vartype ENERGY: str + :cvar PACE: "Pace" + :vartype PACE: str + :cvar TALKTOLISTENRATIO: "TalkToListenRatio" + :vartype TALKTOLISTENRATIO: str + :cvar QUESTIONSASKED: "QuestionsAsked" + :vartype QUESTIONSASKED: str + """ + + ENERGY = "Energy" + PACE = "Pace" + TALKTOLISTENRATIO = "TalkToListenRatio" + QUESTIONSASKED = "QuestionsAsked" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SpeakerInsightsUnitName._member_map_.values()) + ) + + +@JsonMap({}) +class SpeakerInsightsUnit(BaseModel): + """SpeakerInsightsUnit + + :param name: name + :type name: SpeakerInsightsUnitName + :param values: values + :type values: List[SpeakerInsightsValuesItems] + """ + + def __init__( + self, name: SpeakerInsightsUnitName, values: List[SpeakerInsightsValuesItems] + ): + self.name = self._enum_matching(name, SpeakerInsightsUnitName.list(), "name") + self.values = self._define_list(values, SpeakerInsightsValuesItems) diff --git a/src/ring_central/models/speaker_insights_values_items.py b/src/ring_central/models/speaker_insights_values_items.py new file mode 100644 index 00000000..0cc3ae49 --- /dev/null +++ b/src/ring_central/models/speaker_insights_values_items.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"speaker_id": "speakerId"}) +class SpeakerInsightsValuesItems(BaseModel): + """SpeakerInsightsValuesItems + + :param speaker_id: speaker_id + :type speaker_id: str + :param value: The value corresponding to the insight for the speaker + :type value: str + """ + + def __init__(self, speaker_id: str, value: str): + self.speaker_id = speaker_id + self.value = value diff --git a/src/ring_central/models/specific_info.py b/src/ring_central/models/specific_info.py new file mode 100644 index 00000000..7629e99b --- /dev/null +++ b/src/ring_central/models/specific_info.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .data_export_task_contact_info import DataExportTaskContactInfo + + +@JsonMap({"time_from": "timeFrom", "time_to": "timeTo", "chat_ids": "chatIds"}) +class SpecificInfo(BaseModel): + """Information specified in request + + :param time_from: Starting time for data collection, defaults to None + :type time_from: str, optional + :param time_to: Ending time for data collection, defaults to None + :type time_to: str, optional + :param contacts: contacts, defaults to None + :type contacts: List[DataExportTaskContactInfo], optional + :param chat_ids: List of chats from which the data (posts, files, tasks, events, notes, etc.) will be collected, defaults to None + :type chat_ids: List[str], optional + """ + + def __init__( + self, + time_from: str = None, + time_to: str = None, + contacts: List[DataExportTaskContactInfo] = None, + chat_ids: List[str] = None, + ): + if time_from is not None: + self.time_from = time_from + if time_to is not None: + self.time_to = time_to + if contacts is not None: + self.contacts = self._define_list(contacts, DataExportTaskContactInfo) + if chat_ids is not None: + self.chat_ids = chat_ids diff --git a/src/ring_central/models/speech_context_phrases_input.py b/src/ring_central/models/speech_context_phrases_input.py new file mode 100644 index 00000000..0bd1268e --- /dev/null +++ b/src/ring_central/models/speech_context_phrases_input.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class SpeechContextPhrasesInput(BaseModel): + """SpeechContextPhrasesInput + + :param phrases: Words or Phrases to boost + :type phrases: List[str] + """ + + def __init__(self, phrases: List[str]): + self.phrases = phrases diff --git a/src/ring_central/models/status_group.py b/src/ring_central/models/status_group.py new file mode 100644 index 00000000..2f3a40d1 --- /dev/null +++ b/src/ring_central/models/status_group.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class StatusGroup(Enum): + """An enumeration representing different categories. + + :cvar MISSED: "Missed" + :vartype MISSED: str + :cvar ALL: "All" + :vartype ALL: str + """ + + MISSED = "Missed" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, StatusGroup._member_map_.values())) diff --git a/src/ring_central/models/subscription_info.py b/src/ring_central/models/subscription_info.py new file mode 100644 index 00000000..cae37605 --- /dev/null +++ b/src/ring_central/models/subscription_info.py @@ -0,0 +1,127 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .disabled_filter_info import DisabledFilterInfo +from .notification_delivery_mode import ( + NotificationDeliveryMode, + NotificationDeliveryModeGuard, +) +from .webhook_delivery_mode import WebhookDeliveryMode +from .mobile_delivery_mode import MobileDeliveryMode +from .pub_nub_delivery_mode import PubNubDeliveryMode +from .web_socket_delivery_mode import WebSocketDeliveryMode + + +class SubscriptionInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar BLACKLISTED: "Blacklisted" + :vartype BLACKLISTED: str + """ + + ACTIVE = "Active" + BLACKLISTED = "Blacklisted" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SubscriptionInfoStatus._member_map_.values()) + ) + + +@JsonMap({"blacklisted_at": "blacklistedAt"}) +class BlacklistedData(BaseModel): + """Returned if a WebHook subscription is blacklisted + + :param blacklisted_at: Time of adding subscription to a black list in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z* , defaults to None + :type blacklisted_at: str, optional + :param reason: Reason of adding subscription to a black list, defaults to None + :type reason: str, optional + """ + + def __init__(self, blacklisted_at: str = None, reason: str = None): + if blacklisted_at is not None: + self.blacklisted_at = blacklisted_at + if reason is not None: + self.reason = reason + + +@JsonMap( + { + "id_": "id", + "event_filters": "eventFilters", + "disabled_filters": "disabledFilters", + "expiration_time": "expirationTime", + "expires_in": "expiresIn", + "creation_time": "creationTime", + "delivery_mode": "deliveryMode", + "blacklisted_data": "blacklistedData", + } +) +class SubscriptionInfo(BaseModel): + """SubscriptionInfo + + :param uri: Canonical URI of a subscription resource + :type uri: str + :param id_: Internal identifier of a subscription + :type id_: str + :param event_filters: The list of event filter names corresponding to events the user is subscribed to + :type event_filters: List[str] + :param disabled_filters: The list of event filter names corresponding to events the user is not subscribed to due to certain limitations , defaults to None + :type disabled_filters: List[DisabledFilterInfo], optional + :param expiration_time: Subscription expiration time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z* + :type expiration_time: str + :param expires_in: Subscription lifetime in seconds, defaults to None + :type expires_in: int, optional + :param status: Subscription status + :type status: SubscriptionInfoStatus + :param creation_time: Subscription creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534* + :type creation_time: str + :param delivery_mode: Notification delivery transport information + :type delivery_mode: NotificationDeliveryMode + :param blacklisted_data: Returned if a WebHook subscription is blacklisted, defaults to None + :type blacklisted_data: BlacklistedData, optional + """ + + def __init__( + self, + uri: str, + id_: str, + event_filters: List[str], + expiration_time: str, + status: SubscriptionInfoStatus, + creation_time: str, + delivery_mode: NotificationDeliveryMode, + disabled_filters: List[DisabledFilterInfo] = None, + expires_in: int = None, + blacklisted_data: BlacklistedData = None, + ): + self.uri = uri + self.id_ = id_ + self.event_filters = event_filters + if disabled_filters is not None: + self.disabled_filters = self._define_list( + disabled_filters, DisabledFilterInfo + ) + self.expiration_time = expiration_time + if expires_in is not None: + self.expires_in = expires_in + self.status = self._enum_matching( + status, SubscriptionInfoStatus.list(), "status" + ) + self.creation_time = creation_time + self.delivery_mode = NotificationDeliveryModeGuard.return_one_of(delivery_mode) + if blacklisted_data is not None: + self.blacklisted_data = self._define_object( + blacklisted_data, BlacklistedData + ) diff --git a/src/ring_central/models/subscription_list_resource.py b/src/ring_central/models/subscription_list_resource.py new file mode 100644 index 00000000..0657bfd0 --- /dev/null +++ b/src/ring_central/models/subscription_list_resource.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .subscription_info import SubscriptionInfo + + +@JsonMap({}) +class SubscriptionListResource(BaseModel): + """SubscriptionListResource + + :param uri: Canonical URI of a resource + :type uri: str + :param records: records + :type records: List[SubscriptionInfo] + """ + + def __init__(self, uri: str, records: List[SubscriptionInfo]): + self.uri = uri + self.records = self._define_list(records, SubscriptionInfo) diff --git a/src/ring_central/models/summary_api_response.py b/src/ring_central/models/summary_api_response.py new file mode 100644 index 00000000..64dac943 --- /dev/null +++ b/src/ring_central/models/summary_api_response.py @@ -0,0 +1,14 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import Union +from .base import OneOfBaseModel +from .summary_output import SummaryOutput +from .cai_error_response import CaiErrorResponse + + +class SummaryApiResponseGuard(OneOfBaseModel): + class_list = {"SummaryOutput": SummaryOutput, "CaiErrorResponse": CaiErrorResponse} + + +SummaryApiResponse = Union[SummaryOutput, CaiErrorResponse] diff --git a/src/ring_central/models/summary_input.py b/src/ring_central/models/summary_input.py new file mode 100644 index 00000000..0a07ae0f --- /dev/null +++ b/src/ring_central/models/summary_input.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .summary_unit import SummaryUnit + + +class SummaryType(Enum): + """An enumeration representing different categories. + + :cvar EXTRACTIVE: "Extractive" + :vartype EXTRACTIVE: str + :cvar ABSTRACTIVESHORT: "AbstractiveShort" + :vartype ABSTRACTIVESHORT: str + :cvar ABSTRACTIVELONG: "AbstractiveLong" + :vartype ABSTRACTIVELONG: str + :cvar ABSTRACTIVEALL: "AbstractiveAll" + :vartype ABSTRACTIVEALL: str + :cvar ALL: "All" + :vartype ALL: str + """ + + EXTRACTIVE = "Extractive" + ABSTRACTIVESHORT = "AbstractiveShort" + ABSTRACTIVELONG = "AbstractiveLong" + ABSTRACTIVEALL = "AbstractiveAll" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SummaryType._member_map_.values())) + + +@JsonMap({"summary_type": "summaryType"}) +class SummaryInput(BaseModel): + """SummaryInput + + :param summary_type: Type of summary to be computed + :type summary_type: SummaryType + :param utterances: utterances + :type utterances: List[SummaryUnit] + """ + + def __init__(self, summary_type: SummaryType, utterances: List[SummaryUnit]): + self.summary_type = self._enum_matching( + summary_type, SummaryType.list(), "summary_type" + ) + self.utterances = self._define_list(utterances, SummaryUnit) diff --git a/src/ring_central/models/summary_output.py b/src/ring_central/models/summary_output.py new file mode 100644 index 00000000..148bcb45 --- /dev/null +++ b/src/ring_central/models/summary_output.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .summary_output_unit import SummaryOutputUnit + + +@JsonMap({}) +class SummaryOutput(BaseModel): + """SummaryOutput + + :param summaries: summaries, defaults to None + :type summaries: List[SummaryOutputUnit], optional + """ + + def __init__(self, summaries: List[SummaryOutputUnit] = None): + if summaries is not None: + self.summaries = self._define_list(summaries, SummaryOutputUnit) diff --git a/src/ring_central/models/summary_output_unit.py b/src/ring_central/models/summary_output_unit.py new file mode 100644 index 00000000..a0bb17b6 --- /dev/null +++ b/src/ring_central/models/summary_output_unit.py @@ -0,0 +1,56 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .summary_timings_unit import SummaryTimingsUnit + + +class SummaryOutputUnitName(Enum): + """An enumeration representing different categories. + + :cvar EXTRACTIVE: "Extractive" + :vartype EXTRACTIVE: str + :cvar ABSTRACTIVELONG: "AbstractiveLong" + :vartype ABSTRACTIVELONG: str + :cvar ABSTRACTIVESHORT: "AbstractiveShort" + :vartype ABSTRACTIVESHORT: str + :cvar ALL: "All" + :vartype ALL: str + """ + + EXTRACTIVE = "Extractive" + ABSTRACTIVELONG = "AbstractiveLong" + ABSTRACTIVESHORT = "AbstractiveShort" + ALL = "All" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SummaryOutputUnitName._member_map_.values())) + + +@JsonMap({}) +class SummaryOutputUnit(BaseModel): + """SummaryOutputUnit + + :param name: name, defaults to None + :type name: SummaryOutputUnitName, optional + :param values: Summary output units sorted by their occurrence in the conversation, defaults to None + :type values: List[SummaryTimingsUnit], optional + """ + + def __init__( + self, + name: SummaryOutputUnitName = None, + values: List[SummaryTimingsUnit] = None, + ): + if name is not None: + self.name = self._enum_matching(name, SummaryOutputUnitName.list(), "name") + if values is not None: + self.values = self._define_list(values, SummaryTimingsUnit) diff --git a/src/ring_central/models/summary_timings_unit.py b/src/ring_central/models/summary_timings_unit.py new file mode 100644 index 00000000..d1f58c5a --- /dev/null +++ b/src/ring_central/models/summary_timings_unit.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class SummaryTimingsUnit(BaseModel): + """SummaryTimingsUnit + + :param confidence: confidence, defaults to None + :type confidence: float, optional + :param value: value + :type value: str + :param start: start, defaults to None + :type start: float, optional + :param end: end, defaults to None + :type end: float, optional + """ + + def __init__( + self, + value: str, + confidence: float = None, + start: float = None, + end: float = None, + ): + if confidence is not None: + self.confidence = confidence + self.value = value + if start is not None: + self.start = start + if end is not None: + self.end = end diff --git a/src/ring_central/models/summary_unit.py b/src/ring_central/models/summary_unit.py new file mode 100644 index 00000000..9b159ba1 --- /dev/null +++ b/src/ring_central/models/summary_unit.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"speaker_id": "speakerId"}) +class SummaryUnit(BaseModel): + """SummaryUnit + + :param speaker_id: speaker_id + :type speaker_id: str + :param text: text + :type text: str + :param start: start + :type start: float + :param end: end + :type end: float + """ + + def __init__(self, speaker_id: str, text: str, start: float, end: float): + self.speaker_id = speaker_id + self.text = text + self.start = start + self.end = end diff --git a/src/ring_central/models/supervise_call_session_request.py b/src/ring_central/models/supervise_call_session_request.py new file mode 100644 index 00000000..20ad8df3 --- /dev/null +++ b/src/ring_central/models/supervise_call_session_request.py @@ -0,0 +1,98 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class SuperviseCallSessionRequestMode(Enum): + """An enumeration representing different categories. + + :cvar LISTEN: "Listen" + :vartype LISTEN: str + """ + + LISTEN = "Listen" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, SuperviseCallSessionRequestMode._member_map_.values() + ) + ) + + +class SuperviseCallSessionRequestMediaSdp(Enum): + """An enumeration representing different categories. + + :cvar SENDONLY: "sendOnly" + :vartype SENDONLY: str + :cvar SENDRECV: "sendRecv" + :vartype SENDRECV: str + """ + + SENDONLY = "sendOnly" + SENDRECV = "sendRecv" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SuperviseCallSessionRequestMediaSdp._member_map_.values(), + ) + ) + + +@JsonMap( + { + "supervisor_device_id": "supervisorDeviceId", + "agent_extension_id": "agentExtensionId", + "auto_answer": "autoAnswer", + "media_sdp": "mediaSDP", + } +) +class SuperviseCallSessionRequest(BaseModel): + """SuperviseCallSessionRequest + + :param mode: Supervising mode + :type mode: SuperviseCallSessionRequestMode + :param supervisor_device_id: Internal identifier of a supervisor's device which will be used for call session monitoring + :type supervisor_device_id: str + :param agent_extension_id: Extension identifier of the user that will be monitored, defaults to None + :type agent_extension_id: str, optional + :param auto_answer: Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call, defaults to None + :type auto_answer: bool, optional + :param media_sdp: Specifies session description protocol setting, defaults to None + :type media_sdp: SuperviseCallSessionRequestMediaSdp, optional + """ + + def __init__( + self, + mode: SuperviseCallSessionRequestMode, + supervisor_device_id: str, + agent_extension_id: str = None, + auto_answer: bool = None, + media_sdp: SuperviseCallSessionRequestMediaSdp = None, + ): + self.mode = self._enum_matching( + mode, SuperviseCallSessionRequestMode.list(), "mode" + ) + self.supervisor_device_id = supervisor_device_id + if agent_extension_id is not None: + self.agent_extension_id = agent_extension_id + if auto_answer is not None: + self.auto_answer = auto_answer + if media_sdp is not None: + self.media_sdp = self._enum_matching( + media_sdp, SuperviseCallSessionRequestMediaSdp.list(), "media_sdp" + ) diff --git a/src/ring_central/models/supervise_call_session_response.py b/src/ring_central/models/supervise_call_session_response.py new file mode 100644 index 00000000..dce9271b --- /dev/null +++ b/src/ring_central/models/supervise_call_session_response.py @@ -0,0 +1,106 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .party_info import PartyInfo +from .owner_info import OwnerInfo +from .call_status_info import CallStatusInfo + + +class SuperviseCallSessionResponseDirection(Enum): + """An enumeration representing different categories. + + :cvar OUTBOUND: "Outbound" + :vartype OUTBOUND: str + :cvar INBOUND: "Inbound" + :vartype INBOUND: str + """ + + OUTBOUND = "Outbound" + INBOUND = "Inbound" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + SuperviseCallSessionResponseDirection._member_map_.values(), + ) + ) + + +@JsonMap( + { + "from_": "from", + "id_": "id", + "account_id": "accountId", + "extension_id": "extensionId", + "stand_alone": "standAlone", + } +) +class SuperviseCallSessionResponse(BaseModel): + """SuperviseCallSessionResponse + + :param from_: from_, defaults to None + :type from_: PartyInfo, optional + :param to: to, defaults to None + :type to: PartyInfo, optional + :param direction: Direction of a call, defaults to None + :type direction: SuperviseCallSessionResponseDirection, optional + :param id_: Internal identifier of a party that monitors a call, defaults to None + :type id_: str, optional + :param account_id: Internal identifier of an account that monitors a call, defaults to None + :type account_id: str, optional + :param extension_id: Internal identifier of an extension that monitors a call, defaults to None + :type extension_id: str, optional + :param muted: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces, defaults to None + :type muted: bool, optional + :param owner: Deprecated. Information on a call owner, defaults to None + :type owner: OwnerInfo, optional + :param stand_alone: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session, defaults to None + :type stand_alone: bool, optional + :param status: Status data of a call session, defaults to None + :type status: CallStatusInfo, optional + """ + + def __init__( + self, + from_: PartyInfo = None, + to: PartyInfo = None, + direction: SuperviseCallSessionResponseDirection = None, + id_: str = None, + account_id: str = None, + extension_id: str = None, + muted: bool = None, + owner: OwnerInfo = None, + stand_alone: bool = None, + status: CallStatusInfo = None, + ): + if from_ is not None: + self.from_ = self._define_object(from_, PartyInfo) + if to is not None: + self.to = self._define_object(to, PartyInfo) + if direction is not None: + self.direction = self._enum_matching( + direction, SuperviseCallSessionResponseDirection.list(), "direction" + ) + if id_ is not None: + self.id_ = id_ + if account_id is not None: + self.account_id = account_id + if extension_id is not None: + self.extension_id = extension_id + if muted is not None: + self.muted = muted + if owner is not None: + self.owner = self._define_object(owner, OwnerInfo) + if stand_alone is not None: + self.stand_alone = stand_alone + if status is not None: + self.status = self._define_object(status, CallStatusInfo) diff --git a/src/ring_central/models/swap_device_request.py b/src/ring_central/models/swap_device_request.py new file mode 100644 index 00000000..9bdf1c9f --- /dev/null +++ b/src/ring_central/models/swap_device_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"target_device_id": "targetDeviceId"}) +class SwapDeviceRequest(BaseModel): + """Swap device request + + :param target_device_id: Internal identifier of a target device, to which the current one will be swapped, defaults to None + :type target_device_id: str, optional + """ + + def __init__(self, target_device_id: str = None): + if target_device_id is not None: + self.target_device_id = target_device_id diff --git a/src/ring_central/models/switch_info.py b/src/ring_central/models/switch_info.py new file mode 100644 index 00000000..545a6f75 --- /dev/null +++ b/src/ring_central/models/switch_info.py @@ -0,0 +1,70 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_site_info import SwitchSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard +from .emergency_location_info import EmergencyLocationInfo + + +@JsonMap( + { + "id_": "id", + "chassis_id": "chassisId", + "emergency_address": "emergencyAddress", + "emergency_location": "emergencyLocation", + } +) +class SwitchInfo(BaseModel): + """SwitchInfo + + :param uri: Link to the network switch resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a network switch, defaults to None + :type id_: str, optional + :param chassis_id: Unique identifier of a network switch, defaults to None + :type chassis_id: str, optional + :param port: Switch entity extension for better diversity. Should be used together with chassisId., defaults to None + :type port: str, optional + :param name: Name of a network switch, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: SwitchSiteInfo, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddressInfo, optional + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: EmergencyLocationInfo, optional + """ + + def __init__( + self, + uri: str = None, + id_: str = None, + chassis_id: str = None, + port: str = None, + name: str = None, + site: SwitchSiteInfo = None, + emergency_address: EmergencyAddressInfo = None, + emergency_location: EmergencyLocationInfo = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if chassis_id is not None: + self.chassis_id = chassis_id + if port is not None: + self.port = port + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, SwitchSiteInfo) + if emergency_address is not None: + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, EmergencyLocationInfo + ) diff --git a/src/ring_central/models/switch_site_info.py b/src/ring_central/models/switch_site_info.py new file mode 100644 index 00000000..9da9a6ff --- /dev/null +++ b/src/ring_central/models/switch_site_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class SwitchSiteInfo(BaseModel): + """SwitchSiteInfo + + :param id_: Internal identifier of a site. The company identifier value is 'main-site' , defaults to None + :type id_: str, optional + :param name: Name of a site, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/switch_validated.py b/src/ring_central/models/switch_validated.py new file mode 100644 index 00000000..a15ccc45 --- /dev/null +++ b/src/ring_central/models/switch_validated.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .validation_error import ValidationError + + +class SwitchValidatedStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + """ + + VALID = "Valid" + INVALID = "Invalid" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SwitchValidatedStatus._member_map_.values())) + + +@JsonMap({"id_": "id", "chassis_id": "chassisId"}) +class SwitchValidated(BaseModel): + """SwitchValidated + + :param id_: Internal identifier of a switch, defaults to None + :type id_: str, optional + :param chassis_id: Unique identifier of a network switch, defaults to None + :type chassis_id: str, optional + :param port: Switch entity extension for better diversity. Should be used together with chassisId., defaults to None + :type port: str, optional + :param status: Validation result status, defaults to None + :type status: SwitchValidatedStatus, optional + :param errors: errors, defaults to None + :type errors: List[ValidationError], optional + """ + + def __init__( + self, + id_: str = None, + chassis_id: str = None, + port: str = None, + status: SwitchValidatedStatus = None, + errors: List[ValidationError] = None, + ): + if id_ is not None: + self.id_ = id_ + if chassis_id is not None: + self.chassis_id = chassis_id + if port is not None: + self.port = port + if status is not None: + self.status = self._enum_matching( + status, SwitchValidatedStatus.list(), "status" + ) + if errors is not None: + self.errors = self._define_list(errors, ValidationError) diff --git a/src/ring_central/models/switches_list.py b/src/ring_central/models/switches_list.py new file mode 100644 index 00000000..445cf672 --- /dev/null +++ b/src/ring_central/models/switches_list.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_info import SwitchInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class SwitchesList(BaseModel): + """SwitchesList + + :param records: Switches map, defaults to None + :type records: List[SwitchInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + records: List[SwitchInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if records is not None: + self.records = self._define_list(records, SwitchInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/sync_account_call_log_sync_type.py b/src/ring_central/models/sync_account_call_log_sync_type.py new file mode 100644 index 00000000..f6d04dd9 --- /dev/null +++ b/src/ring_central/models/sync_account_call_log_sync_type.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SyncAccountCallLogSyncType(Enum): + """An enumeration representing different categories. + + :cvar FSYNC: "FSync" + :vartype FSYNC: str + :cvar ISYNC: "ISync" + :vartype ISYNC: str + """ + + FSYNC = "FSync" + ISYNC = "ISync" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SyncAccountCallLogSyncType._member_map_.values()) + ) diff --git a/src/ring_central/models/sync_address_book_sync_type.py b/src/ring_central/models/sync_address_book_sync_type.py new file mode 100644 index 00000000..61417353 --- /dev/null +++ b/src/ring_central/models/sync_address_book_sync_type.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SyncAddressBookSyncType(Enum): + """An enumeration representing different categories. + + :cvar FSYNC: "FSync" + :vartype FSYNC: str + :cvar ISYNC: "ISync" + :vartype ISYNC: str + """ + + FSYNC = "FSync" + ISYNC = "ISync" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, SyncAddressBookSyncType._member_map_.values()) + ) diff --git a/src/ring_central/models/sync_info.py b/src/ring_central/models/sync_info.py new file mode 100644 index 00000000..a46a70ef --- /dev/null +++ b/src/ring_central/models/sync_info.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class SyncInfoSyncType(Enum): + """An enumeration representing different categories. + + :cvar FSYNC: "FSync" + :vartype FSYNC: str + :cvar ISYNC: "ISync" + :vartype ISYNC: str + """ + + FSYNC = "FSync" + ISYNC = "ISync" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SyncInfoSyncType._member_map_.values())) + + +@JsonMap( + { + "sync_type": "syncType", + "sync_token": "syncToken", + "sync_time": "syncTime", + "older_records_exist": "olderRecordsExist", + } +) +class SyncInfo(BaseModel): + """SyncInfo + + :param sync_type: sync_type, defaults to None + :type sync_type: SyncInfoSyncType, optional + :param sync_token: sync_token, defaults to None + :type sync_token: str, optional + :param sync_time: sync_time, defaults to None + :type sync_time: str, optional + :param older_records_exist: older_records_exist, defaults to None + :type older_records_exist: bool, optional + """ + + def __init__( + self, + sync_type: SyncInfoSyncType = None, + sync_token: str = None, + sync_time: str = None, + older_records_exist: bool = None, + ): + if sync_type is not None: + self.sync_type = self._enum_matching( + sync_type, SyncInfoSyncType.list(), "sync_type" + ) + if sync_token is not None: + self.sync_token = sync_token + if sync_time is not None: + self.sync_time = sync_time + if older_records_exist is not None: + self.older_records_exist = older_records_exist diff --git a/src/ring_central/models/sync_info_messages.py b/src/ring_central/models/sync_info_messages.py new file mode 100644 index 00000000..c364a4dd --- /dev/null +++ b/src/ring_central/models/sync_info_messages.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .sync_type_enum import SyncTypeEnum + + +@JsonMap( + { + "sync_type": "syncType", + "sync_token": "syncToken", + "sync_time": "syncTime", + "older_records_exist": "olderRecordsExist", + } +) +class SyncInfoMessages(BaseModel): + """Sync type, token and time + + :param sync_type: Type of message synchronization request: - FSync -- full sync - ISync -- incremental sync , defaults to None + :type sync_type: SyncTypeEnum, optional + :param sync_token: Synchronization token, defaults to None + :type sync_token: str, optional + :param sync_time: Last synchronization date/time in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z , defaults to None + :type sync_time: str, optional + :param older_records_exist: older_records_exist, defaults to None + :type older_records_exist: bool, optional + """ + + def __init__( + self, + sync_type: SyncTypeEnum = None, + sync_token: str = None, + sync_time: str = None, + older_records_exist: bool = None, + ): + if sync_type is not None: + self.sync_type = self._enum_matching( + sync_type, SyncTypeEnum.list(), "sync_type" + ) + if sync_token is not None: + self.sync_token = sync_token + if sync_time is not None: + self.sync_time = sync_time + if older_records_exist is not None: + self.older_records_exist = older_records_exist diff --git a/src/ring_central/models/sync_status.py b/src/ring_central/models/sync_status.py new file mode 100644 index 00000000..4dcc71e9 --- /dev/null +++ b/src/ring_central/models/sync_status.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SyncStatus(Enum): + """An enumeration representing different categories. + + :cvar VERIFIED: "Verified" + :vartype VERIFIED: str + :cvar UPDATED: "Updated" + :vartype UPDATED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + :cvar ACTIVATIONPROCESS: "ActivationProcess" + :vartype ACTIVATIONPROCESS: str + :cvar NOTREQUIRED: "NotRequired" + :vartype NOTREQUIRED: str + :cvar UNSUPPORTED: "Unsupported" + :vartype UNSUPPORTED: str + :cvar FAILED: "Failed" + :vartype FAILED: str + """ + + VERIFIED = "Verified" + UPDATED = "Updated" + DELETED = "Deleted" + ACTIVATIONPROCESS = "ActivationProcess" + NOTREQUIRED = "NotRequired" + UNSUPPORTED = "Unsupported" + FAILED = "Failed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SyncStatus._member_map_.values())) diff --git a/src/ring_central/models/sync_type_enum.py b/src/ring_central/models/sync_type_enum.py new file mode 100644 index 00000000..6aab3a3a --- /dev/null +++ b/src/ring_central/models/sync_type_enum.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class SyncTypeEnum(Enum): + """An enumeration representing different categories. + + :cvar FSYNC: "FSync" + :vartype FSYNC: str + :cvar ISYNC: "ISync" + :vartype ISYNC: str + """ + + FSYNC = "FSync" + ISYNC = "ISync" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, SyncTypeEnum._member_map_.values())) diff --git a/src/ring_central/models/system_user_contact_info.py b/src/ring_central/models/system_user_contact_info.py new file mode 100644 index 00000000..faa99aff --- /dev/null +++ b/src/ring_central/models/system_user_contact_info.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "contact_phone": "contactPhone", + "id_": "id", + "extension_number": "extensionNumber", + } +) +class SystemUserContactInfo(BaseModel): + """SystemUserContactInfo + + :param first_name: Given name + :type first_name: str + :param last_name: Family name + :type last_name: str + :param email: Contact email + :type email: str + :param contact_phone: Phone number in e.164 format (with '+' prefix) + :type contact_phone: str + :param id_: Internal identifier of System user extension + :type id_: str + :param extension_number: Short number of an extension. Actual max length depends on system length limit for extension. + :type extension_number: str + """ + + def __init__( + self, + first_name: str, + last_name: str, + email: str, + contact_phone: str, + id_: str, + extension_number: str, + ): + self.first_name = first_name + self.last_name = last_name + self.email = email + self.contact_phone = self._pattern_matching( + contact_phone, "^\+[1-9]\d{1,14}$", "contact_phone" + ) + self.id_ = id_ + self.extension_number = self._pattern_matching( + extension_number, "^\d{3,8}$", "extension_number" + ) diff --git a/src/ring_central/models/target_service_plan_info.py b/src/ring_central/models/target_service_plan_info.py new file mode 100644 index 00000000..f6548c9e --- /dev/null +++ b/src/ring_central/models/target_service_plan_info.py @@ -0,0 +1,66 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TargetServicePlanInfoFreemiumProductType(Enum): + """An enumeration representing different categories. + + :cvar FREYJA: "Freyja" + :vartype FREYJA: str + :cvar PHOENIX: "Phoenix" + :vartype PHOENIX: str + """ + + FREYJA = "Freyja" + PHOENIX = "Phoenix" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + TargetServicePlanInfoFreemiumProductType._member_map_.values(), + ) + ) + + +@JsonMap({"id_": "id", "freemium_product_type": "freemiumProductType"}) +class TargetServicePlanInfo(BaseModel): + """Information on account target service plan + + :param id_: Internal identifier of a target service plan, defaults to None + :type id_: str, optional + :param name: Name of a target service plan, defaults to None + :type name: str, optional + :param edition: Edition of a service plan, defaults to None + :type edition: str, optional + :param freemium_product_type: freemium_product_type, defaults to None + :type freemium_product_type: TargetServicePlanInfoFreemiumProductType, optional + """ + + def __init__( + self, + id_: str = None, + name: str = None, + edition: str = None, + freemium_product_type: TargetServicePlanInfoFreemiumProductType = None, + ): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name + if edition is not None: + self.edition = edition + if freemium_product_type is not None: + self.freemium_product_type = self._enum_matching( + freemium_product_type, + TargetServicePlanInfoFreemiumProductType.list(), + "freemium_product_type", + ) diff --git a/src/ring_central/models/task_attachment.py b/src/ring_central/models/task_attachment.py new file mode 100644 index 00000000..ebf9a707 --- /dev/null +++ b/src/ring_central/models/task_attachment.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TaskAttachmentType(Enum): + """An enumeration representing different categories. + + :cvar FILE: "File" + :vartype FILE: str + """ + + FILE = "File" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TaskAttachmentType._member_map_.values())) + + +@JsonMap({"id_": "id", "type_": "type", "content_uri": "contentUri"}) +class TaskAttachment(BaseModel): + """TaskAttachment + + :param id_: File ID., defaults to None + :type id_: str, optional + :param type_: Possible value - File. Attachment type (currently, only File is possible), defaults to None + :type type_: TaskAttachmentType, optional + :param name: Name of the attached file (incl. extension name), defaults to None + :type name: str, optional + :param content_uri: URI, defaults to None + :type content_uri: str, optional + """ + + def __init__( + self, + id_: str = None, + type_: TaskAttachmentType = None, + name: str = None, + content_uri: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching(type_, TaskAttachmentType.list(), "type_") + if name is not None: + self.name = name + if content_uri is not None: + self.content_uri = content_uri diff --git a/src/ring_central/models/task_recurrence_info.py b/src/ring_central/models/task_recurrence_info.py new file mode 100644 index 00000000..6d6f5a2f --- /dev/null +++ b/src/ring_central/models/task_recurrence_info.py @@ -0,0 +1,112 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TaskRecurrenceInfoSchedule(Enum): + """An enumeration representing different categories. + + :cvar NONE: "None" + :vartype NONE: str + :cvar DAILY: "Daily" + :vartype DAILY: str + :cvar WEEKDAYS: "Weekdays" + :vartype WEEKDAYS: str + :cvar WEEKLY: "Weekly" + :vartype WEEKLY: str + :cvar MONTHLY: "Monthly" + :vartype MONTHLY: str + :cvar YEARLY: "Yearly" + :vartype YEARLY: str + """ + + NONE = "None" + DAILY = "Daily" + WEEKDAYS = "Weekdays" + WEEKLY = "Weekly" + MONTHLY = "Monthly" + YEARLY = "Yearly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TaskRecurrenceInfoSchedule._member_map_.values()) + ) + + +class TaskRecurrenceInfoEndingCondition(Enum): + """An enumeration representing different categories. + + :cvar NONE: "None" + :vartype NONE: str + :cvar COUNT: "Count" + :vartype COUNT: str + :cvar DATE: "Date" + :vartype DATE: str + """ + + NONE = "None" + COUNT = "Count" + DATE = "Date" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + TaskRecurrenceInfoEndingCondition._member_map_.values(), + ) + ) + + +@JsonMap( + { + "ending_condition": "endingCondition", + "ending_after": "endingAfter", + "ending_on": "endingOn", + } +) +class TaskRecurrenceInfo(BaseModel): + """Task information + + :param schedule: Recurrence settings of a task. None for non-periodic tasks, defaults to None + :type schedule: TaskRecurrenceInfoSchedule, optional + :param ending_condition: Ending condition of a task, defaults to None + :type ending_condition: TaskRecurrenceInfoEndingCondition, optional + :param ending_after: Count of iterations of periodic tasks, defaults to None + :type ending_after: int, optional + :param ending_on: End date of a periodic task in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, UTC time zone , defaults to None + :type ending_on: str, optional + """ + + def __init__( + self, + schedule: TaskRecurrenceInfoSchedule = None, + ending_condition: TaskRecurrenceInfoEndingCondition = None, + ending_after: int = None, + ending_on: str = None, + ): + if schedule is not None: + self.schedule = self._enum_matching( + schedule, TaskRecurrenceInfoSchedule.list(), "schedule" + ) + if ending_condition is not None: + self.ending_condition = self._enum_matching( + ending_condition, + TaskRecurrenceInfoEndingCondition.list(), + "ending_condition", + ) + if ending_after is not None: + self.ending_after = ending_after + if ending_on is not None: + self.ending_on = ending_on diff --git a/src/ring_central/models/task_result_info.py b/src/ring_central/models/task_result_info.py new file mode 100644 index 00000000..59ffe6bd --- /dev/null +++ b/src/ring_central/models/task_result_info.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_result_record import TaskResultRecord + + +@JsonMap({}) +class TaskResultInfo(BaseModel): + """Task detailed result. Returned for failed and completed tasks + + :param records: Detailed task results by elements from initial request, defaults to None + :type records: List[TaskResultRecord], optional + """ + + def __init__(self, records: List[TaskResultRecord] = None): + if records is not None: + self.records = self._define_list(records, TaskResultRecord) diff --git a/src/ring_central/models/task_result_record.py b/src/ring_central/models/task_result_record.py new file mode 100644 index 00000000..6e18e0c0 --- /dev/null +++ b/src/ring_central/models/task_result_record.py @@ -0,0 +1,48 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_result_record_errors_info import TaskResultRecordErrorsInfo + + +@JsonMap({"id_": "id", "chassis_id": "chassisId"}) +class TaskResultRecord(BaseModel): + """TaskResultRecord + + :param id_: Internal identifier of the created/updated element - wireless point or network switch, defaults to None + :type id_: str, optional + :param bssid: Unique 48-bit identifier of the wireless access point complying with MAC address conventions. Returned only for 'Wireless Points Bulk Create' tasks, defaults to None + :type bssid: str, optional + :param chassis_id: Unique identifier of a network switch. Returned only for 'Switches Bulk Create' tasks, defaults to None + :type chassis_id: str, optional + :param port: Switch entity extension for better diversity. Should be used together with chassisId., defaults to None + :type port: str, optional + :param status: Operation status, defaults to None + :type status: str, optional + :param errors: errors, defaults to None + :type errors: List[TaskResultRecordErrorsInfo], optional + """ + + def __init__( + self, + id_: str = None, + bssid: str = None, + chassis_id: str = None, + port: str = None, + status: str = None, + errors: List[TaskResultRecordErrorsInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if bssid is not None: + self.bssid = bssid + if chassis_id is not None: + self.chassis_id = chassis_id + if port is not None: + self.port = port + if status is not None: + self.status = status + if errors is not None: + self.errors = self._define_list(errors, TaskResultRecordErrorsInfo) diff --git a/src/ring_central/models/task_result_record_errors_info.py b/src/ring_central/models/task_result_record_errors_info.py new file mode 100644 index 00000000..abe80dc1 --- /dev/null +++ b/src/ring_central/models/task_result_record_errors_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_code": "errorCode", "parameter_name": "parameterName"}) +class TaskResultRecordErrorsInfo(BaseModel): + """TaskResultRecordErrorsInfo + + :param error_code: error_code, defaults to None + :type error_code: str, optional + :param message: message, defaults to None + :type message: str, optional + :param parameter_name: parameter_name, defaults to None + :type parameter_name: str, optional + :param description: description, defaults to None + :type description: str, optional + """ + + def __init__( + self, + error_code: str = None, + message: str = None, + parameter_name: str = None, + description: str = None, + ): + if error_code is not None: + self.error_code = error_code + if message is not None: + self.message = message + if parameter_name is not None: + self.parameter_name = parameter_name + if description is not None: + self.description = description diff --git a/src/ring_central/models/telephony_user_meeting_settings.py b/src/ring_central/models/telephony_user_meeting_settings.py new file mode 100644 index 00000000..cfc649fe --- /dev/null +++ b/src/ring_central/models/telephony_user_meeting_settings.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .global_dial_in_country_response import GlobalDialInCountryResponse + + +@JsonMap( + { + "third_party_audio": "thirdPartyAudio", + "audio_conference_info": "audioConferenceInfo", + "global_dial_countries": "globalDialCountries", + } +) +class TelephonyUserMeetingSettings(BaseModel): + """TelephonyUserMeetingSettings + + :param third_party_audio: ThirdParty audio option, defaults to None + :type third_party_audio: bool, optional + :param audio_conference_info: Users can join the meeting using the existing 3rd party audio configuration, defaults to None + :type audio_conference_info: bool, optional + :param global_dial_countries: global_dial_countries, defaults to None + :type global_dial_countries: List[GlobalDialInCountryResponse], optional + """ + + def __init__( + self, + third_party_audio: bool = None, + audio_conference_info: bool = None, + global_dial_countries: List[GlobalDialInCountryResponse] = None, + ): + if third_party_audio is not None: + self.third_party_audio = third_party_audio + if audio_conference_info is not None: + self.audio_conference_info = audio_conference_info + if global_dial_countries is not None: + self.global_dial_countries = self._define_list( + global_dial_countries, GlobalDialInCountryResponse + ) diff --git a/src/ring_central/models/template_info.py b/src/ring_central/models/template_info.py new file mode 100644 index 00000000..2c43b380 --- /dev/null +++ b/src/ring_central/models/template_info.py @@ -0,0 +1,16 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class TemplateInfo(BaseModel): + """Text message template information + + :param text: Text of the message template. Maximum length is 1000 symbols (2-byte UTF-16 encoded). If a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, thus limiting the maximum message length up to 500 symbols + :type text: str + """ + + def __init__(self, text: str): + self.text = text diff --git a/src/ring_central/models/temporary_number_info.py b/src/ring_central/models/temporary_number_info.py new file mode 100644 index 00000000..c225062d --- /dev/null +++ b/src/ring_central/models/temporary_number_info.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "phone_number": "phoneNumber"}) +class TemporaryNumberInfo(BaseModel): + """Temporary phone number, if any. Returned for phone numbers in `Pending` porting status only + + + :param id_: Temporary phone number identifier, defaults to None + :type id_: str, optional + :param phone_number: Temporary phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) (with '+' sign) format , defaults to None + :type phone_number: str, optional + """ + + def __init__(self, id_: str = None, phone_number: str = None): + if id_ is not None: + self.id_ = id_ + if phone_number is not None: + self.phone_number = phone_number diff --git a/src/ring_central/models/time_interval.py b/src/ring_central/models/time_interval.py new file mode 100644 index 00000000..701147e1 --- /dev/null +++ b/src/ring_central/models/time_interval.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"from_": "from"}) +class TimeInterval(BaseModel): + """TimeInterval + + :param from_: Time in format hh:mm, defaults to None + :type from_: str, optional + :param to: Time in format hh:mm, defaults to None + :type to: str, optional + """ + + def __init__(self, from_: str = None, to: str = None): + if from_ is not None: + self.from_ = from_ + if to is not None: + self.to = to diff --git a/src/ring_central/models/time_range.py b/src/ring_central/models/time_range.py new file mode 100644 index 00000000..30ab6c07 --- /dev/null +++ b/src/ring_central/models/time_range.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"time_from": "timeFrom", "time_to": "timeTo"}) +class TimeRange(BaseModel): + """Time range for the request + + :param time_from: The start date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z + :type time_from: str + :param time_to: The end date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z + :type time_to: str + """ + + def __init__(self, time_from: str, time_to: str): + self.time_from = time_from + self.time_to = time_to diff --git a/src/ring_central/models/time_settings.py b/src/ring_central/models/time_settings.py new file mode 100644 index 00000000..716c480a --- /dev/null +++ b/src/ring_central/models/time_settings.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .time_range import TimeRange +from .advanced_time_settings import AdvancedTimeSettings + + +@JsonMap( + { + "time_zone": "timeZone", + "time_range": "timeRange", + "advanced_time_settings": "advancedTimeSettings", + } +) +class TimeSettings(BaseModel): + """Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive + + :param time_zone: Name of the timezone that will be used for `includeDays` and `includeHours` filters and aggregation intervals. For example 'America/Los_Angeles', 'Europe/Zurich'. See also *[Time Zones](https://www.iana.org/time-zones)*. Value in this field doesn't affect interpretation of time in `timeRange`, as it already includes offset from UTC + :type time_zone: str + :param time_range: Time range for the request + :type time_range: TimeRange + :param advanced_time_settings: Allows more granular control over time included in the report, defaults to None + :type advanced_time_settings: AdvancedTimeSettings, optional + """ + + def __init__( + self, + time_zone: str, + time_range: TimeRange, + advanced_time_settings: AdvancedTimeSettings = None, + ): + self.time_zone = time_zone + self.time_range = self._define_object(time_range, TimeRange) + if advanced_time_settings is not None: + self.advanced_time_settings = self._define_object( + advanced_time_settings, AdvancedTimeSettings + ) diff --git a/src/ring_central/models/time_spent_filter.py b/src/ring_central/models/time_spent_filter.py new file mode 100644 index 00000000..6ece3a47 --- /dev/null +++ b/src/ring_central/models/time_spent_filter.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"min_seconds": "minSeconds", "max_seconds": "maxSeconds"}) +class TimeSpentFilter(BaseModel): + """Filtering of calls based on the time spent by specified mailbox(es) on call + + :param min_seconds: Minimum duration in seconds, defaults to None + :type min_seconds: int, optional + :param max_seconds: Maximum duration in seconds, defaults to None + :type max_seconds: int, optional + """ + + def __init__(self, min_seconds: int = None, max_seconds: int = None): + if min_seconds is not None: + self.min_seconds = min_seconds + if max_seconds is not None: + self.max_seconds = max_seconds diff --git a/src/ring_central/models/timeline_request.py b/src/ring_central/models/timeline_request.py new file mode 100644 index 00000000..d76089da --- /dev/null +++ b/src/ring_central/models/timeline_request.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .grouping import Grouping, GroupingGuard +from .direct_grouping import DirectGrouping +from .grouping_by_members import GroupingByMembers +from .time_settings import TimeSettings +from .call_filters import CallFilters +from .timeline_response_options import TimelineResponseOptions + + +@JsonMap( + { + "time_settings": "timeSettings", + "call_filters": "callFilters", + "response_options": "responseOptions", + } +) +class TimelineRequest(BaseModel): + """TimelineRequest + + :param grouping: This field specifies the dimensions by which the response should be grouped and specific keys to narrow the response. See also [Call Aggregate reports](https://developers.ringcentral.com/guide/analytics/aggregate) or [Call Timeline reports](https://developers.ringcentral.com/guide/analytics/timeline) pages in the developer guide for more information + :type grouping: Grouping + :param time_settings: Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive + :type time_settings: TimeSettings + :param call_filters: Optional filters that limit the scope of calls (joined via AND), defaults to None + :type call_filters: CallFilters, optional + :param response_options: Counters and timers options for calls breakdown + :type response_options: TimelineResponseOptions + """ + + def __init__( + self, + grouping: Grouping, + time_settings: TimeSettings, + response_options: TimelineResponseOptions, + call_filters: CallFilters = None, + ): + self.grouping = GroupingGuard.return_one_of(grouping) + self.time_settings = self._define_object(time_settings, TimeSettings) + if call_filters is not None: + self.call_filters = self._define_object(call_filters, CallFilters) + self.response_options = self._define_object( + response_options, TimelineResponseOptions + ) diff --git a/src/ring_central/models/timeline_response.py b/src/ring_central/models/timeline_response.py new file mode 100644 index 00000000..8009ed2a --- /dev/null +++ b/src/ring_central/models/timeline_response.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .response_paging import ResponsePaging +from .timeline_response_data import TimelineResponseData + + +@JsonMap({}) +class TimelineResponse(BaseModel): + """TimelineResponse + + :param paging: Paging information + :type paging: ResponsePaging + :param data: A list of time-value points of call data as per the grouping and filtering options specified in the request + :type data: TimelineResponseData + """ + + def __init__(self, paging: ResponsePaging, data: TimelineResponseData): + self.paging = self._define_object(paging, ResponsePaging) + self.data = self._define_object(data, TimelineResponseData) diff --git a/src/ring_central/models/timeline_response_data.py b/src/ring_central/models/timeline_response_data.py new file mode 100644 index 00000000..439c96be --- /dev/null +++ b/src/ring_central/models/timeline_response_data.py @@ -0,0 +1,28 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .grouping_options import GroupingOptions +from .timeline_response_record import TimelineResponseRecord + + +@JsonMap({"grouped_by": "groupedBy"}) +class TimelineResponseData(BaseModel): + """A list of time-value points of call data as per the grouping and filtering options specified in the request + + :param grouped_by: The selected grouping option + :type grouped_by: GroupingOptions + :param records: List of call data as per the grouping and filtering options specified in the request, defaults to None + :type records: List[TimelineResponseRecord], optional + """ + + def __init__( + self, grouped_by: GroupingOptions, records: List[TimelineResponseRecord] = None + ): + self.grouped_by = self._enum_matching( + grouped_by, GroupingOptions.list(), "grouped_by" + ) + if records is not None: + self.records = self._define_list(records, TimelineResponseRecord) diff --git a/src/ring_central/models/timeline_response_options.py b/src/ring_central/models/timeline_response_options.py new file mode 100644 index 00000000..bbd35b4d --- /dev/null +++ b/src/ring_central/models/timeline_response_options.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .timeline_response_options_counters import TimelineResponseOptionsCounters +from .timeline_response_options_timers import TimelineResponseOptionsTimers + + +@JsonMap({}) +class TimelineResponseOptions(BaseModel): + """Counters and timers options for calls breakdown + + :param counters: Options for selecting breakdown for calls count, defaults to None + :type counters: TimelineResponseOptionsCounters, optional + :param timers: Options for selecting breakdown for calls duration, defaults to None + :type timers: TimelineResponseOptionsTimers, optional + """ + + def __init__( + self, + counters: TimelineResponseOptionsCounters = None, + timers: TimelineResponseOptionsTimers = None, + ): + if counters is not None: + self.counters = self._define_object( + counters, TimelineResponseOptionsCounters + ) + if timers is not None: + self.timers = self._define_object(timers, TimelineResponseOptionsTimers) diff --git a/src/ring_central/models/timeline_response_options_counters.py b/src/ring_central/models/timeline_response_options_counters.py new file mode 100644 index 00000000..62d89fc9 --- /dev/null +++ b/src/ring_central/models/timeline_response_options_counters.py @@ -0,0 +1,84 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "all_calls": "allCalls", + "calls_by_direction": "callsByDirection", + "calls_by_origin": "callsByOrigin", + "calls_by_response": "callsByResponse", + "calls_segments": "callsSegments", + "calls_by_result": "callsByResult", + "calls_by_company_hours": "callsByCompanyHours", + "calls_by_queue_sla": "callsByQueueSla", + "calls_by_actions": "callsByActions", + "calls_by_type": "callsByType", + "queue_opportunities": "queueOpportunities", + } +) +class TimelineResponseOptionsCounters(BaseModel): + """Options for selecting breakdown for calls count + + :param all_calls: Include data for total calls count, defaults to None + :type all_calls: bool, optional + :param calls_by_direction: Include breakdown of calls count by direction (Inbound, Outbound), defaults to None + :type calls_by_direction: bool, optional + :param calls_by_origin: Include breakdown of calls count by origin (Internal, External), defaults to None + :type calls_by_origin: bool, optional + :param calls_by_response: Include breakdown of calls count by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_by_response: bool, optional + :param calls_segments: Include breakdown of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments: bool, optional + :param calls_by_result: Include breakdown of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_by_result: bool, optional + :param calls_by_company_hours: Include breakdown of calls count by company hours (BusinessHours, AfterHours), defaults to None + :type calls_by_company_hours: bool, optional + :param calls_by_queue_sla: Include breakdown of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping, defaults to None + :type calls_by_queue_sla: bool, optional + :param calls_by_actions: Include breakdown of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer), defaults to None + :type calls_by_actions: bool, optional + :param calls_by_type: Include breakdown of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound), defaults to None + :type calls_by_type: bool, optional + :param queue_opportunities: Include breakdown of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External), defaults to None + :type queue_opportunities: bool, optional + """ + + def __init__( + self, + all_calls: bool = None, + calls_by_direction: bool = None, + calls_by_origin: bool = None, + calls_by_response: bool = None, + calls_segments: bool = None, + calls_by_result: bool = None, + calls_by_company_hours: bool = None, + calls_by_queue_sla: bool = None, + calls_by_actions: bool = None, + calls_by_type: bool = None, + queue_opportunities: bool = None, + ): + if all_calls is not None: + self.all_calls = all_calls + if calls_by_direction is not None: + self.calls_by_direction = calls_by_direction + if calls_by_origin is not None: + self.calls_by_origin = calls_by_origin + if calls_by_response is not None: + self.calls_by_response = calls_by_response + if calls_segments is not None: + self.calls_segments = calls_segments + if calls_by_result is not None: + self.calls_by_result = calls_by_result + if calls_by_company_hours is not None: + self.calls_by_company_hours = calls_by_company_hours + if calls_by_queue_sla is not None: + self.calls_by_queue_sla = calls_by_queue_sla + if calls_by_actions is not None: + self.calls_by_actions = calls_by_actions + if calls_by_type is not None: + self.calls_by_type = calls_by_type + if queue_opportunities is not None: + self.queue_opportunities = queue_opportunities diff --git a/src/ring_central/models/timeline_response_options_timers.py b/src/ring_central/models/timeline_response_options_timers.py new file mode 100644 index 00000000..efcce6cc --- /dev/null +++ b/src/ring_central/models/timeline_response_options_timers.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "all_calls_duration": "allCallsDuration", + "calls_duration_by_direction": "callsDurationByDirection", + "calls_duration_by_origin": "callsDurationByOrigin", + "calls_duration_by_response": "callsDurationByResponse", + "calls_segments_duration": "callsSegmentsDuration", + "calls_duration_by_result": "callsDurationByResult", + "calls_duration_by_company_hours": "callsDurationByCompanyHours", + "calls_duration_by_queue_sla": "callsDurationByQueueSla", + "calls_duration_by_type": "callsDurationByType", + } +) +class TimelineResponseOptionsTimers(BaseModel): + """Options for selecting breakdown for calls duration + + :param all_calls_duration: Include data for all calls duration, defaults to None + :type all_calls_duration: bool, optional + :param calls_duration_by_direction: Include breakdown of calls duration by direction (Inbound, Outbound), defaults to None + :type calls_duration_by_direction: bool, optional + :param calls_duration_by_origin: Include breakdown of calls duration by origin (Internal, External), defaults to None + :type calls_duration_by_origin: bool, optional + :param calls_duration_by_response: Include breakdown of calls duration by response (Answered, NotAnswered, Connected, NotConnected), defaults to None + :type calls_duration_by_response: bool, optional + :param calls_segments_duration: Include breakdown of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup), defaults to None + :type calls_segments_duration: bool, optional + :param calls_duration_by_result: Include breakdown of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted), defaults to None + :type calls_duration_by_result: bool, optional + :param calls_duration_by_company_hours: Include breakdown of calls duration by company hours (BusinessHours, AfterHours), defaults to None + :type calls_duration_by_company_hours: bool, optional + :param calls_duration_by_queue_sla: Include breakdown of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping, defaults to None + :type calls_duration_by_queue_sla: bool, optional + :param calls_duration_by_type: Include breakdown of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound), defaults to None + :type calls_duration_by_type: bool, optional + """ + + def __init__( + self, + all_calls_duration: bool = None, + calls_duration_by_direction: bool = None, + calls_duration_by_origin: bool = None, + calls_duration_by_response: bool = None, + calls_segments_duration: bool = None, + calls_duration_by_result: bool = None, + calls_duration_by_company_hours: bool = None, + calls_duration_by_queue_sla: bool = None, + calls_duration_by_type: bool = None, + ): + if all_calls_duration is not None: + self.all_calls_duration = all_calls_duration + if calls_duration_by_direction is not None: + self.calls_duration_by_direction = calls_duration_by_direction + if calls_duration_by_origin is not None: + self.calls_duration_by_origin = calls_duration_by_origin + if calls_duration_by_response is not None: + self.calls_duration_by_response = calls_duration_by_response + if calls_segments_duration is not None: + self.calls_segments_duration = calls_segments_duration + if calls_duration_by_result is not None: + self.calls_duration_by_result = calls_duration_by_result + if calls_duration_by_company_hours is not None: + self.calls_duration_by_company_hours = calls_duration_by_company_hours + if calls_duration_by_queue_sla is not None: + self.calls_duration_by_queue_sla = calls_duration_by_queue_sla + if calls_duration_by_type is not None: + self.calls_duration_by_type = calls_duration_by_type diff --git a/src/ring_central/models/timeline_response_point.py b/src/ring_central/models/timeline_response_point.py new file mode 100644 index 00000000..60699dd0 --- /dev/null +++ b/src/ring_central/models/timeline_response_point.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .calls_timers import CallsTimers +from .calls_counters import CallsCounters + + +@JsonMap({}) +class TimelineResponsePoint(BaseModel): + """TimelineResponsePoint + + :param time: Time point in RFC 3339 format + :type time: str + :param timers: Call length data for the specified grouping, defaults to None + :type timers: CallsTimers, optional + :param counters: Call volume data for the specified grouping, defaults to None + :type counters: CallsCounters, optional + """ + + def __init__( + self, time: str, timers: CallsTimers = None, counters: CallsCounters = None + ): + self.time = time + if timers is not None: + self.timers = self._define_object(timers, CallsTimers) + if counters is not None: + self.counters = self._define_object(counters, CallsCounters) diff --git a/src/ring_central/models/timeline_response_record.py b/src/ring_central/models/timeline_response_record.py new file mode 100644 index 00000000..d5a12a67 --- /dev/null +++ b/src/ring_central/models/timeline_response_record.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .key_info import KeyInfo +from .timeline_response_point import TimelineResponsePoint + + +@JsonMap({}) +class TimelineResponseRecord(BaseModel): + """TimelineResponseRecord + + :param key: Grouping key + :type key: str + :param info: Additional info about the key, defaults to None + :type info: KeyInfo, optional + :param points: List of requested call data time-value points, defaults to None + :type points: List[TimelineResponsePoint], optional + """ + + def __init__( + self, key: str, info: KeyInfo = None, points: List[TimelineResponsePoint] = None + ): + self.key = key + if info is not None: + self.info = self._define_object(info, KeyInfo) + if points is not None: + self.points = self._define_list(points, TimelineResponsePoint) diff --git a/src/ring_central/models/timezone_info.py b/src/ring_central/models/timezone_info.py new file mode 100644 index 00000000..faa09288 --- /dev/null +++ b/src/ring_central/models/timezone_info.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TimezoneInfo(BaseModel): + """Extension timezone information + + :param id_: Internal identifier of a timezone, defaults to None + :type id_: str, optional + :param uri: Canonical URI of a timezone, defaults to None + :type uri: str, optional + :param name: Short name of a timezone, defaults to None + :type name: str, optional + :param description: Meaningful description of the timezone, defaults to None + :type description: str, optional + :param bias: bias, defaults to None + :type bias: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + description: str = None, + bias: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if description is not None: + self.description = description + if bias is not None: + self.bias = bias diff --git a/src/ring_central/models/tm_add_file_request.py b/src/ring_central/models/tm_add_file_request.py new file mode 100644 index 00000000..a3cb2b6f --- /dev/null +++ b/src/ring_central/models/tm_add_file_request.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "content_uri": "contentUri"}) +class TmAddFileRequest(BaseModel): + """TmAddFileRequest + + :param id_: Internal identifier of a file + :type id_: str + :param content_uri: Link to binary content + :type content_uri: str + :param name: Name of a file, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str, content_uri: str, name: str = None): + self.id_ = id_ + self.content_uri = content_uri + if name is not None: + self.name = name diff --git a/src/ring_central/models/tm_add_team_members_request.py b/src/ring_central/models/tm_add_team_members_request.py new file mode 100644 index 00000000..77730363 --- /dev/null +++ b/src/ring_central/models/tm_add_team_members_request.py @@ -0,0 +1,34 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TmAddTeamMembersRequestMembers(BaseModel): + """Conversation is opened + + :param id_: Internal identifier of a person, defaults to None + :type id_: str, optional + :param email: Email of a person, defaults to None + :type email: str, optional + """ + + def __init__(self, id_: str = None, email: str = None): + if id_ is not None: + self.id_ = id_ + if email is not None: + self.email = email + + +@JsonMap({}) +class TmAddTeamMembersRequest(BaseModel): + """TmAddTeamMembersRequest + + :param members: Identifier(s) of chat member(s) + :type members: List[TmAddTeamMembersRequestMembers] + """ + + def __init__(self, members: List[TmAddTeamMembersRequestMembers]): + self.members = self._define_list(members, TmAddTeamMembersRequestMembers) diff --git a/src/ring_central/models/tm_attachment_author_info.py b/src/ring_central/models/tm_attachment_author_info.py new file mode 100644 index 00000000..df798ad3 --- /dev/null +++ b/src/ring_central/models/tm_attachment_author_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"icon_uri": "iconUri"}) +class TmAttachmentAuthorInfo(BaseModel): + """TmAttachmentAuthorInfo + + :param name: Name of a message author, defaults to None + :type name: str, optional + :param uri: Link to an author's name, defaults to None + :type uri: str, optional + :param icon_uri: Link to an image displayed to the left of an author's name; sized 82x82px, defaults to None + :type icon_uri: str, optional + """ + + def __init__(self, name: str = None, uri: str = None, icon_uri: str = None): + if name is not None: + self.name = name + if uri is not None: + self.uri = uri + if icon_uri is not None: + self.icon_uri = icon_uri diff --git a/src/ring_central/models/tm_attachment_fields_info.py b/src/ring_central/models/tm_attachment_fields_info.py new file mode 100644 index 00000000..fc706c63 --- /dev/null +++ b/src/ring_central/models/tm_attachment_fields_info.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Style(Enum): + """An enumeration representing different categories. + + :cvar SHORT: "Short" + :vartype SHORT: str + :cvar LONG: "Long" + :vartype LONG: str + """ + + SHORT = "Short" + LONG = "Long" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Style._member_map_.values())) + + +@JsonMap({}) +class TmAttachmentFieldsInfo(BaseModel): + """TmAttachmentFieldsInfo + + :param title: Title of an individual field, defaults to None + :type title: str, optional + :param value: Value of an individual field (supports Markdown), defaults to None + :type value: str, optional + :param style: Style of width span applied to a field, defaults to None + :type style: Style, optional + """ + + def __init__(self, title: str = None, value: str = None, style: Style = None): + if title is not None: + self.title = title + if value is not None: + self.value = value + if style is not None: + self.style = self._enum_matching(style, Style.list(), "style") diff --git a/src/ring_central/models/tm_attachment_footnote_info.py b/src/ring_central/models/tm_attachment_footnote_info.py new file mode 100644 index 00000000..291347c8 --- /dev/null +++ b/src/ring_central/models/tm_attachment_footnote_info.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"icon_uri": "iconUri"}) +class TmAttachmentFootnoteInfo(BaseModel): + """TmAttachmentFootnoteInfo + + :param text: Text of a footer, defaults to None + :type text: str, optional + :param icon_uri: Link to an icon displayed to the left of a footer; sized 32x32px, defaults to None + :type icon_uri: str, optional + :param time: Message creation datetime in ISO 8601 format including timezone, defaults to None + :type time: str, optional + """ + + def __init__(self, text: str = None, icon_uri: str = None, time: str = None): + if text is not None: + self.text = text + if icon_uri is not None: + self.icon_uri = icon_uri + if time is not None: + self.time = time diff --git a/src/ring_central/models/tm_attachment_info.py b/src/ring_central/models/tm_attachment_info.py new file mode 100644 index 00000000..5b290a3d --- /dev/null +++ b/src/ring_central/models/tm_attachment_info.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TmAttachmentInfoType(Enum): + """An enumeration representing different categories. + + :cvar FILE: "File" + :vartype FILE: str + :cvar NOTE: "Note" + :vartype NOTE: str + :cvar EVENT: "Event" + :vartype EVENT: str + :cvar CARD: "Card" + :vartype CARD: str + """ + + FILE = "File" + NOTE = "Note" + EVENT = "Event" + CARD = "Card" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmAttachmentInfoType._member_map_.values())) + + +@JsonMap({"id_": "id", "type_": "type"}) +class TmAttachmentInfo(BaseModel): + """TmAttachmentInfo + + :param id_: Internal identifier of an attachment, defaults to None + :type id_: str, optional + :param type_: Type of an attachment, defaults to None + :type type_: TmAttachmentInfoType, optional + """ + + def __init__(self, id_: str = None, type_: TmAttachmentInfoType = None): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, TmAttachmentInfoType.list(), "type_" + ) diff --git a/src/ring_central/models/tm_chat_info.py b/src/ring_central/models/tm_chat_info.py new file mode 100644 index 00000000..04be3192 --- /dev/null +++ b/src/ring_central/models/tm_chat_info.py @@ -0,0 +1,122 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_chat_member_info import TmChatMemberInfo + + +class TmChatInfoType(Enum): + """An enumeration representing different categories. + + :cvar EVERYONE: "Everyone" + :vartype EVERYONE: str + :cvar TEAM: "Team" + :vartype TEAM: str + :cvar GROUP: "Group" + :vartype GROUP: str + :cvar DIRECT: "Direct" + :vartype DIRECT: str + :cvar PERSONAL: "Personal" + :vartype PERSONAL: str + """ + + EVERYONE = "Everyone" + TEAM = "Team" + GROUP = "Group" + DIRECT = "Direct" + PERSONAL = "Personal" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmChatInfoType._member_map_.values())) + + +class TmChatInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar ARCHIVED: "Archived" + :vartype ARCHIVED: str + """ + + ACTIVE = "Active" + ARCHIVED = "Archived" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmChatInfoStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmChatInfo(BaseModel): + """TmChatInfo + + :param id_: Internal identifier of a chat, defaults to None + :type id_: str, optional + :param type_: Type of chat, defaults to None + :type type_: TmChatInfoType, optional + :param public: For 'Team' chat type only. Team access level., defaults to None + :type public: bool, optional + :param name: For 'Team','Everyone' chats types only. Chat name., defaults to None + :type name: str, optional + :param description: For 'Team','Everyone' chats types only. Chat description., defaults to None + :type description: str, optional + :param status: For 'Team' chat type only. Team status., defaults to None + :type status: TmChatInfoStatus, optional + :param creation_time: Chat creation datetime in ISO 8601 format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Chat last change datetime in ISO 8601 format, defaults to None + :type last_modified_time: str, optional + :param members: members, defaults to None + :type members: List[TmChatMemberInfo], optional + """ + + def __init__( + self, + id_: str = None, + type_: TmChatInfoType = None, + public: bool = None, + name: str = None, + description: str = None, + status: TmChatInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + members: List[TmChatMemberInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching(type_, TmChatInfoType.list(), "type_") + if public is not None: + self.public = public + if name is not None: + self.name = name + if description is not None: + self.description = description + if status is not None: + self.status = self._enum_matching(status, TmChatInfoStatus.list(), "status") + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if members is not None: + self.members = self._define_list(members, TmChatMemberInfo) diff --git a/src/ring_central/models/tm_chat_list.py b/src/ring_central/models/tm_chat_list.py new file mode 100644 index 00000000..ee974f6a --- /dev/null +++ b/src/ring_central/models/tm_chat_list.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_chat_info import TmChatInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmChatList(BaseModel): + """TmChatList + + :param records: List of chats + :type records: List[TmChatInfo] + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__(self, records: List[TmChatInfo], navigation: TmNavigationInfo = None): + self.records = self._define_list(records, TmChatInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_chat_list_without_navigation.py b/src/ring_central/models/tm_chat_list_without_navigation.py new file mode 100644 index 00000000..2c77b409 --- /dev/null +++ b/src/ring_central/models/tm_chat_list_without_navigation.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_chat_info import TmChatInfo + + +@JsonMap({}) +class TmChatListWithoutNavigation(BaseModel): + """TmChatListWithoutNavigation + + :param records: List of chats + :type records: List[TmChatInfo] + """ + + def __init__(self, records: List[TmChatInfo]): + self.records = self._define_list(records, TmChatInfo) diff --git a/src/ring_central/models/tm_chat_member_info.py b/src/ring_central/models/tm_chat_member_info.py new file mode 100644 index 00000000..4d7d47de --- /dev/null +++ b/src/ring_central/models/tm_chat_member_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TmChatMemberInfo(BaseModel): + """TmChatMemberInfo + + :param id_: Internal identifier of a user, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/tm_company_info.py b/src/ring_central/models/tm_company_info.py new file mode 100644 index 00000000..20d2ad87 --- /dev/null +++ b/src/ring_central/models/tm_company_info.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmCompanyInfo(BaseModel): + """TmCompanyInfo + + :param id_: Internal identifier of a company (RingCentral account ID) + :type id_: str + :param name: Name of a company, defaults to None + :type name: str, optional + :param domain: Domain name of a company, defaults to None + :type domain: str, optional + :param creation_time: Datetime of creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + :type creation_time: str + :param last_modified_time: Datetime of last modification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + :type last_modified_time: str + """ + + def __init__( + self, + id_: str, + creation_time: str, + last_modified_time: str, + name: str = None, + domain: str = None, + ): + self.id_ = id_ + if name is not None: + self.name = name + if domain is not None: + self.domain = domain + self.creation_time = creation_time + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/tm_complete_task_request.py b/src/ring_central/models/tm_complete_task_request.py new file mode 100644 index 00000000..952fc8ec --- /dev/null +++ b/src/ring_central/models/tm_complete_task_request.py @@ -0,0 +1,72 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TmCompleteTaskRequestStatus(Enum): + """An enumeration representing different categories. + + :cvar INCOMPLETE: "Incomplete" + :vartype INCOMPLETE: str + :cvar COMPLETE: "Complete" + :vartype COMPLETE: str + """ + + INCOMPLETE = "Incomplete" + COMPLETE = "Complete" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmCompleteTaskRequestStatus._member_map_.values()) + ) + + +@JsonMap({"id_": "id"}) +class TmCompleteTaskRequestAssignees(BaseModel): + """TmCompleteTaskRequestAssignees + + :param id_: Internal identifier of an assignee, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +@JsonMap({"completeness_percentage": "completenessPercentage"}) +class TmCompleteTaskRequest(BaseModel): + """TmCompleteTaskRequest + + :param status: Completeness status, defaults to None + :type status: TmCompleteTaskRequestStatus, optional + :param assignees: assignees, defaults to None + :type assignees: List[TmCompleteTaskRequestAssignees], optional + :param completeness_percentage: completeness_percentage, defaults to None + :type completeness_percentage: int, optional + """ + + def __init__( + self, + status: TmCompleteTaskRequestStatus = None, + assignees: List[TmCompleteTaskRequestAssignees] = None, + completeness_percentage: int = None, + ): + if status is not None: + self.status = self._enum_matching( + status, TmCompleteTaskRequestStatus.list(), "status" + ) + if assignees is not None: + self.assignees = self._define_list( + assignees, TmCompleteTaskRequestAssignees + ) + if completeness_percentage is not None: + self.completeness_percentage = completeness_percentage diff --git a/src/ring_central/models/tm_conversation_info.py b/src/ring_central/models/tm_conversation_info.py new file mode 100644 index 00000000..3fbb6121 --- /dev/null +++ b/src/ring_central/models/tm_conversation_info.py @@ -0,0 +1,79 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_chat_member_info import TmChatMemberInfo + + +class TmConversationInfoType(Enum): + """An enumeration representing different categories. + + :cvar DIRECT: "Direct" + :vartype DIRECT: str + :cvar PERSONAL: "Personal" + :vartype PERSONAL: str + :cvar GROUP: "Group" + :vartype GROUP: str + """ + + DIRECT = "Direct" + PERSONAL = "Personal" + GROUP = "Group" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmConversationInfoType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmConversationInfo(BaseModel): + """TmConversationInfo + + :param id_: Internal identifier of a conversation, defaults to None + :type id_: str, optional + :param type_: Type of conversation, defaults to None + :type type_: TmConversationInfoType, optional + :param creation_time: Conversation creation datetime in ISO 8601 format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Conversation last change datetime in ISO 8601 format, defaults to None + :type last_modified_time: str, optional + :param members: members, defaults to None + :type members: List[TmChatMemberInfo], optional + """ + + def __init__( + self, + id_: str = None, + type_: TmConversationInfoType = None, + creation_time: str = None, + last_modified_time: str = None, + members: List[TmChatMemberInfo] = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, TmConversationInfoType.list(), "type_" + ) + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if members is not None: + self.members = self._define_list(members, TmChatMemberInfo) diff --git a/src/ring_central/models/tm_conversation_list.py b/src/ring_central/models/tm_conversation_list.py new file mode 100644 index 00000000..90da1469 --- /dev/null +++ b/src/ring_central/models/tm_conversation_list.py @@ -0,0 +1,26 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_conversation_info import TmConversationInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmConversationList(BaseModel): + """TmConversationList + + :param records: List of conversations + :type records: List[TmConversationInfo] + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__( + self, records: List[TmConversationInfo], navigation: TmNavigationInfo = None + ): + self.records = self._define_list(records, TmConversationInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_create_event_request.py b/src/ring_central/models/tm_create_event_request.py new file mode 100644 index 00000000..d705af76 --- /dev/null +++ b/src/ring_central/models/tm_create_event_request.py @@ -0,0 +1,116 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .event_recurrence_info import EventRecurrenceInfo + + +class TmCreateEventRequestColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmCreateEventRequestColor._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "creator_id": "creatorId", + "start_time": "startTime", + "end_time": "endTime", + "all_day": "allDay", + } +) +class TmCreateEventRequest(BaseModel): + """TmCreateEventRequest + + :param id_: Internal identifier of an event, defaults to None + :type id_: str, optional + :param creator_id: Internal identifier of a person created an event, defaults to None + :type creator_id: str, optional + :param title: Event title + :type title: str + :param start_time: Datetime of starting an event + :type start_time: str + :param end_time: Datetime of ending an event + :type end_time: str + :param all_day: Indicates whether event has some specific time slot or lasts for whole day(s), defaults to None + :type all_day: bool, optional + :param recurrence: recurrence, defaults to None + :type recurrence: EventRecurrenceInfo, optional + :param color: Color of Event title (including its presentation in Calendar), defaults to None + :type color: TmCreateEventRequestColor, optional + :param location: Event location, defaults to None + :type location: str, optional + :param description: Event details, defaults to None + :type description: str, optional + """ + + def __init__( + self, + title: str, + start_time: str, + end_time: str, + id_: str = None, + creator_id: str = None, + all_day: bool = None, + recurrence: EventRecurrenceInfo = None, + color: TmCreateEventRequestColor = None, + location: str = None, + description: str = None, + ): + if id_ is not None: + self.id_ = id_ + if creator_id is not None: + self.creator_id = creator_id + self.title = title + self.start_time = start_time + self.end_time = end_time + if all_day is not None: + self.all_day = all_day + if recurrence is not None: + self.recurrence = self._define_object(recurrence, EventRecurrenceInfo) + if color is not None: + self.color = self._enum_matching( + color, TmCreateEventRequestColor.list(), "color" + ) + if location is not None: + self.location = location + if description is not None: + self.description = description diff --git a/src/ring_central/models/tm_create_note_request.py b/src/ring_central/models/tm_create_note_request.py new file mode 100644 index 00000000..861a2759 --- /dev/null +++ b/src/ring_central/models/tm_create_note_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class TmCreateNoteRequest(BaseModel): + """TmCreateNoteRequest + + :param title: Title of a note. Max allowed length is 250 characters + :type title: str + :param body: Contents of a note; HTML markup text. Max allowed length is 1048576 characters (1 Mb)., defaults to None + :type body: str, optional + """ + + def __init__(self, title: str, body: str = None): + self.title = title + if body is not None: + self.body = body diff --git a/src/ring_central/models/tm_create_post_request.py b/src/ring_central/models/tm_create_post_request.py new file mode 100644 index 00000000..75692bea --- /dev/null +++ b/src/ring_central/models/tm_create_post_request.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_attachment_info import TmAttachmentInfo + + +@JsonMap({}) +class TmCreatePostRequest(BaseModel): + """Post data. At least one attribute should be provided (text or attachments) + + :param text: Text of a post. Maximum length is 10000 symbols. Mentions can be added in .md format `![:Type](id)`, defaults to None + :type text: str, optional + :param attachments: Identifier(s) of attachments. Maximum number of attachments is 25, defaults to None + :type attachments: List[TmAttachmentInfo], optional + """ + + def __init__(self, text: str = None, attachments: List[TmAttachmentInfo] = None): + if text is not None: + self.text = text + if attachments is not None: + self.attachments = self._define_list(attachments, TmAttachmentInfo) diff --git a/src/ring_central/models/tm_create_task_request.py b/src/ring_central/models/tm_create_task_request.py new file mode 100644 index 00000000..06efae68 --- /dev/null +++ b/src/ring_central/models/tm_create_task_request.py @@ -0,0 +1,163 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_recurrence_info import TaskRecurrenceInfo +from .tm_attachment_info import TmAttachmentInfo + + +@JsonMap({"id_": "id"}) +class TmCreateTaskRequestAssignees(BaseModel): + """TmCreateTaskRequestAssignees + + :param id_: Internal identifier of an assignee, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +class TmCreateTaskRequestCompletenessCondition(Enum): + """An enumeration representing different categories. + + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + :cvar ALLASSIGNEES: "AllAssignees" + :vartype ALLASSIGNEES: str + :cvar PERCENTAGE: "Percentage" + :vartype PERCENTAGE: str + """ + + SIMPLE = "Simple" + ALLASSIGNEES = "AllAssignees" + PERCENTAGE = "Percentage" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + TmCreateTaskRequestCompletenessCondition._member_map_.values(), + ) + ) + + +class TmCreateTaskRequestColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmCreateTaskRequestColor._member_map_.values()) + ) + + +@JsonMap( + { + "completeness_condition": "completenessCondition", + "start_date": "startDate", + "due_date": "dueDate", + } +) +class TmCreateTaskRequest(BaseModel): + """TmCreateTaskRequest + + :param subject: Task name/subject. Max allowed length is 250 characters + :type subject: str + :param assignees: assignees + :type assignees: List[TmCreateTaskRequestAssignees] + :param completeness_condition: completeness_condition, defaults to None + :type completeness_condition: TmCreateTaskRequestCompletenessCondition, optional + :param start_date: Task start date in UTC time zone., defaults to None + :type start_date: str, optional + :param due_date: Task due date/time in UTC time zone., defaults to None + :type due_date: str, optional + :param color: color, defaults to None + :type color: TmCreateTaskRequestColor, optional + :param section: Task section to group / search by. Max allowed length is 100 characters., defaults to None + :type section: str, optional + :param description: Task details. Max allowed length is 102400 characters (100kB)., defaults to None + :type description: str, optional + :param recurrence: Task information, defaults to None + :type recurrence: TaskRecurrenceInfo, optional + :param attachments: attachments, defaults to None + :type attachments: List[TmAttachmentInfo], optional + """ + + def __init__( + self, + subject: str, + assignees: List[TmCreateTaskRequestAssignees], + completeness_condition: TmCreateTaskRequestCompletenessCondition = None, + start_date: str = None, + due_date: str = None, + color: TmCreateTaskRequestColor = None, + section: str = None, + description: str = None, + recurrence: TaskRecurrenceInfo = None, + attachments: List[TmAttachmentInfo] = None, + ): + self.subject = subject + self.assignees = self._define_list(assignees, TmCreateTaskRequestAssignees) + if completeness_condition is not None: + self.completeness_condition = self._enum_matching( + completeness_condition, + TmCreateTaskRequestCompletenessCondition.list(), + "completeness_condition", + ) + if start_date is not None: + self.start_date = start_date + if due_date is not None: + self.due_date = due_date + if color is not None: + self.color = self._enum_matching( + color, TmCreateTaskRequestColor.list(), "color" + ) + if section is not None: + self.section = section + if description is not None: + self.description = description + if recurrence is not None: + self.recurrence = self._define_object(recurrence, TaskRecurrenceInfo) + if attachments is not None: + self.attachments = self._define_list(attachments, TmAttachmentInfo) diff --git a/src/ring_central/models/tm_create_team_request.py b/src/ring_central/models/tm_create_team_request.py new file mode 100644 index 00000000..7272b0d8 --- /dev/null +++ b/src/ring_central/models/tm_create_team_request.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TmCreateTeamRequestMembers(BaseModel): + """TmCreateTeamRequestMembers + + :param id_: Internal identifier of a person, defaults to None + :type id_: str, optional + :param email: Email of a person, defaults to None + :type email: str, optional + """ + + def __init__(self, id_: str = None, email: str = None): + if id_ is not None: + self.id_ = id_ + if email is not None: + self.email = email + + +@JsonMap({}) +class TmCreateTeamRequest(BaseModel): + """TmCreateTeamRequest + + :param public: Team access level., defaults to None + :type public: bool, optional + :param name: Team name. + :type name: str + :param description: Team description., defaults to None + :type description: str, optional + :param members: Identifier(s) of team members., defaults to None + :type members: List[TmCreateTeamRequestMembers], optional + """ + + def __init__( + self, + name: str, + public: bool = None, + description: str = None, + members: List[TmCreateTeamRequestMembers] = None, + ): + if public is not None: + self.public = public + self.name = name + if description is not None: + self.description = description + if members is not None: + self.members = self._define_list(members, TmCreateTeamRequestMembers) diff --git a/src/ring_central/models/tm_creator_info.py b/src/ring_central/models/tm_creator_info.py new file mode 100644 index 00000000..8bc92a2f --- /dev/null +++ b/src/ring_central/models/tm_creator_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TmCreatorInfo(BaseModel): + """Note creator information + + :param id_: Internal identifier of a user who created a note/task, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/tm_event_info.py b/src/ring_central/models/tm_event_info.py new file mode 100644 index 00000000..340f2c57 --- /dev/null +++ b/src/ring_central/models/tm_event_info.py @@ -0,0 +1,115 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .event_recurrence_info import EventRecurrenceInfo + + +class TmEventInfoColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmEventInfoColor._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creator_id": "creatorId", + "start_time": "startTime", + "end_time": "endTime", + "all_day": "allDay", + } +) +class TmEventInfo(BaseModel): + """TmEventInfo + + :param id_: Internal identifier of an event, defaults to None + :type id_: str, optional + :param creator_id: Internal identifier of a person created an event, defaults to None + :type creator_id: str, optional + :param title: Event title, defaults to None + :type title: str, optional + :param start_time: Datetime of starting an event, defaults to None + :type start_time: str, optional + :param end_time: Datetime of ending an event, defaults to None + :type end_time: str, optional + :param all_day: Indicates whether an event has some specific time slot or lasts for the whole day(s), defaults to None + :type all_day: bool, optional + :param recurrence: recurrence, defaults to None + :type recurrence: EventRecurrenceInfo, optional + :param color: Color of Event title (including its presentation in Calendar), defaults to None + :type color: TmEventInfoColor, optional + :param location: Event location, defaults to None + :type location: str, optional + :param description: Event details, defaults to None + :type description: str, optional + """ + + def __init__( + self, + id_: str = None, + creator_id: str = None, + title: str = None, + start_time: str = None, + end_time: str = None, + all_day: bool = None, + recurrence: EventRecurrenceInfo = None, + color: TmEventInfoColor = None, + location: str = None, + description: str = None, + ): + if id_ is not None: + self.id_ = id_ + if creator_id is not None: + self.creator_id = creator_id + if title is not None: + self.title = title + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if all_day is not None: + self.all_day = all_day + if recurrence is not None: + self.recurrence = self._define_object(recurrence, EventRecurrenceInfo) + if color is not None: + self.color = self._enum_matching(color, TmEventInfoColor.list(), "color") + if location is not None: + self.location = location + if description is not None: + self.description = description diff --git a/src/ring_central/models/tm_event_list.py b/src/ring_central/models/tm_event_list.py new file mode 100644 index 00000000..8c978315 --- /dev/null +++ b/src/ring_central/models/tm_event_list.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_event_info import TmEventInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmEventList(BaseModel): + """TmEventList + + :param records: List of events created by the current user, defaults to None + :type records: List[TmEventInfo], optional + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__( + self, records: List[TmEventInfo] = None, navigation: TmNavigationInfo = None + ): + if records is not None: + self.records = self._define_list(records, TmEventInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_mentions_info.py b/src/ring_central/models/tm_mentions_info.py new file mode 100644 index 00000000..0d57ef45 --- /dev/null +++ b/src/ring_central/models/tm_mentions_info.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TmMentionsInfoType(Enum): + """An enumeration representing different categories. + + :cvar PERSON: "Person" + :vartype PERSON: str + :cvar TEAM: "Team" + :vartype TEAM: str + :cvar FILE: "File" + :vartype FILE: str + :cvar LINK: "Link" + :vartype LINK: str + :cvar EVENT: "Event" + :vartype EVENT: str + :cvar TASK: "Task" + :vartype TASK: str + :cvar NOTE: "Note" + :vartype NOTE: str + :cvar CARD: "Card" + :vartype CARD: str + """ + + PERSON = "Person" + TEAM = "Team" + FILE = "File" + LINK = "Link" + EVENT = "Event" + TASK = "Task" + NOTE = "Note" + CARD = "Card" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmMentionsInfoType._member_map_.values())) + + +@JsonMap({"id_": "id", "type_": "type"}) +class TmMentionsInfo(BaseModel): + """TmMentionsInfo + + :param id_: Internal identifier of a user, defaults to None + :type id_: str, optional + :param type_: Type of mention, defaults to None + :type type_: TmMentionsInfoType, optional + :param name: Name of a user, defaults to None + :type name: str, optional + """ + + def __init__( + self, id_: str = None, type_: TmMentionsInfoType = None, name: str = None + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching(type_, TmMentionsInfoType.list(), "type_") + if name is not None: + self.name = name diff --git a/src/ring_central/models/tm_message_attachment_info.py b/src/ring_central/models/tm_message_attachment_info.py new file mode 100644 index 00000000..775b7fc4 --- /dev/null +++ b/src/ring_central/models/tm_message_attachment_info.py @@ -0,0 +1,205 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_attachment_author_info import TmAttachmentAuthorInfo +from .tm_attachment_fields_info import TmAttachmentFieldsInfo +from .tm_attachment_footnote_info import TmAttachmentFootnoteInfo +from .event_recurrence_info import EventRecurrenceInfo + + +class TmMessageAttachmentInfoType(Enum): + """An enumeration representing different categories. + + :cvar CARD: "Card" + :vartype CARD: str + :cvar EVENT: "Event" + :vartype EVENT: str + :cvar FILE: "File" + :vartype FILE: str + :cvar NOTE: "Note" + :vartype NOTE: str + :cvar TASK: "Task" + :vartype TASK: str + """ + + CARD = "Card" + EVENT = "Event" + FILE = "File" + NOTE = "Note" + TASK = "Task" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmMessageAttachmentInfoType._member_map_.values()) + ) + + +class TmMessageAttachmentInfoColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmMessageAttachmentInfoColor._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "image_uri": "imageUri", + "thumbnail_uri": "thumbnailUri", + "creator_id": "creatorId", + "start_time": "startTime", + "end_time": "endTime", + "all_day": "allDay", + } +) +class TmMessageAttachmentInfo(BaseModel): + """TmMessageAttachmentInfo + + :param id_: Internal identifier of an attachment, defaults to None + :type id_: str, optional + :param type_: Type of an attachment, defaults to None + :type type_: TmMessageAttachmentInfoType, optional + :param fallback: A string of default text that will be rendered in the case that the client does not support Interactive Messages, defaults to None + :type fallback: str, optional + :param intro: A pretext to the message, defaults to None + :type intro: str, optional + :param author: author, defaults to None + :type author: TmAttachmentAuthorInfo, optional + :param title: Message title, defaults to None + :type title: str, optional + :param text: A large string field (up to 1000 chars) to be displayed as the body of a message (Supports GlipDown), defaults to None + :type text: str, optional + :param image_uri: Link to an image displayed at the bottom of a message, defaults to None + :type image_uri: str, optional + :param thumbnail_uri: Link to an image preview displayed to the right of a message (82x82), defaults to None + :type thumbnail_uri: str, optional + :param fields: Information on navigation, defaults to None + :type fields: List[TmAttachmentFieldsInfo], optional + :param footnote: footnote, defaults to None + :type footnote: TmAttachmentFootnoteInfo, optional + :param creator_id: Internal identifier of a person created an event, defaults to None + :type creator_id: str, optional + :param start_time: Datetime of starting an event, defaults to None + :type start_time: str, optional + :param end_time: Datetime of ending an event, defaults to None + :type end_time: str, optional + :param all_day: Indicates whether an event has some specific time slot or lasts for the whole day(s), defaults to None + :type all_day: bool, optional + :param recurrence: recurrence, defaults to None + :type recurrence: EventRecurrenceInfo, optional + :param color: Color of Event title, including its presentation in Calendar; or the color of the side border of an interactive message of a Card, defaults to None + :type color: TmMessageAttachmentInfoColor, optional + :param location: Event location, defaults to None + :type location: str, optional + :param description: Event details, defaults to None + :type description: str, optional + """ + + def __init__( + self, + id_: str = None, + type_: TmMessageAttachmentInfoType = None, + fallback: str = None, + intro: str = None, + author: TmAttachmentAuthorInfo = None, + title: str = None, + text: str = None, + image_uri: str = None, + thumbnail_uri: str = None, + fields: List[TmAttachmentFieldsInfo] = None, + footnote: TmAttachmentFootnoteInfo = None, + creator_id: str = None, + start_time: str = None, + end_time: str = None, + all_day: bool = None, + recurrence: EventRecurrenceInfo = None, + color: TmMessageAttachmentInfoColor = None, + location: str = None, + description: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching( + type_, TmMessageAttachmentInfoType.list(), "type_" + ) + if fallback is not None: + self.fallback = fallback + if intro is not None: + self.intro = intro + if author is not None: + self.author = self._define_object(author, TmAttachmentAuthorInfo) + if title is not None: + self.title = title + if text is not None: + self.text = text + if image_uri is not None: + self.image_uri = image_uri + if thumbnail_uri is not None: + self.thumbnail_uri = thumbnail_uri + if fields is not None: + self.fields = self._define_list(fields, TmAttachmentFieldsInfo) + if footnote is not None: + self.footnote = self._define_object(footnote, TmAttachmentFootnoteInfo) + if creator_id is not None: + self.creator_id = creator_id + if start_time is not None: + self.start_time = start_time + if end_time is not None: + self.end_time = end_time + if all_day is not None: + self.all_day = all_day + if recurrence is not None: + self.recurrence = self._define_object(recurrence, EventRecurrenceInfo) + if color is not None: + self.color = self._enum_matching( + color, TmMessageAttachmentInfoColor.list(), "color" + ) + if location is not None: + self.location = location + if description is not None: + self.description = description diff --git a/src/ring_central/models/tm_navigation_info.py b/src/ring_central/models/tm_navigation_info.py new file mode 100644 index 00000000..22d3a4b1 --- /dev/null +++ b/src/ring_central/models/tm_navigation_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"prev_page_token": "prevPageToken", "next_page_token": "nextPageToken"}) +class TmNavigationInfo(BaseModel): + """TmNavigationInfo + + :param prev_page_token: Previous page token. To get previous page, user should pass one of returned token in next request and, in turn, required page will be returned with new tokens, defaults to None + :type prev_page_token: str, optional + :param next_page_token: Next page token. To get next page, user should pass one of returned token in next request and, in turn, required page will be returned with new tokens, defaults to None + :type next_page_token: str, optional + """ + + def __init__(self, prev_page_token: str = None, next_page_token: str = None): + if prev_page_token is not None: + self.prev_page_token = prev_page_token + if next_page_token is not None: + self.next_page_token = next_page_token diff --git a/src/ring_central/models/tm_note_info.py b/src/ring_central/models/tm_note_info.py new file mode 100644 index 00000000..0aa10e7b --- /dev/null +++ b/src/ring_central/models/tm_note_info.py @@ -0,0 +1,127 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_creator_info import TmCreatorInfo +from .last_modified_by_info import LastModifiedByInfo +from .locked_by_info import LockedByInfo + + +class TmNoteInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar DRAFT: "Draft" + :vartype DRAFT: str + """ + + ACTIVE = "Active" + DRAFT = "Draft" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmNoteInfoStatus._member_map_.values())) + + +class TmNoteInfoType(Enum): + """An enumeration representing different categories. + + :cvar NOTE: "Note" + :vartype NOTE: str + """ + + NOTE = "Note" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmNoteInfoType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "chat_ids": "chatIds", + "last_modified_by": "lastModifiedBy", + "locked_by": "lockedBy", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "type_": "type", + } +) +class TmNoteInfo(BaseModel): + """TmNoteInfo + + :param id_: Internal identifier of a note, defaults to None + :type id_: str, optional + :param title: Title of a note, defaults to None + :type title: str, optional + :param chat_ids: Internal identifiers of the chat(s) where the note is posted or shared., defaults to None + :type chat_ids: List[str], optional + :param preview: Preview of a note (first 150 characters of a body), defaults to None + :type preview: str, optional + :param creator: Note creator information, defaults to None + :type creator: TmCreatorInfo, optional + :param last_modified_by: Note last modification information, defaults to None + :type last_modified_by: LastModifiedByInfo, optional + :param locked_by: Returned for the note being edited (locked) at the current moment. Information on the user editing the note, defaults to None + :type locked_by: LockedByInfo, optional + :param status: Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active', defaults to None + :type status: TmNoteInfoStatus, optional + :param creation_time: Creation time, defaults to None + :type creation_time: str, optional + :param last_modified_time: Datetime of the note last update, defaults to None + :type last_modified_time: str, optional + :param type_: type_, defaults to None + :type type_: TmNoteInfoType, optional + """ + + def __init__( + self, + id_: str = None, + title: str = None, + chat_ids: List[str] = None, + preview: str = None, + creator: TmCreatorInfo = None, + last_modified_by: LastModifiedByInfo = None, + locked_by: LockedByInfo = None, + status: TmNoteInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + type_: TmNoteInfoType = None, + ): + if id_ is not None: + self.id_ = id_ + if title is not None: + self.title = title + if chat_ids is not None: + self.chat_ids = chat_ids + if preview is not None: + self.preview = preview + if creator is not None: + self.creator = self._define_object(creator, TmCreatorInfo) + if last_modified_by is not None: + self.last_modified_by = self._define_object( + last_modified_by, LastModifiedByInfo + ) + if locked_by is not None: + self.locked_by = self._define_object(locked_by, LockedByInfo) + if status is not None: + self.status = self._enum_matching(status, TmNoteInfoStatus.list(), "status") + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if type_ is not None: + self.type_ = self._enum_matching(type_, TmNoteInfoType.list(), "type_") diff --git a/src/ring_central/models/tm_note_list.py b/src/ring_central/models/tm_note_list.py new file mode 100644 index 00000000..860a1fd0 --- /dev/null +++ b/src/ring_central/models/tm_note_list.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_note_info import TmNoteInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmNoteList(BaseModel): + """TmNoteList + + :param records: records, defaults to None + :type records: List[TmNoteInfo], optional + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__( + self, records: List[TmNoteInfo] = None, navigation: TmNavigationInfo = None + ): + if records is not None: + self.records = self._define_list(records, TmNoteInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_note_with_body_info.py b/src/ring_central/models/tm_note_with_body_info.py new file mode 100644 index 00000000..feac674f --- /dev/null +++ b/src/ring_central/models/tm_note_with_body_info.py @@ -0,0 +1,140 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_creator_info import TmCreatorInfo +from .last_modified_by_info import LastModifiedByInfo +from .locked_by_info import LockedByInfo + + +class TmNoteWithBodyInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar DRAFT: "Draft" + :vartype DRAFT: str + """ + + ACTIVE = "Active" + DRAFT = "Draft" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmNoteWithBodyInfoStatus._member_map_.values()) + ) + + +class TmNoteWithBodyInfoType(Enum): + """An enumeration representing different categories. + + :cvar NOTE: "Note" + :vartype NOTE: str + """ + + NOTE = "Note" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmNoteWithBodyInfoType._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "chat_ids": "chatIds", + "last_modified_by": "lastModifiedBy", + "locked_by": "lockedBy", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "type_": "type", + } +) +class TmNoteWithBodyInfo(BaseModel): + """TmNoteWithBodyInfo + + :param id_: Internal identifier of a note, defaults to None + :type id_: str, optional + :param title: Title of a note, defaults to None + :type title: str, optional + :param chat_ids: Internal identifiers of the chat(s) where the note is posted or shared., defaults to None + :type chat_ids: List[str], optional + :param preview: Preview of a note (first 150 characters of a body), defaults to None + :type preview: str, optional + :param creator: Note creator information, defaults to None + :type creator: TmCreatorInfo, optional + :param last_modified_by: Note last modification information, defaults to None + :type last_modified_by: LastModifiedByInfo, optional + :param locked_by: Returned for the note being edited (locked) at the current moment. Information on the user editing the note, defaults to None + :type locked_by: LockedByInfo, optional + :param status: Note publishing status. Any note is created in 'Draft' status. After it is posted it becomes 'Active', defaults to None + :type status: TmNoteWithBodyInfoStatus, optional + :param creation_time: Creation time, defaults to None + :type creation_time: str, optional + :param last_modified_time: Datetime of the note last update, defaults to None + :type last_modified_time: str, optional + :param type_: type_, defaults to None + :type type_: TmNoteWithBodyInfoType, optional + :param body: Text of a note, defaults to None + :type body: str, optional + """ + + def __init__( + self, + id_: str = None, + title: str = None, + chat_ids: List[str] = None, + preview: str = None, + creator: TmCreatorInfo = None, + last_modified_by: LastModifiedByInfo = None, + locked_by: LockedByInfo = None, + status: TmNoteWithBodyInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + type_: TmNoteWithBodyInfoType = None, + body: str = None, + ): + if id_ is not None: + self.id_ = id_ + if title is not None: + self.title = title + if chat_ids is not None: + self.chat_ids = chat_ids + if preview is not None: + self.preview = preview + if creator is not None: + self.creator = self._define_object(creator, TmCreatorInfo) + if last_modified_by is not None: + self.last_modified_by = self._define_object( + last_modified_by, LastModifiedByInfo + ) + if locked_by is not None: + self.locked_by = self._define_object(locked_by, LockedByInfo) + if status is not None: + self.status = self._enum_matching( + status, TmNoteWithBodyInfoStatus.list(), "status" + ) + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if type_ is not None: + self.type_ = self._enum_matching( + type_, TmNoteWithBodyInfoType.list(), "type_" + ) + if body is not None: + self.body = body diff --git a/src/ring_central/models/tm_person_info.py b/src/ring_central/models/tm_person_info.py new file mode 100644 index 00000000..bdfc38b5 --- /dev/null +++ b/src/ring_central/models/tm_person_info.py @@ -0,0 +1,63 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "id_": "id", + "first_name": "firstName", + "last_name": "lastName", + "company_id": "companyId", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmPersonInfo(BaseModel): + """TmPersonInfo + + :param id_: Internal identifier of a user + :type id_: str + :param first_name: First name of a user, defaults to None + :type first_name: str, optional + :param last_name: Last name of a user, defaults to None + :type last_name: str, optional + :param email: Email of a user, defaults to None + :type email: str, optional + :param avatar: Photo of a user, defaults to None + :type avatar: str, optional + :param company_id: Internal identifier of a company, defaults to None + :type company_id: str, optional + :param creation_time: Time of creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Time of the last modification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type last_modified_time: str, optional + """ + + def __init__( + self, + id_: str, + first_name: str = None, + last_name: str = None, + email: str = None, + avatar: str = None, + company_id: str = None, + creation_time: str = None, + last_modified_time: str = None, + ): + self.id_ = id_ + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if avatar is not None: + self.avatar = avatar + if company_id is not None: + self.company_id = company_id + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/tm_post_info.py b/src/ring_central/models/tm_post_info.py new file mode 100644 index 00000000..7b049006 --- /dev/null +++ b/src/ring_central/models/tm_post_info.py @@ -0,0 +1,126 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_message_attachment_info import TmMessageAttachmentInfo +from .tm_mentions_info import TmMentionsInfo + + +class TmPostInfoType(Enum): + """An enumeration representing different categories. + + :cvar TEXTMESSAGE: "TextMessage" + :vartype TEXTMESSAGE: str + :cvar PERSONJOINED: "PersonJoined" + :vartype PERSONJOINED: str + :cvar PERSONSADDED: "PersonsAdded" + :vartype PERSONSADDED: str + """ + + TEXTMESSAGE = "TextMessage" + PERSONJOINED = "PersonJoined" + PERSONSADDED = "PersonsAdded" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmPostInfoType._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "group_id": "groupId", + "type_": "type", + "creator_id": "creatorId", + "added_person_ids": "addedPersonIds", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "icon_uri": "iconUri", + "icon_emoji": "iconEmoji", + } +) +class TmPostInfo(BaseModel): + """TmPostInfo + + :param id_: Internal identifier of a post, defaults to None + :type id_: str, optional + :param group_id: Internal identifier of a group a post belongs to, defaults to None + :type group_id: str, optional + :param type_: Type of post, defaults to None + :type type_: TmPostInfoType, optional + :param text: For 'TextMessage' post type only. Text of a message, defaults to None + :type text: str, optional + :param creator_id: Internal identifier of a user - author of a post, defaults to None + :type creator_id: str, optional + :param added_person_ids: For 'PersonsAdded' post type only. Identifiers of persons added to a group, defaults to None + :type added_person_ids: List[str], optional + :param creation_time: Post creation datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Post last modification datetime in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type last_modified_time: str, optional + :param attachments: List of posted attachments, defaults to None + :type attachments: List[TmMessageAttachmentInfo], optional + :param mentions: mentions, defaults to None + :type mentions: List[TmMentionsInfo], optional + :param activity: Label of activity type, defaults to None + :type activity: str, optional + :param title: Title of a message. (Can be set for bot's messages only), defaults to None + :type title: str, optional + :param icon_uri: Link to an image used as an icon for this message, defaults to None + :type icon_uri: str, optional + :param icon_emoji: Emoji used as an icon for this message, defaults to None + :type icon_emoji: str, optional + """ + + def __init__( + self, + id_: str = None, + group_id: str = None, + type_: TmPostInfoType = None, + text: str = None, + creator_id: str = None, + added_person_ids: List[str] = None, + creation_time: str = None, + last_modified_time: str = None, + attachments: List[TmMessageAttachmentInfo] = None, + mentions: List[TmMentionsInfo] = None, + activity: str = None, + title: str = None, + icon_uri: str = None, + icon_emoji: str = None, + ): + if id_ is not None: + self.id_ = id_ + if group_id is not None: + self.group_id = group_id + if type_ is not None: + self.type_ = self._enum_matching(type_, TmPostInfoType.list(), "type_") + if text is not None: + self.text = text + if creator_id is not None: + self.creator_id = creator_id + if added_person_ids is not None: + self.added_person_ids = added_person_ids + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if attachments is not None: + self.attachments = self._define_list(attachments, TmMessageAttachmentInfo) + if mentions is not None: + self.mentions = self._define_list(mentions, TmMentionsInfo) + if activity is not None: + self.activity = activity + if title is not None: + self.title = title + if icon_uri is not None: + self.icon_uri = icon_uri + if icon_emoji is not None: + self.icon_emoji = icon_emoji diff --git a/src/ring_central/models/tm_posts_list.py b/src/ring_central/models/tm_posts_list.py new file mode 100644 index 00000000..15bf3238 --- /dev/null +++ b/src/ring_central/models/tm_posts_list.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_post_info import TmPostInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmPostsList(BaseModel): + """TmPostsList + + :param records: List of posts + :type records: List[TmPostInfo] + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__(self, records: List[TmPostInfo], navigation: TmNavigationInfo = None): + self.records = self._define_list(records, TmPostInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_remove_team_members_request.py b/src/ring_central/models/tm_remove_team_members_request.py new file mode 100644 index 00000000..77decf49 --- /dev/null +++ b/src/ring_central/models/tm_remove_team_members_request.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TmRemoveTeamMembersRequestMembers(BaseModel): + """TmRemoveTeamMembersRequestMembers + + :param id_: Internal identifier of a person, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +@JsonMap({}) +class TmRemoveTeamMembersRequest(BaseModel): + """TmRemoveTeamMembersRequest + + :param members: Identifier(s) of chat members. + :type members: List[TmRemoveTeamMembersRequestMembers] + """ + + def __init__(self, members: List[TmRemoveTeamMembersRequestMembers]): + self.members = self._define_list(members, TmRemoveTeamMembersRequestMembers) diff --git a/src/ring_central/models/tm_task_info.py b/src/ring_central/models/tm_task_info.py new file mode 100644 index 00000000..6e5a8180 --- /dev/null +++ b/src/ring_central/models/tm_task_info.py @@ -0,0 +1,286 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_recurrence_info import TaskRecurrenceInfo +from .task_attachment import TaskAttachment + + +class TmTaskInfoType(Enum): + """An enumeration representing different categories. + + :cvar TASK: "Task" + :vartype TASK: str + """ + + TASK = "Task" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmTaskInfoType._member_map_.values())) + + +@JsonMap({"id_": "id"}) +class Creator(BaseModel): + """Creator + + :param id_: Internal identifier of a task creator, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +class TmTaskInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar INPROGRESS: "InProgress" + :vartype INPROGRESS: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + PENDING = "Pending" + INPROGRESS = "InProgress" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmTaskInfoStatus._member_map_.values())) + + +class AssigneesStatus(Enum): + """An enumeration representing different categories. + + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar COMPLETED: "Completed" + :vartype COMPLETED: str + """ + + PENDING = "Pending" + COMPLETED = "Completed" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AssigneesStatus._member_map_.values())) + + +@JsonMap({"id_": "id"}) +class TmTaskInfoAssignees(BaseModel): + """TmTaskInfoAssignees + + :param id_: Internal identifier of an assignee, defaults to None + :type id_: str, optional + :param status: Task execution status by assignee, defaults to None + :type status: AssigneesStatus, optional + """ + + def __init__(self, id_: str = None, status: AssigneesStatus = None): + if id_ is not None: + self.id_ = id_ + if status is not None: + self.status = self._enum_matching(status, AssigneesStatus.list(), "status") + + +class TmTaskInfoCompletenessCondition(Enum): + """An enumeration representing different categories. + + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + :cvar ALLASSIGNEES: "AllAssignees" + :vartype ALLASSIGNEES: str + :cvar PERCENTAGE: "Percentage" + :vartype PERCENTAGE: str + """ + + SIMPLE = "Simple" + ALLASSIGNEES = "AllAssignees" + PERCENTAGE = "Percentage" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, TmTaskInfoCompletenessCondition._member_map_.values() + ) + ) + + +class TmTaskInfoColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmTaskInfoColor._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "type_": "type", + "chat_ids": "chatIds", + "completeness_condition": "completenessCondition", + "completeness_percentage": "completenessPercentage", + "start_date": "startDate", + "due_date": "dueDate", + } +) +class TmTaskInfo(BaseModel): + """TmTaskInfo + + :param id_: Internal identifier of a task, defaults to None + :type id_: str, optional + :param creation_time: Task creation date/time in UTC time zone, defaults to None + :type creation_time: str, optional + :param last_modified_time: Task the last modified time in UTC time zone, defaults to None + :type last_modified_time: str, optional + :param type_: Task type, defaults to None + :type type_: TmTaskInfoType, optional + :param creator: creator, defaults to None + :type creator: Creator, optional + :param chat_ids: Internal identifiers of the chats where the task is posted or shared, defaults to None + :type chat_ids: List[str], optional + :param status: Task execution status, defaults to None + :type status: TmTaskInfoStatus, optional + :param subject: Task name/subject, defaults to None + :type subject: str, optional + :param assignees: Task name/subject, defaults to None + :type assignees: List[TmTaskInfoAssignees], optional + :param completeness_condition: How the task completeness should be determined, defaults to None + :type completeness_condition: TmTaskInfoCompletenessCondition, optional + :param completeness_percentage: Current completeness percentage of the task with the specified percentage completeness condition, defaults to None + :type completeness_percentage: int, optional + :param start_date: Task start date, defaults to None + :type start_date: str, optional + :param due_date: Task due date/time, defaults to None + :type due_date: str, optional + :param color: Font color of a post with the current task, defaults to None + :type color: TmTaskInfoColor, optional + :param section: Task section to group / search by, defaults to None + :type section: str, optional + :param description: Task details, defaults to None + :type description: str, optional + :param recurrence: Task information, defaults to None + :type recurrence: TaskRecurrenceInfo, optional + :param attachments: attachments, defaults to None + :type attachments: List[TaskAttachment], optional + """ + + def __init__( + self, + id_: str = None, + creation_time: str = None, + last_modified_time: str = None, + type_: TmTaskInfoType = None, + creator: Creator = None, + chat_ids: List[str] = None, + status: TmTaskInfoStatus = None, + subject: str = None, + assignees: List[TmTaskInfoAssignees] = None, + completeness_condition: TmTaskInfoCompletenessCondition = None, + completeness_percentage: int = None, + start_date: str = None, + due_date: str = None, + color: TmTaskInfoColor = None, + section: str = None, + description: str = None, + recurrence: TaskRecurrenceInfo = None, + attachments: List[TaskAttachment] = None, + ): + if id_ is not None: + self.id_ = id_ + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if type_ is not None: + self.type_ = self._enum_matching(type_, TmTaskInfoType.list(), "type_") + if creator is not None: + self.creator = self._define_object(creator, Creator) + if chat_ids is not None: + self.chat_ids = chat_ids + if status is not None: + self.status = self._enum_matching(status, TmTaskInfoStatus.list(), "status") + if subject is not None: + self.subject = subject + if assignees is not None: + self.assignees = self._define_list(assignees, TmTaskInfoAssignees) + if completeness_condition is not None: + self.completeness_condition = self._enum_matching( + completeness_condition, + TmTaskInfoCompletenessCondition.list(), + "completeness_condition", + ) + if completeness_percentage is not None: + self.completeness_percentage = completeness_percentage + if start_date is not None: + self.start_date = start_date + if due_date is not None: + self.due_date = due_date + if color is not None: + self.color = self._enum_matching(color, TmTaskInfoColor.list(), "color") + if section is not None: + self.section = section + if description is not None: + self.description = description + if recurrence is not None: + self.recurrence = self._define_object(recurrence, TaskRecurrenceInfo) + if attachments is not None: + self.attachments = self._define_list(attachments, TaskAttachment) diff --git a/src/ring_central/models/tm_task_list.py b/src/ring_central/models/tm_task_list.py new file mode 100644 index 00000000..955cc0e0 --- /dev/null +++ b/src/ring_central/models/tm_task_list.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_task_info import TmTaskInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmTaskList(BaseModel): + """TmTaskList + + :param records: records, defaults to None + :type records: List[TmTaskInfo], optional + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__( + self, records: List[TmTaskInfo] = None, navigation: TmNavigationInfo = None + ): + if records is not None: + self.records = self._define_list(records, TmTaskInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_team_info.py b/src/ring_central/models/tm_team_info.py new file mode 100644 index 00000000..997f1c23 --- /dev/null +++ b/src/ring_central/models/tm_team_info.py @@ -0,0 +1,102 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TmTeamInfoType(Enum): + """An enumeration representing different categories. + + :cvar TEAM: "Team" + :vartype TEAM: str + """ + + TEAM = "Team" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmTeamInfoType._member_map_.values())) + + +class TmTeamInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar ARCHIVED: "Archived" + :vartype ARCHIVED: str + """ + + ACTIVE = "Active" + ARCHIVED = "Archived" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmTeamInfoStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "type_": "type", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmTeamInfo(BaseModel): + """TmTeamInfo + + :param id_: Internal identifier of a team, defaults to None + :type id_: str, optional + :param type_: Type of chat, defaults to None + :type type_: TmTeamInfoType, optional + :param public: Team access level, defaults to None + :type public: bool, optional + :param name: Team name, defaults to None + :type name: str, optional + :param description: Team description, defaults to None + :type description: str, optional + :param status: Team status, defaults to None + :type status: TmTeamInfoStatus, optional + :param creation_time: Team creation datetime in ISO 8601 format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Team last change datetime in ISO 8601 format, defaults to None + :type last_modified_time: str, optional + """ + + def __init__( + self, + id_: str = None, + type_: TmTeamInfoType = None, + public: bool = None, + name: str = None, + description: str = None, + status: TmTeamInfoStatus = None, + creation_time: str = None, + last_modified_time: str = None, + ): + if id_ is not None: + self.id_ = id_ + if type_ is not None: + self.type_ = self._enum_matching(type_, TmTeamInfoType.list(), "type_") + if public is not None: + self.public = public + if name is not None: + self.name = name + if description is not None: + self.description = description + if status is not None: + self.status = self._enum_matching(status, TmTeamInfoStatus.list(), "status") + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time diff --git a/src/ring_central/models/tm_team_list.py b/src/ring_central/models/tm_team_list.py new file mode 100644 index 00000000..91272667 --- /dev/null +++ b/src/ring_central/models/tm_team_list.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_team_info import TmTeamInfo +from .tm_navigation_info import TmNavigationInfo + + +@JsonMap({}) +class TmTeamList(BaseModel): + """TmTeamList + + :param records: List of teams + :type records: List[TmTeamInfo] + :param navigation: navigation, defaults to None + :type navigation: TmNavigationInfo, optional + """ + + def __init__(self, records: List[TmTeamInfo], navigation: TmNavigationInfo = None): + self.records = self._define_list(records, TmTeamInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, TmNavigationInfo) diff --git a/src/ring_central/models/tm_update_post_request.py b/src/ring_central/models/tm_update_post_request.py new file mode 100644 index 00000000..f30750d2 --- /dev/null +++ b/src/ring_central/models/tm_update_post_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class TmUpdatePostRequest(BaseModel): + """TmUpdatePostRequest + + :param text: Post text., defaults to None + :type text: str, optional + """ + + def __init__(self, text: str = None): + if text is not None: + self.text = text diff --git a/src/ring_central/models/tm_update_task_request.py b/src/ring_central/models/tm_update_task_request.py new file mode 100644 index 00000000..39b627f2 --- /dev/null +++ b/src/ring_central/models/tm_update_task_request.py @@ -0,0 +1,165 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .task_recurrence_info import TaskRecurrenceInfo +from .tm_attachment_info import TmAttachmentInfo + + +@JsonMap({"id_": "id"}) +class TmUpdateTaskRequestAssignees(BaseModel): + """TmUpdateTaskRequestAssignees + + :param id_: Internal identifier of an assignee, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ + + +class TmUpdateTaskRequestCompletenessCondition(Enum): + """An enumeration representing different categories. + + :cvar SIMPLE: "Simple" + :vartype SIMPLE: str + :cvar ALLASSIGNEES: "AllAssignees" + :vartype ALLASSIGNEES: str + :cvar PERCENTAGE: "Percentage" + :vartype PERCENTAGE: str + """ + + SIMPLE = "Simple" + ALLASSIGNEES = "AllAssignees" + PERCENTAGE = "Percentage" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + TmUpdateTaskRequestCompletenessCondition._member_map_.values(), + ) + ) + + +class TmUpdateTaskRequestColor(Enum): + """An enumeration representing different categories. + + :cvar BLACK: "Black" + :vartype BLACK: str + :cvar RED: "Red" + :vartype RED: str + :cvar ORANGE: "Orange" + :vartype ORANGE: str + :cvar YELLOW: "Yellow" + :vartype YELLOW: str + :cvar GREEN: "Green" + :vartype GREEN: str + :cvar BLUE: "Blue" + :vartype BLUE: str + :cvar PURPLE: "Purple" + :vartype PURPLE: str + :cvar MAGENTA: "Magenta" + :vartype MAGENTA: str + """ + + BLACK = "Black" + RED = "Red" + ORANGE = "Orange" + YELLOW = "Yellow" + GREEN = "Green" + BLUE = "Blue" + PURPLE = "Purple" + MAGENTA = "Magenta" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, TmUpdateTaskRequestColor._member_map_.values()) + ) + + +@JsonMap( + { + "completeness_condition": "completenessCondition", + "start_date": "startDate", + "due_date": "dueDate", + } +) +class TmUpdateTaskRequest(BaseModel): + """TmUpdateTaskRequest + + :param subject: Task name/subject. Max allowed length is 250 characters., defaults to None + :type subject: str, optional + :param assignees: assignees, defaults to None + :type assignees: List[TmUpdateTaskRequestAssignees], optional + :param completeness_condition: completeness_condition, defaults to None + :type completeness_condition: TmUpdateTaskRequestCompletenessCondition, optional + :param start_date: Task start date in UTC time zone, defaults to None + :type start_date: str, optional + :param due_date: Task due date/time in UTC time zone, defaults to None + :type due_date: str, optional + :param color: color, defaults to None + :type color: TmUpdateTaskRequestColor, optional + :param section: Task section to group / search by. Max allowed length is 100 characters., defaults to None + :type section: str, optional + :param description: Task details. Max allowed length is 102400 characters (100kB), defaults to None + :type description: str, optional + :param recurrence: Task information, defaults to None + :type recurrence: TaskRecurrenceInfo, optional + :param attachments: attachments, defaults to None + :type attachments: List[TmAttachmentInfo], optional + """ + + def __init__( + self, + subject: str = None, + assignees: List[TmUpdateTaskRequestAssignees] = None, + completeness_condition: TmUpdateTaskRequestCompletenessCondition = None, + start_date: str = None, + due_date: str = None, + color: TmUpdateTaskRequestColor = None, + section: str = None, + description: str = None, + recurrence: TaskRecurrenceInfo = None, + attachments: List[TmAttachmentInfo] = None, + ): + if subject is not None: + self.subject = subject + if assignees is not None: + self.assignees = self._define_list(assignees, TmUpdateTaskRequestAssignees) + if completeness_condition is not None: + self.completeness_condition = self._enum_matching( + completeness_condition, + TmUpdateTaskRequestCompletenessCondition.list(), + "completeness_condition", + ) + if start_date is not None: + self.start_date = start_date + if due_date is not None: + self.due_date = due_date + if color is not None: + self.color = self._enum_matching( + color, TmUpdateTaskRequestColor.list(), "color" + ) + if section is not None: + self.section = section + if description is not None: + self.description = description + if recurrence is not None: + self.recurrence = self._define_object(recurrence, TaskRecurrenceInfo) + if attachments is not None: + self.attachments = self._define_list(attachments, TmAttachmentInfo) diff --git a/src/ring_central/models/tm_update_team_request.py b/src/ring_central/models/tm_update_team_request.py new file mode 100644 index 00000000..cb229366 --- /dev/null +++ b/src/ring_central/models/tm_update_team_request.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class TmUpdateTeamRequest(BaseModel): + """TmUpdateTeamRequest + + :param public: Team access level, defaults to None + :type public: bool, optional + :param name: Team name. Maximum number of characters supported is 250, defaults to None + :type name: str, optional + :param description: Team description. Maximum number of characters supported is 1000, defaults to None + :type description: str, optional + """ + + def __init__(self, public: bool = None, name: str = None, description: str = None): + if public is not None: + self.public = public + if name is not None: + self.name = name + if description is not None: + self.description = description diff --git a/src/ring_central/models/tm_webhook_info.py b/src/ring_central/models/tm_webhook_info.py new file mode 100644 index 00000000..560973af --- /dev/null +++ b/src/ring_central/models/tm_webhook_info.py @@ -0,0 +1,86 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TmWebhookInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar SUSPENDED: "Suspended" + :vartype SUSPENDED: str + :cvar DELETED: "Deleted" + :vartype DELETED: str + """ + + ACTIVE = "Active" + SUSPENDED = "Suspended" + DELETED = "Deleted" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TmWebhookInfoStatus._member_map_.values())) + + +@JsonMap( + { + "id_": "id", + "creator_id": "creatorId", + "group_ids": "groupIds", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class TmWebhookInfo(BaseModel): + """TmWebhookInfo + + :param id_: Internal identifier of a webhook, defaults to None + :type id_: str, optional + :param creator_id: Internal identifier of the user who created a webhook, defaults to None + :type creator_id: str, optional + :param group_ids: Internal identifiers of groups where a webhook has been created, defaults to None + :type group_ids: List[str], optional + :param creation_time: Webhook creation time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type creation_time: str, optional + :param last_modified_time: Webhook last update time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, defaults to None + :type last_modified_time: str, optional + :param uri: Public link to send a webhook payload, defaults to None + :type uri: str, optional + :param status: Current status of a webhook, defaults to None + :type status: TmWebhookInfoStatus, optional + """ + + def __init__( + self, + id_: str = None, + creator_id: str = None, + group_ids: List[str] = None, + creation_time: str = None, + last_modified_time: str = None, + uri: str = None, + status: TmWebhookInfoStatus = None, + ): + if id_ is not None: + self.id_ = id_ + if creator_id is not None: + self.creator_id = creator_id + if group_ids is not None: + self.group_ids = group_ids + if creation_time is not None: + self.creation_time = creation_time + if last_modified_time is not None: + self.last_modified_time = last_modified_time + if uri is not None: + self.uri = uri + if status is not None: + self.status = self._enum_matching( + status, TmWebhookInfoStatus.list(), "status" + ) diff --git a/src/ring_central/models/tm_webhook_list.py b/src/ring_central/models/tm_webhook_list.py new file mode 100644 index 00000000..95315486 --- /dev/null +++ b/src/ring_central/models/tm_webhook_list.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .tm_webhook_info import TmWebhookInfo + + +@JsonMap({}) +class TmWebhookList(BaseModel): + """TmWebhookList + + :param records: records, defaults to None + :type records: List[TmWebhookInfo], optional + """ + + def __init__(self, records: List[TmWebhookInfo] = None): + if records is not None: + self.records = self._define_list(records, TmWebhookInfo) diff --git a/src/ring_central/models/token_info.py b/src/ring_central/models/token_info.py new file mode 100644 index 00000000..e1508759 --- /dev/null +++ b/src/ring_central/models/token_info.py @@ -0,0 +1,97 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class TokenType(Enum): + """An enumeration representing different categories. + + :cvar BEARER: "bearer" + :vartype BEARER: str + """ + + BEARER = "bearer" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TokenType._member_map_.values())) + + +@JsonMap({}) +class TokenInfo(BaseModel): + """TokenInfo + + :param access_token: OAuth access token to pass to subsequent API requests + :type access_token: str + :param expires_in: Access token TTL (time-to-live) in seconds + :type expires_in: int + :param refresh_token: OAuth refresh token (if issued) , defaults to None + :type refresh_token: str, optional + :param refresh_token_expires_in: Refresh token TTL (time-to-live) in seconds, defaults to None + :type refresh_token_expires_in: int, optional + :param scope: The list of space separated application permissions (OAuth scopes) + :type scope: str + :param token_type: Type of the token. The only supported value is `bearer`. This value should be used when specifying access token in `Authorization` header of subsequent API requests + :type token_type: TokenType + :param owner_id: Token owner's identifier. Contains RingCentral user (extension) ID, defaults to None + :type owner_id: str, optional + :param endpoint_id: Client application instance identifier that matches the value provided by the client, or generated by the server if a client has not provided this value , defaults to None + :type endpoint_id: str, optional + :param id_token: OpenID Connect ID token (if OpenID Connect flow was activated during authorization), defaults to None + :type id_token: str, optional + :param session_expires_in: Remaining time in seconds until session expiration due to absolute timeout. Returned only if absolute session timeout is enforced , defaults to None + :type session_expires_in: int, optional + :param session_expiration_time: Absolute value of session expiration time in ISO date formatted string. Returned only if absolute session timeout is enforced , defaults to None + :type session_expiration_time: str, optional + :param session_id: OAuth session ID, defaults to None + :type session_id: str, optional + :param session_idle_timeout: Nominal value of session idle timeout in seconds. Returned only if idle session timeout is enforced , defaults to None + :type session_idle_timeout: int, optional + """ + + def __init__( + self, + access_token: str, + expires_in: int, + scope: str, + token_type: TokenType, + refresh_token: str = None, + refresh_token_expires_in: int = None, + owner_id: str = None, + endpoint_id: str = None, + id_token: str = None, + session_expires_in: int = None, + session_expiration_time: str = None, + session_id: str = None, + session_idle_timeout: int = None, + ): + self.access_token = access_token + self.expires_in = expires_in + if refresh_token is not None: + self.refresh_token = refresh_token + if refresh_token_expires_in is not None: + self.refresh_token_expires_in = refresh_token_expires_in + self.scope = scope + self.token_type = self._enum_matching( + token_type, TokenType.list(), "token_type" + ) + if owner_id is not None: + self.owner_id = owner_id + if endpoint_id is not None: + self.endpoint_id = endpoint_id + if id_token is not None: + self.id_token = id_token + if session_expires_in is not None: + self.session_expires_in = session_expires_in + if session_expiration_time is not None: + self.session_expiration_time = session_expiration_time + if session_id is not None: + self.session_id = session_id + if session_idle_timeout is not None: + self.session_idle_timeout = session_idle_timeout diff --git a/src/ring_central/models/transcribed_object.py b/src/ring_central/models/transcribed_object.py new file mode 100644 index 00000000..da5d9a96 --- /dev/null +++ b/src/ring_central/models/transcribed_object.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .utterance_object import UtteranceObject +from .word_segment import WordSegment + + +@JsonMap({"speaker_count": "speakerCount"}) +class TranscribedObject(BaseModel): + """TranscribedObject + + :param speaker_count: The number of speakers detected. Field is set only when enableSpeakerDiarization is true., defaults to None + :type speaker_count: int, optional + :param utterances: Speaker wise utterances. Field is set only when enableSpeakerDiarization is true., defaults to None + :type utterances: List[UtteranceObject], optional + :param words: words + :type words: List[WordSegment] + :param confidence: Overall transcription confidence., defaults to None + :type confidence: float, optional + :param transcript: The entire transcript with/without punctuations according to the input. + :type transcript: str + """ + + def __init__( + self, + words: List[WordSegment], + transcript: str, + speaker_count: int = None, + utterances: List[UtteranceObject] = None, + confidence: float = None, + ): + if speaker_count is not None: + self.speaker_count = speaker_count + if utterances is not None: + self.utterances = self._define_list(utterances, UtteranceObject) + self.words = self._define_list(words, WordSegment) + if confidence is not None: + self.confidence = confidence + self.transcript = transcript diff --git a/src/ring_central/models/transfer_extension_info.py b/src/ring_central/models/transfer_extension_info.py new file mode 100644 index 00000000..d374440a --- /dev/null +++ b/src/ring_central/models/transfer_extension_info.py @@ -0,0 +1,35 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id", "extension_number": "extensionNumber"}) +class TransferExtensionInfo(BaseModel): + """TransferExtensionInfo + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension resource, defaults to None + :type uri: str, optional + :param name: Extension name, defaults to None + :type name: str, optional + :param extension_number: Extension number, defaults to None + :type extension_number: str, optional + """ + + def __init__( + self, + id_: str = None, + uri: str = None, + name: str = None, + extension_number: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if name is not None: + self.name = name + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/transfer_info.py b/src/ring_central/models/transfer_info.py new file mode 100644 index 00000000..7de506d2 --- /dev/null +++ b/src/ring_central/models/transfer_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .transfer_extension_info import TransferExtensionInfo + + +class TransferInfoAction(Enum): + """An enumeration representing different categories. + + :cvar HOLDTIMEEXPIRATION: "HoldTimeExpiration" + :vartype HOLDTIMEEXPIRATION: str + :cvar MAXCALLERS: "MaxCallers" + :vartype MAXCALLERS: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + """ + + HOLDTIMEEXPIRATION = "HoldTimeExpiration" + MAXCALLERS = "MaxCallers" + NOANSWER = "NoAnswer" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TransferInfoAction._member_map_.values())) + + +@JsonMap({}) +class TransferInfo(BaseModel): + """TransferInfo + + :param extension: extension, defaults to None + :type extension: TransferExtensionInfo, optional + :param action: Event that initiates transferring to the specified extension, defaults to None + :type action: TransferInfoAction, optional + """ + + def __init__( + self, extension: TransferExtensionInfo = None, action: TransferInfoAction = None + ): + if extension is not None: + self.extension = self._define_object(extension, TransferExtensionInfo) + if action is not None: + self.action = self._enum_matching( + action, TransferInfoAction.list(), "action" + ) diff --git a/src/ring_central/models/transfer_target.py b/src/ring_central/models/transfer_target.py new file mode 100644 index 00000000..97ffc995 --- /dev/null +++ b/src/ring_central/models/transfer_target.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "phone_number": "phoneNumber", + "park_orbit": "parkOrbit", + "extension_number": "extensionNumber", + } +) +class TransferTarget(BaseModel): + """Identifier of a call party the call will be transferred to. Only **one of** these parameters: `phoneNumber`, `voicemail`, `extensionNumber` or `parkOrbit` must be specified, otherwise an error is returned. + + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param voicemail: Voicemail owner extension identifier, defaults to None + :type voicemail: str, optional + :param park_orbit: Park orbit identifier, defaults to None + :type park_orbit: str, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + """ + + def __init__( + self, + phone_number: str = None, + voicemail: str = None, + park_orbit: str = None, + extension_number: str = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if voicemail is not None: + self.voicemail = voicemail + if park_orbit is not None: + self.park_orbit = park_orbit + if extension_number is not None: + self.extension_number = extension_number diff --git a/src/ring_central/models/transferred_extension.py b/src/ring_central/models/transferred_extension.py new file mode 100644 index 00000000..15794177 --- /dev/null +++ b/src/ring_central/models/transferred_extension.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class TransferredExtension(BaseModel): + """Transfer extension settings, set/returned if `callHandlingAction` is specified as `TransferToExtension` + + :param id_: Internal identifier of an extension, defaults to None + :type id_: str, optional + :param uri: Canonical URI of an extension resource, defaults to None + :type uri: str, optional + """ + + def __init__(self, id_: str = None, uri: str = None): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/transferred_extension_info.py b/src/ring_central/models/transferred_extension_info.py new file mode 100644 index 00000000..a9798e2a --- /dev/null +++ b/src/ring_central/models/transferred_extension_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .transferred_extension import TransferredExtension + + +@JsonMap({}) +class TransferredExtensionInfo(BaseModel): + """TransferredExtensionInfo + + :param extension: Transfer extension settings, set/returned if `callHandlingAction` is specified as `TransferToExtension`, defaults to None + :type extension: TransferredExtension, optional + """ + + def __init__(self, extension: TransferredExtension = None): + if extension is not None: + self.extension = self._define_object(extension, TransferredExtension) diff --git a/src/ring_central/models/type_group.py b/src/ring_central/models/type_group.py new file mode 100644 index 00000000..db0c8927 --- /dev/null +++ b/src/ring_central/models/type_group.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class TypeGroup(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar NONUSER: "NonUser" + :vartype NONUSER: str + """ + + USER = "User" + NONUSER = "NonUser" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, TypeGroup._member_map_.values())) diff --git a/src/ring_central/models/u_brand_info.py b/src/ring_central/models/u_brand_info.py new file mode 100644 index 00000000..eabd428a --- /dev/null +++ b/src/ring_central/models/u_brand_info.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class UBrandInfo(BaseModel): + """Account sub-brand information + + :param id_: Sub-brand unique ID, defaults to None + :type id_: str, optional + :param name: Sub-brand name, defaults to None + :type name: str, optional + """ + + def __init__(self, id_: str = None, name: str = None): + if id_ is not None: + self.id_ = id_ + if name is not None: + self.name = name diff --git a/src/ring_central/models/unconditional_forwarding_info.py b/src/ring_central/models/unconditional_forwarding_info.py new file mode 100644 index 00000000..f1cd290d --- /dev/null +++ b/src/ring_central/models/unconditional_forwarding_info.py @@ -0,0 +1,57 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UnconditionalForwardingInfoAction(Enum): + """An enumeration representing different categories. + + :cvar HOLDTIMEEXPIRATION: "HoldTimeExpiration" + :vartype HOLDTIMEEXPIRATION: str + :cvar MAXCALLERS: "MaxCallers" + :vartype MAXCALLERS: str + :cvar NOANSWER: "NoAnswer" + :vartype NOANSWER: str + """ + + HOLDTIMEEXPIRATION = "HoldTimeExpiration" + MAXCALLERS = "MaxCallers" + NOANSWER = "NoAnswer" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UnconditionalForwardingInfoAction._member_map_.values(), + ) + ) + + +@JsonMap({"phone_number": "phoneNumber"}) +class UnconditionalForwardingInfo(BaseModel): + """Unconditional forwarding parameters. + Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter + + + :param phone_number: Phone number to which the call is forwarded. In addition to common e.164 format, the following number patterns are supported: 11xxxxxxxxxxx, 444xxxxxxxxxxx, 616xxxxxxxxxxx, 1700yyyy; where xxxxxxxxxxx is a phone number in e.164 format (without '+' sign) and yyyy is an external short extension number. Max number of digits is 15 , defaults to None + :type phone_number: str, optional + :param action: Event that initiates forwarding to the specified phone number, defaults to None + :type action: UnconditionalForwardingInfoAction, optional + """ + + def __init__( + self, phone_number: str = None, action: UnconditionalForwardingInfoAction = None + ): + if phone_number is not None: + self.phone_number = phone_number + if action is not None: + self.action = self._enum_matching( + action, UnconditionalForwardingInfoAction.list(), "action" + ) diff --git a/src/ring_central/models/unified_presence.py b/src/ring_central/models/unified_presence.py new file mode 100644 index 00000000..3bd72ddb --- /dev/null +++ b/src/ring_central/models/unified_presence.py @@ -0,0 +1,69 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .unified_presence_glip import UnifiedPresenceGlip +from .unified_presence_telephony import UnifiedPresenceTelephony +from .unified_presence_meeting import UnifiedPresenceMeeting + + +class UnifiedPresenceStatus(Enum): + """An enumeration representing different categories. + + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar DND: "DND" + :vartype DND: str + :cvar BUSY: "Busy" + :vartype BUSY: str + """ + + AVAILABLE = "Available" + OFFLINE = "Offline" + DND = "DND" + BUSY = "Busy" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, UnifiedPresenceStatus._member_map_.values())) + + +@JsonMap({}) +class UnifiedPresence(BaseModel): + """UnifiedPresence + + :param status: Aggregated presence status of the user, defaults to None + :type status: UnifiedPresenceStatus, optional + :param glip: Returned if *Glip* feature is switched on, defaults to None + :type glip: UnifiedPresenceGlip, optional + :param telephony: Returned if *BLF* feature is switched on, defaults to None + :type telephony: UnifiedPresenceTelephony, optional + :param meeting: Returned if *Meetings* feature is switched on, defaults to None + :type meeting: UnifiedPresenceMeeting, optional + """ + + def __init__( + self, + status: UnifiedPresenceStatus = None, + glip: UnifiedPresenceGlip = None, + telephony: UnifiedPresenceTelephony = None, + meeting: UnifiedPresenceMeeting = None, + ): + if status is not None: + self.status = self._enum_matching( + status, UnifiedPresenceStatus.list(), "status" + ) + if glip is not None: + self.glip = self._define_object(glip, UnifiedPresenceGlip) + if telephony is not None: + self.telephony = self._define_object(telephony, UnifiedPresenceTelephony) + if meeting is not None: + self.meeting = self._define_object(meeting, UnifiedPresenceMeeting) diff --git a/src/ring_central/models/unified_presence_glip.py b/src/ring_central/models/unified_presence_glip.py new file mode 100644 index 00000000..f8d3b6ba --- /dev/null +++ b/src/ring_central/models/unified_presence_glip.py @@ -0,0 +1,108 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UnifiedPresenceGlipStatus(Enum): + """An enumeration representing different categories. + + :cvar OFFLINE: "Offline" + :vartype OFFLINE: str + :cvar ONLINE: "Online" + :vartype ONLINE: str + """ + + OFFLINE = "Offline" + ONLINE = "Online" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UnifiedPresenceGlipStatus._member_map_.values()) + ) + + +class UnifiedPresenceGlipVisibility(Enum): + """An enumeration representing different categories. + + :cvar VISIBLE: "Visible" + :vartype VISIBLE: str + :cvar INVISIBLE: "Invisible" + :vartype INVISIBLE: str + """ + + VISIBLE = "Visible" + INVISIBLE = "Invisible" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UnifiedPresenceGlipVisibility._member_map_.values()) + ) + + +class UnifiedPresenceGlipAvailability(Enum): + """An enumeration representing different categories. + + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + :cvar DND: "DND" + :vartype DND: str + """ + + AVAILABLE = "Available" + DND = "DND" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, UnifiedPresenceGlipAvailability._member_map_.values() + ) + ) + + +@JsonMap({}) +class UnifiedPresenceGlip(BaseModel): + """Returned if *Glip* feature is switched on + + :param status: Glip connection status calculated from all user's apps. Returned always for the requester's extension; returned for another users if their glip visibility is set to 'Visible', defaults to None + :type status: UnifiedPresenceGlipStatus, optional + :param visibility: Visibility setting allowing other users to see the user's Glip presence status; returned only for requester's extension, defaults to None + :type visibility: UnifiedPresenceGlipVisibility, optional + :param availability: Shows whether user wants to receive Glip notifications or not., defaults to None + :type availability: UnifiedPresenceGlipAvailability, optional + """ + + def __init__( + self, + status: UnifiedPresenceGlipStatus = None, + visibility: UnifiedPresenceGlipVisibility = None, + availability: UnifiedPresenceGlipAvailability = None, + ): + if status is not None: + self.status = self._enum_matching( + status, UnifiedPresenceGlipStatus.list(), "status" + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, UnifiedPresenceGlipVisibility.list(), "visibility" + ) + if availability is not None: + self.availability = self._enum_matching( + availability, UnifiedPresenceGlipAvailability.list(), "availability" + ) diff --git a/src/ring_central/models/unified_presence_list_entry.py b/src/ring_central/models/unified_presence_list_entry.py new file mode 100644 index 00000000..60d6548b --- /dev/null +++ b/src/ring_central/models/unified_presence_list_entry.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .unified_presence import UnifiedPresence + + +@JsonMap({"resource_id": "resourceId"}) +class UnifiedPresenceListEntry(BaseModel): + """UnifiedPresenceListEntry + + :param resource_id: Internal identifier of the resource, defaults to None + :type resource_id: str, optional + :param status: Status code of resource retrieval, defaults to None + :type status: int, optional + :param body: body, defaults to None + :type body: UnifiedPresence, optional + """ + + def __init__( + self, resource_id: str = None, status: int = None, body: UnifiedPresence = None + ): + if resource_id is not None: + self.resource_id = resource_id + if status is not None: + self.status = status + if body is not None: + self.body = self._define_object(body, UnifiedPresence) diff --git a/src/ring_central/models/unified_presence_meeting.py b/src/ring_central/models/unified_presence_meeting.py new file mode 100644 index 00000000..d54467e0 --- /dev/null +++ b/src/ring_central/models/unified_presence_meeting.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UnifiedPresenceMeetingStatus(Enum): + """An enumeration representing different categories. + + :cvar NOMEETING: "NoMeeting" + :vartype NOMEETING: str + :cvar INMEETING: "InMeeting" + :vartype INMEETING: str + """ + + NOMEETING = "NoMeeting" + INMEETING = "InMeeting" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UnifiedPresenceMeetingStatus._member_map_.values()) + ) + + +@JsonMap({}) +class UnifiedPresenceMeeting(BaseModel): + """Returned if *Meetings* feature is switched on + + :param status: Meeting status calculated from all user`s meetings, defaults to None + :type status: UnifiedPresenceMeetingStatus, optional + """ + + def __init__(self, status: UnifiedPresenceMeetingStatus = None): + if status is not None: + self.status = self._enum_matching( + status, UnifiedPresenceMeetingStatus.list(), "status" + ) diff --git a/src/ring_central/models/unified_presence_telephony.py b/src/ring_central/models/unified_presence_telephony.py new file mode 100644 index 00000000..08fd30a5 --- /dev/null +++ b/src/ring_central/models/unified_presence_telephony.py @@ -0,0 +1,126 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UnifiedPresenceTelephonyStatus(Enum): + """An enumeration representing different categories. + + :cvar NOCALL: "NoCall" + :vartype NOCALL: str + :cvar RINGING: "Ringing" + :vartype RINGING: str + :cvar CALLCONNECTED: "CallConnected" + :vartype CALLCONNECTED: str + :cvar ONHOLD: "OnHold" + :vartype ONHOLD: str + :cvar PARKEDCALL: "ParkedCall" + :vartype PARKEDCALL: str + """ + + NOCALL = "NoCall" + RINGING = "Ringing" + CALLCONNECTED = "CallConnected" + ONHOLD = "OnHold" + PARKEDCALL = "ParkedCall" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UnifiedPresenceTelephonyStatus._member_map_.values()) + ) + + +class UnifiedPresenceTelephonyVisibility(Enum): + """An enumeration representing different categories. + + :cvar VISIBLE: "Visible" + :vartype VISIBLE: str + :cvar INVISIBLE: "Invisible" + :vartype INVISIBLE: str + """ + + VISIBLE = "Visible" + INVISIBLE = "Invisible" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UnifiedPresenceTelephonyVisibility._member_map_.values(), + ) + ) + + +class UnifiedPresenceTelephonyAvailability(Enum): + """An enumeration representing different categories. + + :cvar TAKEALLCALLS: "TakeAllCalls" + :vartype TAKEALLCALLS: str + :cvar DONOTACCEPTANYCALLS: "DoNotAcceptAnyCalls" + :vartype DONOTACCEPTANYCALLS: str + :cvar DONOTACCEPTQUEUECALLS: "DoNotAcceptQueueCalls" + :vartype DONOTACCEPTQUEUECALLS: str + """ + + TAKEALLCALLS = "TakeAllCalls" + DONOTACCEPTANYCALLS = "DoNotAcceptAnyCalls" + DONOTACCEPTQUEUECALLS = "DoNotAcceptQueueCalls" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UnifiedPresenceTelephonyAvailability._member_map_.values(), + ) + ) + + +@JsonMap({}) +class UnifiedPresenceTelephony(BaseModel): + """Returned if *BLF* feature is switched on + + :param status: Telephony status calculated from all user's phone numbers. Returned always for the requester's extension; returned for another users if their telephony visibility is set to 'Visible', defaults to None + :type status: UnifiedPresenceTelephonyStatus, optional + :param visibility: Specifies if the user's phone presence status is visible to other users; returned only for requester's extension, defaults to None + :type visibility: UnifiedPresenceTelephonyVisibility, optional + :param availability: Telephony DND status. Returned if *DND* feature is switched on, defaults to None + :type availability: UnifiedPresenceTelephonyAvailability, optional + """ + + def __init__( + self, + status: UnifiedPresenceTelephonyStatus = None, + visibility: UnifiedPresenceTelephonyVisibility = None, + availability: UnifiedPresenceTelephonyAvailability = None, + ): + if status is not None: + self.status = self._enum_matching( + status, UnifiedPresenceTelephonyStatus.list(), "status" + ) + if visibility is not None: + self.visibility = self._enum_matching( + visibility, UnifiedPresenceTelephonyVisibility.list(), "visibility" + ) + if availability is not None: + self.availability = self._enum_matching( + availability, + UnifiedPresenceTelephonyAvailability.list(), + "availability", + ) diff --git a/src/ring_central/models/update_answering_rule_request.py b/src/ring_central/models/update_answering_rule_request.py new file mode 100644 index 00000000..08bba31b --- /dev/null +++ b/src/ring_central/models/update_answering_rule_request.py @@ -0,0 +1,234 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .forwarding_info_create_rule_request import ForwardingInfoCreateRuleRequest +from .callers_info_request import CallersInfoRequest +from .called_number_info import CalledNumberInfo +from .schedule_info import ScheduleInfo +from .unconditional_forwarding_info import UnconditionalForwardingInfo +from .queue_info import QueueInfo +from .voicemail_info import VoicemailInfo +from .missed_call_info import MissedCallInfo +from .greeting_info import GreetingInfo +from .transferred_extension_info import TransferredExtensionInfo + + +class UpdateAnsweringRuleRequestCallHandlingAction(Enum): + """An enumeration representing different categories. + + :cvar FORWARDCALLS: "ForwardCalls" + :vartype FORWARDCALLS: str + :cvar UNCONDITIONALFORWARDING: "UnconditionalForwarding" + :vartype UNCONDITIONALFORWARDING: str + :cvar AGENTQUEUE: "AgentQueue" + :vartype AGENTQUEUE: str + :cvar TRANSFERTOEXTENSION: "TransferToExtension" + :vartype TRANSFERTOEXTENSION: str + :cvar TAKEMESSAGESONLY: "TakeMessagesOnly" + :vartype TAKEMESSAGESONLY: str + :cvar PLAYANNOUNCEMENTONLY: "PlayAnnouncementOnly" + :vartype PLAYANNOUNCEMENTONLY: str + :cvar SHAREDLINES: "SharedLines" + :vartype SHAREDLINES: str + """ + + FORWARDCALLS = "ForwardCalls" + UNCONDITIONALFORWARDING = "UnconditionalForwarding" + AGENTQUEUE = "AgentQueue" + TRANSFERTOEXTENSION = "TransferToExtension" + TAKEMESSAGESONLY = "TakeMessagesOnly" + PLAYANNOUNCEMENTONLY = "PlayAnnouncementOnly" + SHAREDLINES = "SharedLines" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateAnsweringRuleRequestCallHandlingAction._member_map_.values(), + ) + ) + + +class UpdateAnsweringRuleRequestType(Enum): + """An enumeration representing different categories. + + :cvar BUSINESSHOURS: "BusinessHours" + :vartype BUSINESSHOURS: str + :cvar AFTERHOURS: "AfterHours" + :vartype AFTERHOURS: str + :cvar CUSTOM: "Custom" + :vartype CUSTOM: str + """ + + BUSINESSHOURS = "BusinessHours" + AFTERHOURS = "AfterHours" + CUSTOM = "Custom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UpdateAnsweringRuleRequestType._member_map_.values()) + ) + + +class UpdateAnsweringRuleRequestScreening(Enum): + """An enumeration representing different categories. + + :cvar OFF: "Off" + :vartype OFF: str + :cvar NOCALLERID: "NoCallerId" + :vartype NOCALLERID: str + :cvar UNKNOWNCALLERID: "UnknownCallerId" + :vartype UNKNOWNCALLERID: str + :cvar ALWAYS: "Always" + :vartype ALWAYS: str + """ + + OFF = "Off" + NOCALLERID = "NoCallerId" + UNKNOWNCALLERID = "UnknownCallerId" + ALWAYS = "Always" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateAnsweringRuleRequestScreening._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "called_numbers": "calledNumbers", + "call_handling_action": "callHandlingAction", + "type_": "type", + "unconditional_forwarding": "unconditionalForwarding", + "missed_call": "missedCall", + "show_inactive_numbers": "showInactiveNumbers", + } +) +class UpdateAnsweringRuleRequest(BaseModel): + """UpdateAnsweringRuleRequest + + :param id_: Identifier of an answering rule, defaults to None + :type id_: str, optional + :param forwarding: Forwarding parameters. Returned if 'ForwardCalls' is specified in 'callHandlingAction'. These settings determine the forwarding numbers to which the call will be forwarded, defaults to None + :type forwarding: ForwardingInfoCreateRuleRequest, optional + :param enabled: Specifies if the rule is active or inactive. The default value is `true`, defaults to None + :type enabled: bool, optional + :param name: Name of an answering rule specified by user, defaults to None + :type name: str, optional + :param callers: Answering rule will be applied when calls are received from the specified caller(s), defaults to None + :type callers: List[CallersInfoRequest], optional + :param called_numbers: Answering rules are applied when calling to selected number(s), defaults to None + :type called_numbers: List[CalledNumberInfo], optional + :param schedule: Schedule when an answering rule should be applied, defaults to None + :type schedule: ScheduleInfo, optional + :param call_handling_action: Specifies how incoming calls are forwarded, defaults to None + :type call_handling_action: UpdateAnsweringRuleRequestCallHandlingAction, optional + :param type_: Type of an answering rule, defaults to None + :type type_: UpdateAnsweringRuleRequestType, optional + :param unconditional_forwarding: Unconditional forwarding parameters. Returned if 'UnconditionalForwarding' value is specified for the `callHandlingAction` parameter , defaults to None + :type unconditional_forwarding: UnconditionalForwardingInfo, optional + :param queue: Queue settings applied for department (call queue) extension type, with the 'AgentQueue' value specified as a call handling action , defaults to None + :type queue: QueueInfo, optional + :param voicemail: Specifies whether to take a voicemail and who should do it, defaults to None + :type voicemail: VoicemailInfo, optional + :param missed_call: Specifies behavior for the missed call scenario. Returned only if `enabled` parameter of a voicemail is set to 'false', defaults to None + :type missed_call: MissedCallInfo, optional + :param greetings: Greetings applied for an answering rule; only predefined greetings can be applied, see Dictionary Greeting List , defaults to None + :type greetings: List[GreetingInfo], optional + :param screening: Call screening status. 'Off' - no call screening; 'NoCallerId' - if caller ID is missing, then callers are asked to say their name before connecting; 'UnknownCallerId' - if caller ID is not in contact list, then callers are asked to say their name before connecting; 'Always' - the callers are always asked to say their name before connecting. The default value is 'Off' , defaults to None + :type screening: UpdateAnsweringRuleRequestScreening, optional + :param show_inactive_numbers: Indicates whether inactive numbers should be returned or not, defaults to None + :type show_inactive_numbers: bool, optional + :param transfer: transfer, defaults to None + :type transfer: TransferredExtensionInfo, optional + """ + + def __init__( + self, + id_: str = None, + forwarding: ForwardingInfoCreateRuleRequest = None, + enabled: bool = None, + name: str = None, + callers: List[CallersInfoRequest] = None, + called_numbers: List[CalledNumberInfo] = None, + schedule: ScheduleInfo = None, + call_handling_action: UpdateAnsweringRuleRequestCallHandlingAction = None, + type_: UpdateAnsweringRuleRequestType = None, + unconditional_forwarding: UnconditionalForwardingInfo = None, + queue: QueueInfo = None, + voicemail: VoicemailInfo = None, + missed_call: MissedCallInfo = None, + greetings: List[GreetingInfo] = None, + screening: UpdateAnsweringRuleRequestScreening = None, + show_inactive_numbers: bool = None, + transfer: TransferredExtensionInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if forwarding is not None: + self.forwarding = self._define_object( + forwarding, ForwardingInfoCreateRuleRequest + ) + if enabled is not None: + self.enabled = enabled + if name is not None: + self.name = name + if callers is not None: + self.callers = self._define_list(callers, CallersInfoRequest) + if called_numbers is not None: + self.called_numbers = self._define_list(called_numbers, CalledNumberInfo) + if schedule is not None: + self.schedule = self._define_object(schedule, ScheduleInfo) + if call_handling_action is not None: + self.call_handling_action = self._enum_matching( + call_handling_action, + UpdateAnsweringRuleRequestCallHandlingAction.list(), + "call_handling_action", + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, UpdateAnsweringRuleRequestType.list(), "type_" + ) + if unconditional_forwarding is not None: + self.unconditional_forwarding = self._define_object( + unconditional_forwarding, UnconditionalForwardingInfo + ) + if queue is not None: + self.queue = self._define_object(queue, QueueInfo) + if voicemail is not None: + self.voicemail = self._define_object(voicemail, VoicemailInfo) + if missed_call is not None: + self.missed_call = self._define_object(missed_call, MissedCallInfo) + if greetings is not None: + self.greetings = self._define_list(greetings, GreetingInfo) + if screening is not None: + self.screening = self._enum_matching( + screening, UpdateAnsweringRuleRequestScreening.list(), "screening" + ) + if show_inactive_numbers is not None: + self.show_inactive_numbers = show_inactive_numbers + if transfer is not None: + self.transfer = self._define_object(transfer, TransferredExtensionInfo) diff --git a/src/ring_central/models/update_bridge_request.py b/src/ring_central/models/update_bridge_request.py new file mode 100644 index 00000000..834bfa54 --- /dev/null +++ b/src/ring_central/models/update_bridge_request.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bridge_pins_without_pstn import BridgePinsWithoutPstn +from .bridge_request_security import BridgeRequestSecurity +from .bridge_preferences import BridgePreferences + + +@JsonMap({}) +class UpdateBridgeRequest(BaseModel): + """UpdateBridgeRequest + + :param name: Custom name of a bridge, defaults to None + :type name: str, optional + :param pins: pins, defaults to None + :type pins: BridgePinsWithoutPstn, optional + :param security: security, defaults to None + :type security: BridgeRequestSecurity, optional + :param preferences: preferences, defaults to None + :type preferences: BridgePreferences, optional + """ + + def __init__( + self, + name: str = None, + pins: BridgePinsWithoutPstn = None, + security: BridgeRequestSecurity = None, + preferences: BridgePreferences = None, + ): + if name is not None: + self.name = name + if pins is not None: + self.pins = self._define_object(pins, BridgePinsWithoutPstn) + if security is not None: + self.security = self._define_object(security, BridgeRequestSecurity) + if preferences is not None: + self.preferences = self._define_object(preferences, BridgePreferences) diff --git a/src/ring_central/models/update_conferencing_info_request.py b/src/ring_central/models/update_conferencing_info_request.py new file mode 100644 index 00000000..1e6dcef1 --- /dev/null +++ b/src/ring_central/models/update_conferencing_info_request.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .conference_phone_number_info import ConferencePhoneNumberInfo + + +@JsonMap( + {"phone_numbers": "phoneNumbers", "allow_join_before_host": "allowJoinBeforeHost"} +) +class UpdateConferencingInfoRequest(BaseModel): + """UpdateConferencingInfoRequest + + :param phone_numbers: Multiple dial-in phone numbers to connect to audio conference service, relevant for user's brand. Each number is given with the country and location information, in order to let the user choose the less expensive way to connect to a conference. The first number in the list is the primary conference number, that is default and domestic , defaults to None + :type phone_numbers: List[ConferencePhoneNumberInfo], optional + :param allow_join_before_host: Determines if host user allows conference participants to join before the host, defaults to None + :type allow_join_before_host: bool, optional + """ + + def __init__( + self, + phone_numbers: List[ConferencePhoneNumberInfo] = None, + allow_join_before_host: bool = None, + ): + if phone_numbers is not None: + self.phone_numbers = self._define_list( + phone_numbers, ConferencePhoneNumberInfo + ) + if allow_join_before_host is not None: + self.allow_join_before_host = allow_join_before_host diff --git a/src/ring_central/models/update_device_phone_info.py b/src/ring_central/models/update_device_phone_info.py new file mode 100644 index 00000000..51e851b6 --- /dev/null +++ b/src/ring_central/models/update_device_phone_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"id_": "id"}) +class UpdateDevicePhoneInfo(BaseModel): + """UpdateDevicePhoneInfo + + :param id_: Internal identifier of a phone number, defaults to None + :type id_: str, optional + """ + + def __init__(self, id_: str = None): + if id_ is not None: + self.id_ = id_ diff --git a/src/ring_central/models/update_everyone_team_request.py b/src/ring_central/models/update_everyone_team_request.py new file mode 100644 index 00000000..f9179056 --- /dev/null +++ b/src/ring_central/models/update_everyone_team_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class UpdateEveryoneTeamRequest(BaseModel): + """UpdateEveryoneTeamRequest + + :param name: Everyone chat name. Maximum number of characters supported is 250, defaults to None + :type name: str, optional + :param description: Everyone chat description. Maximum number of characters supported is 1000, defaults to None + :type description: str, optional + """ + + def __init__(self, name: str = None, description: str = None): + if name is not None: + self.name = name + if description is not None: + self.description = description diff --git a/src/ring_central/models/update_forwarding_number_request.py b/src/ring_central/models/update_forwarding_number_request.py new file mode 100644 index 00000000..74db4408 --- /dev/null +++ b/src/ring_central/models/update_forwarding_number_request.py @@ -0,0 +1,82 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UpdateForwardingNumberRequestType(Enum): + """An enumeration representing different categories. + + :cvar HOME: "Home" + :vartype HOME: str + :cvar MOBILE: "Mobile" + :vartype MOBILE: str + :cvar WORK: "Work" + :vartype WORK: str + :cvar PHONELINE: "PhoneLine" + :vartype PHONELINE: str + :cvar OUTAGE: "Outage" + :vartype OUTAGE: str + :cvar OTHER: "Other" + :vartype OTHER: str + :cvar BUSINESSMOBILEPHONE: "BusinessMobilePhone" + :vartype BUSINESSMOBILEPHONE: str + :cvar EXTERNALCARRIER: "ExternalCarrier" + :vartype EXTERNALCARRIER: str + """ + + HOME = "Home" + MOBILE = "Mobile" + WORK = "Work" + PHONELINE = "PhoneLine" + OUTAGE = "Outage" + OTHER = "Other" + BUSINESSMOBILEPHONE = "BusinessMobilePhone" + EXTERNALCARRIER = "ExternalCarrier" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateForwardingNumberRequestType._member_map_.values(), + ) + ) + + +@JsonMap({"phone_number": "phoneNumber", "flip_number": "flipNumber", "type_": "type"}) +class UpdateForwardingNumberRequest(BaseModel): + """UpdateForwardingNumberRequest + + :param phone_number: Forwarding/Call flip phone number, defaults to None + :type phone_number: str, optional + :param label: Forwarding/Call flip number title, defaults to None + :type label: str, optional + :param flip_number: Number assigned to the call flip phone number, corresponds to the shortcut dial number, defaults to None + :type flip_number: str, optional + :param type_: Forwarding phone number type, defaults to None + :type type_: UpdateForwardingNumberRequestType, optional + """ + + def __init__( + self, + phone_number: str = None, + label: str = None, + flip_number: str = None, + type_: UpdateForwardingNumberRequestType = None, + ): + if phone_number is not None: + self.phone_number = phone_number + if label is not None: + self.label = label + if flip_number is not None: + self.flip_number = flip_number + if type_ is not None: + self.type_ = self._enum_matching( + type_, UpdateForwardingNumberRequestType.list(), "type_" + ) diff --git a/src/ring_central/models/update_invitee_request.py b/src/ring_central/models/update_invitee_request.py new file mode 100644 index 00000000..a3b20164 --- /dev/null +++ b/src/ring_central/models/update_invitee_request.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_role_enum import RcwRoleEnum +from .rcw_invitee_type_enum import RcwInviteeTypeEnum + + +@JsonMap( + { + "first_name": "firstName", + "last_name": "lastName", + "job_title": "jobTitle", + "type_": "type", + "send_invite": "sendInvite", + } +) +class UpdateInviteeRequest(BaseModel): + """UpdateInviteeRequest + + :param first_name: First (given) name, defaults to None + :type first_name: str, optional + :param last_name: Last (family) name, defaults to None + :type last_name: str, optional + :param email: User's contact email, defaults to None + :type email: str, optional + :param job_title: Job title, defaults to None + :type job_title: str, optional + :param role: The role of the webinar session participant/invitee. See also: [Understanding Webinar Roles](https://support.ringcentral.com/webinar/getting-started/understanding-ringcentral-webinar-roles.html) + :type role: RcwRoleEnum + :param type_: The type of the webinar invitee, defaults to None + :type type_: RcwInviteeTypeEnum, optional + :param send_invite: Indicates if invite/cancellation emails have to be sent to this invitee. For "Host" it cannot be set to false. If it is true it can't be changed back to false. , defaults to None + :type send_invite: bool, optional + """ + + def __init__( + self, + role: RcwRoleEnum, + first_name: str = None, + last_name: str = None, + email: str = None, + job_title: str = None, + type_: RcwInviteeTypeEnum = None, + send_invite: bool = None, + ): + if first_name is not None: + self.first_name = first_name + if last_name is not None: + self.last_name = last_name + if email is not None: + self.email = email + if job_title is not None: + self.job_title = job_title + self.role = self._enum_matching(role, RcwRoleEnum.list(), "role") + if type_ is not None: + self.type_ = self._enum_matching(type_, RcwInviteeTypeEnum.list(), "type_") + if send_invite is not None: + self.send_invite = send_invite diff --git a/src/ring_central/models/update_ivr_prompt_request.py b/src/ring_central/models/update_ivr_prompt_request.py new file mode 100644 index 00000000..6517079e --- /dev/null +++ b/src/ring_central/models/update_ivr_prompt_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class UpdateIvrPromptRequest(BaseModel): + """UpdateIvrPromptRequest + + :param filename: Name of a file to be uploaded as a prompt, defaults to None + :type filename: str, optional + """ + + def __init__(self, filename: str = None): + if filename is not None: + self.filename = filename diff --git a/src/ring_central/models/update_message_bulk_request.py b/src/ring_central/models/update_message_bulk_request.py new file mode 100644 index 00000000..b987ce83 --- /dev/null +++ b/src/ring_central/models/update_message_bulk_request.py @@ -0,0 +1,22 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .update_message_request import UpdateMessageRequest + + +@JsonMap({"resource_id": "resourceId"}) +class UpdateMessageBulkRequest(BaseModel): + """UpdateMessageBulkRequest + + :param resource_id: Internal identifier of a resource (required when alternative syntax with '*' is used), defaults to None + :type resource_id: str, optional + :param body: body + :type body: UpdateMessageRequest + """ + + def __init__(self, body: UpdateMessageRequest, resource_id: str = None): + if resource_id is not None: + self.resource_id = resource_id + self.body = self._define_object(body, UpdateMessageRequest) diff --git a/src/ring_central/models/update_message_request.py b/src/ring_central/models/update_message_request.py new file mode 100644 index 00000000..76b30196 --- /dev/null +++ b/src/ring_central/models/update_message_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .message_read_status_enum import MessageReadStatusEnum + + +@JsonMap({"read_status": "readStatus"}) +class UpdateMessageRequest(BaseModel): + """UpdateMessageRequest + + :param read_status: Message read status + :type read_status: MessageReadStatusEnum + """ + + def __init__(self, read_status: MessageReadStatusEnum): + self.read_status = self._enum_matching( + read_status, MessageReadStatusEnum.list(), "read_status" + ) diff --git a/src/ring_central/models/update_multiple_switches_request.py b/src/ring_central/models/update_multiple_switches_request.py new file mode 100644 index 00000000..f0d835c5 --- /dev/null +++ b/src/ring_central/models/update_multiple_switches_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .update_switch_info import UpdateSwitchInfo + + +@JsonMap({}) +class UpdateMultipleSwitchesRequest(BaseModel): + """UpdateMultipleSwitchesRequest + + :param records: records, defaults to None + :type records: List[UpdateSwitchInfo], optional + """ + + def __init__(self, records: List[UpdateSwitchInfo] = None): + if records is not None: + self.records = self._define_list(records, UpdateSwitchInfo) diff --git a/src/ring_central/models/update_multiple_switches_response.py b/src/ring_central/models/update_multiple_switches_response.py new file mode 100644 index 00000000..da60b879 --- /dev/null +++ b/src/ring_central/models/update_multiple_switches_response.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_task_info import BulkTaskInfo + + +@JsonMap({}) +class UpdateMultipleSwitchesResponse(BaseModel): + """UpdateMultipleSwitchesResponse + + :param task: task, defaults to None + :type task: BulkTaskInfo, optional + """ + + def __init__(self, task: BulkTaskInfo = None): + if task is not None: + self.task = self._define_object(task, BulkTaskInfo) diff --git a/src/ring_central/models/update_multiple_wireless_points_request.py b/src/ring_central/models/update_multiple_wireless_points_request.py new file mode 100644 index 00000000..39d78e16 --- /dev/null +++ b/src/ring_central/models/update_multiple_wireless_points_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .update_wireless_point import UpdateWirelessPoint + + +@JsonMap({}) +class UpdateMultipleWirelessPointsRequest(BaseModel): + """UpdateMultipleWirelessPointsRequest + + :param records: records, defaults to None + :type records: List[UpdateWirelessPoint], optional + """ + + def __init__(self, records: List[UpdateWirelessPoint] = None): + if records is not None: + self.records = self._define_list(records, UpdateWirelessPoint) diff --git a/src/ring_central/models/update_multiple_wireless_points_response.py b/src/ring_central/models/update_multiple_wireless_points_response.py new file mode 100644 index 00000000..59026df9 --- /dev/null +++ b/src/ring_central/models/update_multiple_wireless_points_response.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .bulk_task_info import BulkTaskInfo + + +@JsonMap({}) +class UpdateMultipleWirelessPointsResponse(BaseModel): + """UpdateMultipleWirelessPointsResponse + + :param task: task, defaults to None + :type task: BulkTaskInfo, optional + """ + + def __init__(self, task: BulkTaskInfo = None): + if task is not None: + self.task = self._define_object(task, BulkTaskInfo) diff --git a/src/ring_central/models/update_network_request.py b/src/ring_central/models/update_network_request.py new file mode 100644 index 00000000..e281e618 --- /dev/null +++ b/src/ring_central/models/update_network_request.py @@ -0,0 +1,50 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .automatic_location_updates_site_info import AutomaticLocationUpdatesSiteInfo +from .public_ip_range_info import PublicIpRangeInfo +from .private_ip_range_info_request import PrivateIpRangeInfoRequest + + +@JsonMap( + { + "id_": "id", + "public_ip_ranges": "publicIpRanges", + "private_ip_ranges": "privateIpRanges", + } +) +class UpdateNetworkRequest(BaseModel): + """UpdateNetworkRequest + + :param id_: Internal identifier of a network, defaults to None + :type id_: str, optional + :param name: name + :type name: str + :param site: Site data. If multi-site feature is turned on for the account, then ID of a site must be specified. In order to assign a wireless point to the main site (company) site ID should be set to `main-site` , defaults to None + :type site: AutomaticLocationUpdatesSiteInfo, optional + :param public_ip_ranges: public_ip_ranges + :type public_ip_ranges: List[PublicIpRangeInfo] + :param private_ip_ranges: private_ip_ranges + :type private_ip_ranges: List[PrivateIpRangeInfoRequest] + """ + + def __init__( + self, + name: str, + public_ip_ranges: List[PublicIpRangeInfo], + private_ip_ranges: List[PrivateIpRangeInfoRequest], + id_: str = None, + site: AutomaticLocationUpdatesSiteInfo = None, + ): + if id_ is not None: + self.id_ = id_ + self.name = name + if site is not None: + self.site = self._define_object(site, AutomaticLocationUpdatesSiteInfo) + self.public_ip_ranges = self._define_list(public_ip_ranges, PublicIpRangeInfo) + self.private_ip_ranges = self._define_list( + private_ip_ranges, PrivateIpRangeInfoRequest + ) diff --git a/src/ring_central/models/update_subscription_request.py b/src/ring_central/models/update_subscription_request.py new file mode 100644 index 00000000..7b34ccb4 --- /dev/null +++ b/src/ring_central/models/update_subscription_request.py @@ -0,0 +1,21 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"event_filters": "eventFilters", "expires_in": "expiresIn"}) +class UpdateSubscriptionRequest(BaseModel): + """UpdateSubscriptionRequest + + :param event_filters: The list of event filters corresponding to events the user is subscribed to + :type event_filters: List[str] + :param expires_in: Subscription lifetime in seconds. The maximum subscription lifetime depends upon the specified `transportType`: \| Transport type \| Maximum permitted lifetime \| \| ------------------- \| ------------------------------ \| \| `WebHook` \| 315360000 seconds (10 years) \| \| `RC/APNS`, `RC/GSM` \| 7776000 seconds (90 days) \| \| `PubNub` \| 900 seconds (15 minutes) \| \| `WebSocket` \| n/a (the parameter is ignored) \| , defaults to None + :type expires_in: int, optional + """ + + def __init__(self, event_filters: List[str], expires_in: int = None): + self.event_filters = event_filters + if expires_in is not None: + self.expires_in = expires_in diff --git a/src/ring_central/models/update_switch_info.py b/src/ring_central/models/update_switch_info.py new file mode 100644 index 00000000..1c4bd984 --- /dev/null +++ b/src/ring_central/models/update_switch_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_site_info import SwitchSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard + + +@JsonMap( + {"id_": "id", "chassis_id": "chassisId", "emergency_address": "emergencyAddress"} +) +class UpdateSwitchInfo(BaseModel): + """UpdateSwitchInfo + + :param id_: Internal identifier of a switch, defaults to None + :type id_: str, optional + :param chassis_id: Unique identifier of a network switch. The supported formats are: XX:XX:XX:XX:XX:XX (symbols 0-9 and A-F) for MAC address and X.X.X.X for IP address (symbols 0-255) , defaults to None + :type chassis_id: str, optional + :param port: Switch entity extension for better diversity. Should be used together with chassisId., defaults to None + :type port: str, optional + :param name: Name of a network switch, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: SwitchSiteInfo, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddressInfo, optional + """ + + def __init__( + self, + id_: str = None, + chassis_id: str = None, + port: str = None, + name: str = None, + site: SwitchSiteInfo = None, + emergency_address: EmergencyAddressInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if chassis_id is not None: + self.chassis_id = chassis_id + if port is not None: + self.port = port + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, SwitchSiteInfo) + if emergency_address is not None: + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) diff --git a/src/ring_central/models/update_unified_presence.py b/src/ring_central/models/update_unified_presence.py new file mode 100644 index 00000000..ca4c5fc7 --- /dev/null +++ b/src/ring_central/models/update_unified_presence.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .update_unified_presence_glip import UpdateUnifiedPresenceGlip +from .update_unified_presence_telephony import UpdateUnifiedPresenceTelephony + + +@JsonMap({}) +class UpdateUnifiedPresence(BaseModel): + """UpdateUnifiedPresence + + :param glip: glip, defaults to None + :type glip: UpdateUnifiedPresenceGlip, optional + :param telephony: telephony, defaults to None + :type telephony: UpdateUnifiedPresenceTelephony, optional + """ + + def __init__( + self, + glip: UpdateUnifiedPresenceGlip = None, + telephony: UpdateUnifiedPresenceTelephony = None, + ): + if glip is not None: + self.glip = self._define_object(glip, UpdateUnifiedPresenceGlip) + if telephony is not None: + self.telephony = self._define_object( + telephony, UpdateUnifiedPresenceTelephony + ) diff --git a/src/ring_central/models/update_unified_presence_glip.py b/src/ring_central/models/update_unified_presence_glip.py new file mode 100644 index 00000000..ab41eb09 --- /dev/null +++ b/src/ring_central/models/update_unified_presence_glip.py @@ -0,0 +1,84 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UpdateUnifiedPresenceGlipVisibility(Enum): + """An enumeration representing different categories. + + :cvar VISIBLE: "Visible" + :vartype VISIBLE: str + :cvar INVISIBLE: "Invisible" + :vartype INVISIBLE: str + """ + + VISIBLE = "Visible" + INVISIBLE = "Invisible" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateUnifiedPresenceGlipVisibility._member_map_.values(), + ) + ) + + +class UpdateUnifiedPresenceGlipAvailability(Enum): + """An enumeration representing different categories. + + :cvar AVAILABLE: "Available" + :vartype AVAILABLE: str + :cvar DND: "DND" + :vartype DND: str + """ + + AVAILABLE = "Available" + DND = "DND" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateUnifiedPresenceGlipAvailability._member_map_.values(), + ) + ) + + +@JsonMap({}) +class UpdateUnifiedPresenceGlip(BaseModel): + """UpdateUnifiedPresenceGlip + + :param visibility: Visibility setting allowing other users to see Glip presence status, defaults to None + :type visibility: UpdateUnifiedPresenceGlipVisibility, optional + :param availability: Availability setting specifying whether to receive Glip notifications or not, defaults to None + :type availability: UpdateUnifiedPresenceGlipAvailability, optional + """ + + def __init__( + self, + visibility: UpdateUnifiedPresenceGlipVisibility = None, + availability: UpdateUnifiedPresenceGlipAvailability = None, + ): + if visibility is not None: + self.visibility = self._enum_matching( + visibility, UpdateUnifiedPresenceGlipVisibility.list(), "visibility" + ) + if availability is not None: + self.availability = self._enum_matching( + availability, + UpdateUnifiedPresenceGlipAvailability.list(), + "availability", + ) diff --git a/src/ring_central/models/update_unified_presence_telephony.py b/src/ring_central/models/update_unified_presence_telephony.py new file mode 100644 index 00000000..bbd97e71 --- /dev/null +++ b/src/ring_central/models/update_unified_presence_telephony.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UpdateUnifiedPresenceTelephonyAvailability(Enum): + """An enumeration representing different categories. + + :cvar TAKEALLCALLS: "TakeAllCalls" + :vartype TAKEALLCALLS: str + :cvar DONOTACCEPTANYCALLS: "DoNotAcceptAnyCalls" + :vartype DONOTACCEPTANYCALLS: str + :cvar DONOTACCEPTQUEUECALLS: "DoNotAcceptQueueCalls" + :vartype DONOTACCEPTQUEUECALLS: str + """ + + TAKEALLCALLS = "TakeAllCalls" + DONOTACCEPTANYCALLS = "DoNotAcceptAnyCalls" + DONOTACCEPTQUEUECALLS = "DoNotAcceptQueueCalls" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UpdateUnifiedPresenceTelephonyAvailability._member_map_.values(), + ) + ) + + +@JsonMap({}) +class UpdateUnifiedPresenceTelephony(BaseModel): + """UpdateUnifiedPresenceTelephony + + :param availability: Telephony DND status, defaults to None + :type availability: UpdateUnifiedPresenceTelephonyAvailability, optional + """ + + def __init__(self, availability: UpdateUnifiedPresenceTelephonyAvailability = None): + if availability is not None: + self.availability = self._enum_matching( + availability, + UpdateUnifiedPresenceTelephonyAvailability.list(), + "availability", + ) diff --git a/src/ring_central/models/update_user_profile_image_request.py b/src/ring_central/models/update_user_profile_image_request.py new file mode 100644 index 00000000..8c273cae --- /dev/null +++ b/src/ring_central/models/update_user_profile_image_request.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class UpdateUserProfileImageRequest(BaseModel): + """UpdateUserProfileImageRequest + + :param image: image, defaults to None + :type image: any, optional + """ + + def __init__(self, image: any = None): + if image is not None: + self.image = image diff --git a/src/ring_central/models/update_wireless_point.py b/src/ring_central/models/update_wireless_point.py new file mode 100644 index 00000000..ac35701b --- /dev/null +++ b/src/ring_central/models/update_wireless_point.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .emergency_address_auto_update_site_info import EmergencyAddressAutoUpdateSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard + + +@JsonMap({"id_": "id", "emergency_address": "emergencyAddress"}) +class UpdateWirelessPoint(BaseModel): + """UpdateWirelessPoint + + :param id_: Internal identifier of a wireless point, defaults to None + :type id_: str, optional + :param bssid: Unique 48-bit identifier of wireless access point that follows MAC address conventions. Mask: XX:XX:XX:XX:XX:XX, where X can be a symbol in the range of 0-9 or A-F , defaults to None + :type bssid: str, optional + :param name: Name of a wireless access point, defaults to None + :type name: str, optional + :param site: site, defaults to None + :type site: EmergencyAddressAutoUpdateSiteInfo, optional + :param emergency_address: emergency_address, defaults to None + :type emergency_address: EmergencyAddressInfo, optional + """ + + def __init__( + self, + id_: str = None, + bssid: str = None, + name: str = None, + site: EmergencyAddressAutoUpdateSiteInfo = None, + emergency_address: EmergencyAddressInfo = None, + ): + if id_ is not None: + self.id_ = id_ + if bssid is not None: + self.bssid = bssid + if name is not None: + self.name = name + if site is not None: + self.site = self._define_object(site, EmergencyAddressAutoUpdateSiteInfo) + if emergency_address is not None: + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) diff --git a/src/ring_central/models/usage_status.py b/src/ring_central/models/usage_status.py new file mode 100644 index 00000000..a820287e --- /dev/null +++ b/src/ring_central/models/usage_status.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class UsageStatus(Enum): + """An enumeration representing different categories. + + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar INACTIVE: "Inactive" + :vartype INACTIVE: str + """ + + ACTIVE = "Active" + INACTIVE = "Inactive" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, UsageStatus._member_map_.values())) diff --git a/src/ring_central/models/user.py b/src/ring_central/models/user.py new file mode 100644 index 00000000..ad05848b --- /dev/null +++ b/src/ring_central/models/user.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"account_id": "accountId", "extension_id": "extensionId"}) +class User(BaseModel): + """User + + :param account_id: User account identifier + :type account_id: str + :param extension_id: User extension identifier + :type extension_id: str + """ + + def __init__(self, account_id: str, extension_id: str): + self.account_id = account_id + self.extension_id = extension_id diff --git a/src/ring_central/models/user_answering_rule_list.py b/src/ring_central/models/user_answering_rule_list.py new file mode 100644 index 00000000..5d252c14 --- /dev/null +++ b/src/ring_central/models/user_answering_rule_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .answering_rule_info import AnsweringRuleInfo +from .enumerated_paging_model import EnumeratedPagingModel +from .page_navigation_model import PageNavigationModel + + +@JsonMap({}) +class UserAnsweringRuleList(BaseModel): + """UserAnsweringRuleList + + :param uri: Canonical URI of an answering rule list resource, defaults to None + :type uri: str, optional + :param records: List of answering rules, defaults to None + :type records: List[AnsweringRuleInfo], optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[AnsweringRuleInfo] = None, + paging: EnumeratedPagingModel = None, + navigation: PageNavigationModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, AnsweringRuleInfo) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) diff --git a/src/ring_central/models/user_business_hours_schedule_info.py b/src/ring_central/models/user_business_hours_schedule_info.py new file mode 100644 index 00000000..bb36d9ed --- /dev/null +++ b/src/ring_central/models/user_business_hours_schedule_info.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .weekly_schedule_info import WeeklyScheduleInfo + + +@JsonMap({"weekly_ranges": "weeklyRanges"}) +class UserBusinessHoursScheduleInfo(BaseModel): + """Schedule when an answering rule is applied + + :param weekly_ranges: Weekly schedule, defaults to None + :type weekly_ranges: WeeklyScheduleInfo, optional + """ + + def __init__(self, weekly_ranges: WeeklyScheduleInfo = None): + if weekly_ranges is not None: + self.weekly_ranges = self._define_object(weekly_ranges, WeeklyScheduleInfo) diff --git a/src/ring_central/models/user_business_hours_update_request.py b/src/ring_central/models/user_business_hours_update_request.py new file mode 100644 index 00000000..6eded24a --- /dev/null +++ b/src/ring_central/models/user_business_hours_update_request.py @@ -0,0 +1,18 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .user_business_hours_schedule_info import UserBusinessHoursScheduleInfo + + +@JsonMap({}) +class UserBusinessHoursUpdateRequest(BaseModel): + """UserBusinessHoursUpdateRequest + + :param schedule: Schedule when an answering rule is applied + :type schedule: UserBusinessHoursScheduleInfo + """ + + def __init__(self, schedule: UserBusinessHoursScheduleInfo): + self.schedule = self._define_object(schedule, UserBusinessHoursScheduleInfo) diff --git a/src/ring_central/models/user_business_hours_update_response.py b/src/ring_central/models/user_business_hours_update_response.py new file mode 100644 index 00000000..7754238e --- /dev/null +++ b/src/ring_central/models/user_business_hours_update_response.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .user_business_hours_schedule_info import UserBusinessHoursScheduleInfo + + +@JsonMap({}) +class UserBusinessHoursUpdateResponse(BaseModel): + """UserBusinessHoursUpdateResponse + + :param uri: Canonical URI of a business-hours resource, defaults to None + :type uri: str, optional + :param schedule: Schedule when an answering rule is applied, defaults to None + :type schedule: UserBusinessHoursScheduleInfo, optional + """ + + def __init__(self, uri: str = None, schedule: UserBusinessHoursScheduleInfo = None): + if uri is not None: + self.uri = uri + if schedule is not None: + self.schedule = self._define_object(schedule, UserBusinessHoursScheduleInfo) diff --git a/src/ring_central/models/user_call_queues.py b/src/ring_central/models/user_call_queues.py new file mode 100644 index 00000000..b0c5c431 --- /dev/null +++ b/src/ring_central/models/user_call_queues.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .queue_short_info_resource import QueueShortInfoResource + + +@JsonMap({}) +class UserCallQueues(BaseModel): + """UserCallQueues + + :param records: List of queues where an extension is an agent, defaults to None + :type records: List[QueueShortInfoResource], optional + """ + + def __init__(self, records: List[QueueShortInfoResource] = None): + if records is not None: + self.records = self._define_list(records, QueueShortInfoResource) diff --git a/src/ring_central/models/user_contacts_groups_info.py b/src/ring_central/models/user_contacts_groups_info.py new file mode 100644 index 00000000..a1bad043 --- /dev/null +++ b/src/ring_central/models/user_contacts_groups_info.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class UserContactsGroupsInfo(BaseModel): + """Information on address book groups + + :param uri: Link to the list of address book groups, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/user_contacts_navigation_info.py b/src/ring_central/models/user_contacts_navigation_info.py new file mode 100644 index 00000000..77315517 --- /dev/null +++ b/src/ring_central/models/user_contacts_navigation_info.py @@ -0,0 +1,52 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .user_contacts_navigation_info_uri import UserContactsNavigationInfoUri + + +@JsonMap( + { + "first_page": "firstPage", + "next_page": "nextPage", + "previous_page": "previousPage", + "last_page": "lastPage", + } +) +class UserContactsNavigationInfo(BaseModel): + """Information on navigation + + :param first_page: Canonical URI for a corresponding page of a list, defaults to None + :type first_page: UserContactsNavigationInfoUri, optional + :param next_page: Canonical URI for a corresponding page of a list, defaults to None + :type next_page: UserContactsNavigationInfoUri, optional + :param previous_page: Canonical URI for a corresponding page of a list, defaults to None + :type previous_page: UserContactsNavigationInfoUri, optional + :param last_page: Canonical URI for a corresponding page of a list, defaults to None + :type last_page: UserContactsNavigationInfoUri, optional + """ + + def __init__( + self, + first_page: UserContactsNavigationInfoUri = None, + next_page: UserContactsNavigationInfoUri = None, + previous_page: UserContactsNavigationInfoUri = None, + last_page: UserContactsNavigationInfoUri = None, + ): + if first_page is not None: + self.first_page = self._define_object( + first_page, UserContactsNavigationInfoUri + ) + if next_page is not None: + self.next_page = self._define_object( + next_page, UserContactsNavigationInfoUri + ) + if previous_page is not None: + self.previous_page = self._define_object( + previous_page, UserContactsNavigationInfoUri + ) + if last_page is not None: + self.last_page = self._define_object( + last_page, UserContactsNavigationInfoUri + ) diff --git a/src/ring_central/models/user_contacts_navigation_info_uri.py b/src/ring_central/models/user_contacts_navigation_info_uri.py new file mode 100644 index 00000000..7f329d85 --- /dev/null +++ b/src/ring_central/models/user_contacts_navigation_info_uri.py @@ -0,0 +1,17 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class UserContactsNavigationInfoUri(BaseModel): + """Canonical URI for a corresponding page of a list + + :param uri: uri, defaults to None + :type uri: str, optional + """ + + def __init__(self, uri: str = None): + if uri is not None: + self.uri = uri diff --git a/src/ring_central/models/user_contacts_paging_info.py b/src/ring_central/models/user_contacts_paging_info.py new file mode 100644 index 00000000..98e5b1e2 --- /dev/null +++ b/src/ring_central/models/user_contacts_paging_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "per_page": "perPage", + "page_start": "pageStart", + "page_end": "pageEnd", + "total_pages": "totalPages", + "total_elements": "totalElements", + } +) +class UserContactsPagingInfo(BaseModel): + """Information on paging + + :param page: Current page number. 1-indexed, so the first page is 1 by default. May be omitted if the result is empty (because non-existent page was specified or perPage=0 was requested) , defaults to None + :type page: int, optional + :param per_page: Current page size, describes how many items each page contains. Default value is 100. Maximum value is 1000. If perPage value in the request is greater than 1000, the maximum value (1000) is applied , defaults to None + :type per_page: int, optional + :param page_start: Zero-based number of the first element on the current page. Omitted if a page is omitted or the result is empty , defaults to None + :type page_start: int, optional + :param page_end: Zero-based index of the last element on the current page. Omitted if a page is omitted or the result is empty , defaults to None + :type page_end: int, optional + :param total_pages: Total number of pages in a dataset. May be omitted for some resources due to performance reasons , defaults to None + :type total_pages: int, optional + :param total_elements: Total number of elements in a dataset. May be omitted for some resource due to performance reasons , defaults to None + :type total_elements: int, optional + """ + + def __init__( + self, + page: int = None, + per_page: int = None, + page_start: int = None, + page_end: int = None, + total_pages: int = None, + total_elements: int = None, + ): + if page is not None: + self.page = page + if per_page is not None: + self.per_page = per_page + if page_start is not None: + self.page_start = page_start + if page_end is not None: + self.page_end = page_end + if total_pages is not None: + self.total_pages = total_pages + if total_elements is not None: + self.total_elements = total_elements diff --git a/src/ring_central/models/user_in_meeting_response.py b/src/ring_central/models/user_in_meeting_response.py new file mode 100644 index 00000000..4f8e48e1 --- /dev/null +++ b/src/ring_central/models/user_in_meeting_response.py @@ -0,0 +1,63 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "enable_waiting_room": "enableWaitingRoom", + "breakout_room": "breakoutRoom", + "virtual_background": "virtualBackground", + "screen_sharing": "screenSharing", + "request_permission_to_unmute": "requestPermissionToUnmute", + } +) +class UserInMeetingResponse(BaseModel): + """UserInMeetingResponse + + :param enable_waiting_room: enable_waiting_room, defaults to None + :type enable_waiting_room: bool, optional + :param breakout_room: breakout_room, defaults to None + :type breakout_room: bool, optional + :param chat: chat, defaults to None + :type chat: bool, optional + :param polling: polling, defaults to None + :type polling: bool, optional + :param annotation: annotation, defaults to None + :type annotation: bool, optional + :param virtual_background: virtual_background, defaults to None + :type virtual_background: bool, optional + :param screen_sharing: screen_sharing, defaults to None + :type screen_sharing: bool, optional + :param request_permission_to_unmute: request_permission_to_unmute, defaults to None + :type request_permission_to_unmute: bool, optional + """ + + def __init__( + self, + enable_waiting_room: bool = None, + breakout_room: bool = None, + chat: bool = None, + polling: bool = None, + annotation: bool = None, + virtual_background: bool = None, + screen_sharing: bool = None, + request_permission_to_unmute: bool = None, + ): + if enable_waiting_room is not None: + self.enable_waiting_room = enable_waiting_room + if breakout_room is not None: + self.breakout_room = breakout_room + if chat is not None: + self.chat = chat + if polling is not None: + self.polling = polling + if annotation is not None: + self.annotation = annotation + if virtual_background is not None: + self.virtual_background = virtual_background + if screen_sharing is not None: + self.screen_sharing = screen_sharing + if request_permission_to_unmute is not None: + self.request_permission_to_unmute = request_permission_to_unmute diff --git a/src/ring_central/models/user_meeting_recording_setting.py b/src/ring_central/models/user_meeting_recording_setting.py new file mode 100644 index 00000000..08d7bc4d --- /dev/null +++ b/src/ring_central/models/user_meeting_recording_setting.py @@ -0,0 +1,105 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class AutoRecording(Enum): + """An enumeration representing different categories. + + :cvar LOCAL: "local" + :vartype LOCAL: str + :cvar CLOUD: "cloud" + :vartype CLOUD: str + :cvar NONE: "none" + :vartype NONE: str + """ + + LOCAL = "local" + CLOUD = "cloud" + NONE = "none" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, AutoRecording._member_map_.values())) + + +@JsonMap( + { + "local_recording": "localRecording", + "cloud_recording": "cloudRecording", + "record_speaker_view": "recordSpeakerView", + "record_gallery_view": "recordGalleryView", + "record_audio_file": "recordAudioFile", + "save_chat_text": "saveChatText", + "show_timestamp": "showTimestamp", + "auto_recording": "autoRecording", + "auto_delete_cmr": "autoDeleteCmr", + "auto_delete_cmr_days": "autoDeleteCmrDays", + } +) +class UserMeetingRecordingSetting(BaseModel): + """Meeting recording settings locked on account level + + :param local_recording: Allows hosts and participants to record a meeting to a local file, defaults to None + :type local_recording: bool, optional + :param cloud_recording: Allows hosts to record and save a meeting/webinar in the cloud, defaults to None + :type cloud_recording: bool, optional + :param record_speaker_view: Allows to record active speaker with the shared screen, defaults to None + :type record_speaker_view: bool, optional + :param record_gallery_view: Allows to record gallery view with the shared screen, defaults to None + :type record_gallery_view: bool, optional + :param record_audio_file: Allows to record an audio-only file, defaults to None + :type record_audio_file: bool, optional + :param save_chat_text: Allows to save chat text from a meeting, defaults to None + :type save_chat_text: bool, optional + :param show_timestamp: Allows to show timestamp on video, defaults to None + :type show_timestamp: bool, optional + :param auto_recording: Automatic recording (local/cloud/none) of meetings as they start, defaults to None + :type auto_recording: AutoRecording, optional + :param auto_delete_cmr: Automatic deletion of cloud recordings, defaults to None + :type auto_delete_cmr: str, optional + :param auto_delete_cmr_days: A specified number of days for automatic deletion of cloud recordings, the value range is 1-60, defaults to None + :type auto_delete_cmr_days: int, optional + """ + + def __init__( + self, + local_recording: bool = None, + cloud_recording: bool = None, + record_speaker_view: bool = None, + record_gallery_view: bool = None, + record_audio_file: bool = None, + save_chat_text: bool = None, + show_timestamp: bool = None, + auto_recording: AutoRecording = None, + auto_delete_cmr: str = None, + auto_delete_cmr_days: int = None, + ): + if local_recording is not None: + self.local_recording = local_recording + if cloud_recording is not None: + self.cloud_recording = cloud_recording + if record_speaker_view is not None: + self.record_speaker_view = record_speaker_view + if record_gallery_view is not None: + self.record_gallery_view = record_gallery_view + if record_audio_file is not None: + self.record_audio_file = record_audio_file + if save_chat_text is not None: + self.save_chat_text = save_chat_text + if show_timestamp is not None: + self.show_timestamp = show_timestamp + if auto_recording is not None: + self.auto_recording = self._enum_matching( + auto_recording, AutoRecording.list(), "auto_recording" + ) + if auto_delete_cmr is not None: + self.auto_delete_cmr = auto_delete_cmr + if auto_delete_cmr_days is not None: + self.auto_delete_cmr_days = auto_delete_cmr_days diff --git a/src/ring_central/models/user_phone_number_extension_info.py b/src/ring_central/models/user_phone_number_extension_info.py new file mode 100644 index 00000000..61eedee3 --- /dev/null +++ b/src/ring_central/models/user_phone_number_extension_info.py @@ -0,0 +1,126 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel +from .contact_center_provider import ContactCenterProvider + + +class UserPhoneNumberExtensionInfoType(Enum): + """An enumeration representing different categories. + + :cvar USER: "User" + :vartype USER: str + :cvar FAXUSER: "FaxUser" + :vartype FAXUSER: str + :cvar VIRTUALUSER: "VirtualUser" + :vartype VIRTUALUSER: str + :cvar DIGITALUSER: "DigitalUser" + :vartype DIGITALUSER: str + :cvar DEPARTMENT: "Department" + :vartype DEPARTMENT: str + :cvar ANNOUNCEMENT: "Announcement" + :vartype ANNOUNCEMENT: str + :cvar VOICEMAIL: "Voicemail" + :vartype VOICEMAIL: str + :cvar SHAREDLINESGROUP: "SharedLinesGroup" + :vartype SHAREDLINESGROUP: str + :cvar PAGINGONLY: "PagingOnly" + :vartype PAGINGONLY: str + :cvar IVRMENU: "IvrMenu" + :vartype IVRMENU: str + :cvar APPLICATIONEXTENSION: "ApplicationExtension" + :vartype APPLICATIONEXTENSION: str + :cvar PARKLOCATION: "ParkLocation" + :vartype PARKLOCATION: str + :cvar SITE: "Site" + :vartype SITE: str + """ + + USER = "User" + FAXUSER = "FaxUser" + VIRTUALUSER = "VirtualUser" + DIGITALUSER = "DigitalUser" + DEPARTMENT = "Department" + ANNOUNCEMENT = "Announcement" + VOICEMAIL = "Voicemail" + SHAREDLINESGROUP = "SharedLinesGroup" + PAGINGONLY = "PagingOnly" + IVRMENU = "IvrMenu" + APPLICATIONEXTENSION = "ApplicationExtension" + PARKLOCATION = "ParkLocation" + SITE = "Site" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + UserPhoneNumberExtensionInfoType._member_map_.values(), + ) + ) + + +@JsonMap( + { + "id_": "id", + "extension_number": "extensionNumber", + "partner_id": "partnerId", + "type_": "type", + "contact_center_provider": "contactCenterProvider", + } +) +class UserPhoneNumberExtensionInfo(BaseModel): + """Information on the extension, to which the phone number is assigned. + Returned only for the request of Account phone number list + + + :param id_: Internal identifier of an extension, defaults to None + :type id_: int, optional + :param uri: Canonical URI of an extension, defaults to None + :type uri: str, optional + :param extension_number: Extension short number, defaults to None + :type extension_number: str, optional + :param partner_id: For Partner Applications Internal identifier of an extension created by partner. The RingCentral supports the mapping of accounts and stores the corresponding account ID/extension ID for each partner ID of a client application. In request URIs partner IDs are accepted instead of regular RingCentral native IDs as path parameters using `pid=XXX` clause. Though in response URIs contain the corresponding account IDs and extension IDs. In all request and response bodies these values are reflected via partnerId attributes of account and extension , defaults to None + :type partner_id: str, optional + :param type_: Extension type. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology , defaults to None + :type type_: UserPhoneNumberExtensionInfoType, optional + :param contact_center_provider: CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' , defaults to None + :type contact_center_provider: ContactCenterProvider, optional + :param name: Extension name. For user extension types the value is a combination of the specified first name and last name , defaults to None + :type name: str, optional + """ + + def __init__( + self, + id_: int = None, + uri: str = None, + extension_number: str = None, + partner_id: str = None, + type_: UserPhoneNumberExtensionInfoType = None, + contact_center_provider: ContactCenterProvider = None, + name: str = None, + ): + if id_ is not None: + self.id_ = id_ + if uri is not None: + self.uri = uri + if extension_number is not None: + self.extension_number = extension_number + if partner_id is not None: + self.partner_id = partner_id + if type_ is not None: + self.type_ = self._enum_matching( + type_, UserPhoneNumberExtensionInfoType.list(), "type_" + ) + if contact_center_provider is not None: + self.contact_center_provider = self._define_object( + contact_center_provider, ContactCenterProvider + ) + if name is not None: + self.name = name diff --git a/src/ring_central/models/user_phone_number_info.py b/src/ring_central/models/user_phone_number_info.py new file mode 100644 index 00000000..63eaa8a1 --- /dev/null +++ b/src/ring_central/models/user_phone_number_info.py @@ -0,0 +1,299 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .country_info_basic_model import CountryInfoBasicModel +from .contact_center_provider import ContactCenterProvider +from .user_phone_number_extension_info import UserPhoneNumberExtensionInfo +from .platform_payment_type import PlatformPaymentType + + +class UserPhoneNumberInfoStatus(Enum): + """An enumeration representing different categories. + + :cvar NORMAL: "Normal" + :vartype NORMAL: str + :cvar PENDING: "Pending" + :vartype PENDING: str + :cvar PORTEDIN: "PortedIn" + :vartype PORTEDIN: str + :cvar TEMPORARY: "Temporary" + :vartype TEMPORARY: str + """ + + NORMAL = "Normal" + PENDING = "Pending" + PORTEDIN = "PortedIn" + TEMPORARY = "Temporary" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UserPhoneNumberInfoStatus._member_map_.values()) + ) + + +class UserPhoneNumberInfoType(Enum): + """An enumeration representing different categories. + + :cvar VOICEFAX: "VoiceFax" + :vartype VOICEFAX: str + :cvar FAXONLY: "FaxOnly" + :vartype FAXONLY: str + :cvar VOICEONLY: "VoiceOnly" + :vartype VOICEONLY: str + """ + + VOICEFAX = "VoiceFax" + FAXONLY = "FaxOnly" + VOICEONLY = "VoiceOnly" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UserPhoneNumberInfoType._member_map_.values()) + ) + + +class UserPhoneNumberInfoSubType(Enum): + """An enumeration representing different categories. + + :cvar VIDEOPRO: "VideoPro" + :vartype VIDEOPRO: str + :cvar VIDEOPROPLUS: "VideoProPlus" + :vartype VIDEOPROPLUS: str + :cvar DIGITALSIGNAGE: "DigitalSignage" + :vartype DIGITALSIGNAGE: str + :cvar UNKNOWN: "Unknown" + :vartype UNKNOWN: str + :cvar EMERGENCY: "Emergency" + :vartype EMERGENCY: str + """ + + VIDEOPRO = "VideoPro" + VIDEOPROPLUS = "VideoProPlus" + DIGITALSIGNAGE = "DigitalSignage" + UNKNOWN = "Unknown" + EMERGENCY = "Emergency" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UserPhoneNumberInfoSubType._member_map_.values()) + ) + + +class UserPhoneNumberInfoUsageType(Enum): + """An enumeration representing different categories. + + :cvar MAINCOMPANYNUMBER: "MainCompanyNumber" + :vartype MAINCOMPANYNUMBER: str + :cvar ADDITIONALCOMPANYNUMBER: "AdditionalCompanyNumber" + :vartype ADDITIONALCOMPANYNUMBER: str + :cvar COMPANYNUMBER: "CompanyNumber" + :vartype COMPANYNUMBER: str + :cvar DIRECTNUMBER: "DirectNumber" + :vartype DIRECTNUMBER: str + :cvar COMPANYFAXNUMBER: "CompanyFaxNumber" + :vartype COMPANYFAXNUMBER: str + :cvar FORWARDEDNUMBER: "ForwardedNumber" + :vartype FORWARDEDNUMBER: str + :cvar FORWARDEDCOMPANYNUMBER: "ForwardedCompanyNumber" + :vartype FORWARDEDCOMPANYNUMBER: str + :cvar CONTACTCENTERNUMBER: "ContactCenterNumber" + :vartype CONTACTCENTERNUMBER: str + :cvar CONFERENCINGNUMBER: "ConferencingNumber" + :vartype CONFERENCINGNUMBER: str + :cvar NUMBERPOOL: "NumberPool" + :vartype NUMBERPOOL: str + :cvar BUSINESSMOBILENUMBER: "BusinessMobileNumber" + :vartype BUSINESSMOBILENUMBER: str + :cvar PARTNERBUSINESSMOBILENUMBER: "PartnerBusinessMobileNumber" + :vartype PARTNERBUSINESSMOBILENUMBER: str + :cvar INTEGRATIONNUMBER: "IntegrationNumber" + :vartype INTEGRATIONNUMBER: str + """ + + MAINCOMPANYNUMBER = "MainCompanyNumber" + ADDITIONALCOMPANYNUMBER = "AdditionalCompanyNumber" + COMPANYNUMBER = "CompanyNumber" + DIRECTNUMBER = "DirectNumber" + COMPANYFAXNUMBER = "CompanyFaxNumber" + FORWARDEDNUMBER = "ForwardedNumber" + FORWARDEDCOMPANYNUMBER = "ForwardedCompanyNumber" + CONTACTCENTERNUMBER = "ContactCenterNumber" + CONFERENCINGNUMBER = "ConferencingNumber" + NUMBERPOOL = "NumberPool" + BUSINESSMOBILENUMBER = "BusinessMobileNumber" + PARTNERBUSINESSMOBILENUMBER = "PartnerBusinessMobileNumber" + INTEGRATIONNUMBER = "IntegrationNumber" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UserPhoneNumberInfoUsageType._member_map_.values()) + ) + + +class UserPhoneNumberInfoFeatures(Enum): + """An enumeration representing different categories. + + :cvar CALLERID: "CallerId" + :vartype CALLERID: str + :cvar SMSSENDER: "SmsSender" + :vartype SMSSENDER: str + :cvar A2PSMSSENDER: "A2PSmsSender" + :vartype A2PSMSSENDER: str + :cvar MMSSENDER: "MmsSender" + :vartype MMSSENDER: str + :cvar INTERNATIONALSMSSENDER: "InternationalSmsSender" + :vartype INTERNATIONALSMSSENDER: str + :cvar DELEGATED: "Delegated" + :vartype DELEGATED: str + """ + + CALLERID = "CallerId" + SMSSENDER = "SmsSender" + A2PSMSSENDER = "A2PSmsSender" + MMSSENDER = "MmsSender" + INTERNATIONALSMSSENDER = "InternationalSmsSender" + DELEGATED = "Delegated" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UserPhoneNumberInfoFeatures._member_map_.values()) + ) + + +@JsonMap( + { + "id_": "id", + "contact_center_provider": "contactCenterProvider", + "payment_type": "paymentType", + "phone_number": "phoneNumber", + "type_": "type", + "sub_type": "subType", + "usage_type": "usageType", + } +) +class UserPhoneNumberInfo(BaseModel): + """UserPhoneNumberInfo + + :param uri: Link to the user phone number resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a phone number, defaults to None + :type id_: int, optional + :param country: country, defaults to None + :type country: CountryInfoBasicModel, optional + :param contact_center_provider: CCRN (Contact Center Routing Number) provider. If not specified then the default value 'InContact/North America' is used, its ID is '1' , defaults to None + :type contact_center_provider: ContactCenterProvider, optional + :param extension: Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list , defaults to None + :type extension: UserPhoneNumberExtensionInfo, optional + :param label: Custom user-defined name of a phone number, if any, defaults to None + :type label: str, optional + :param location: Location (City, State). Filled for local US numbers, defaults to None + :type location: str, optional + :param payment_type: Payment type. 'External' is returned for forwarded numbers which are not terminated in the RingCentral phone system , defaults to None + :type payment_type: PlatformPaymentType, optional + :param phone_number: Phone number, defaults to None + :type phone_number: str, optional + :param primary: Indicates if a phone number is primary, i.e. displayed as 'main number' and called by default , defaults to None + :type primary: bool, optional + :param status: Status of a phone number. If the value is 'Normal', the phone number is ready to be used. Otherwise, it is an external number not yet ported to RingCentral , defaults to None + :type status: UserPhoneNumberInfoStatus, optional + :param type_: Phone number type, defaults to None + :type type_: UserPhoneNumberInfoType, optional + :param sub_type: Extension subtype, if applicable. For any unsupported subtypes the 'Unknown' value will be returned , defaults to None + :type sub_type: UserPhoneNumberInfoSubType, optional + :param usage_type: Usage type of phone number. Numbers of 'NumberPool' type will not be returned for phone number list requests , defaults to None + :type usage_type: UserPhoneNumberInfoUsageType, optional + :param features: List of features of a phone number, defaults to None + :type features: List[UserPhoneNumberInfoFeatures], optional + """ + + def __init__( + self, + uri: str = None, + id_: int = None, + country: CountryInfoBasicModel = None, + contact_center_provider: ContactCenterProvider = None, + extension: UserPhoneNumberExtensionInfo = None, + label: str = None, + location: str = None, + payment_type: PlatformPaymentType = None, + phone_number: str = None, + primary: bool = None, + status: UserPhoneNumberInfoStatus = None, + type_: UserPhoneNumberInfoType = None, + sub_type: UserPhoneNumberInfoSubType = None, + usage_type: UserPhoneNumberInfoUsageType = None, + features: List[UserPhoneNumberInfoFeatures] = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + if country is not None: + self.country = self._define_object(country, CountryInfoBasicModel) + if contact_center_provider is not None: + self.contact_center_provider = self._define_object( + contact_center_provider, ContactCenterProvider + ) + if extension is not None: + self.extension = self._define_object( + extension, UserPhoneNumberExtensionInfo + ) + if label is not None: + self.label = label + if location is not None: + self.location = location + if payment_type is not None: + self.payment_type = self._enum_matching( + payment_type, PlatformPaymentType.list(), "payment_type" + ) + if phone_number is not None: + self.phone_number = phone_number + if primary is not None: + self.primary = primary + if status is not None: + self.status = self._enum_matching( + status, UserPhoneNumberInfoStatus.list(), "status" + ) + if type_ is not None: + self.type_ = self._enum_matching( + type_, UserPhoneNumberInfoType.list(), "type_" + ) + if sub_type is not None: + self.sub_type = self._enum_matching( + sub_type, UserPhoneNumberInfoSubType.list(), "sub_type" + ) + if usage_type is not None: + self.usage_type = self._enum_matching( + usage_type, UserPhoneNumberInfoUsageType.list(), "usage_type" + ) + if features is not None: + self.features = self._define_list(features, UserPhoneNumberInfoFeatures) diff --git a/src/ring_central/models/user_templates.py b/src/ring_central/models/user_templates.py new file mode 100644 index 00000000..817452e7 --- /dev/null +++ b/src/ring_central/models/user_templates.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .template_info import TemplateInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class UserTemplates(BaseModel): + """UserTemplates + + :param uri: Link to user templates resource, defaults to None + :type uri: str, optional + :param records: List of user templates + :type records: List[TemplateInfo] + :param navigation: Links to other pages of the current result set + :type navigation: PageNavigationModel + :param paging: paging + :type paging: EnumeratedPagingModel + """ + + def __init__( + self, + records: List[TemplateInfo], + navigation: PageNavigationModel, + paging: EnumeratedPagingModel, + uri: str = None, + ): + if uri is not None: + self.uri = uri + self.records = self._define_list(records, TemplateInfo) + self.navigation = self._define_object(navigation, PageNavigationModel) + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/user_transition_info.py b/src/ring_central/models/user_transition_info.py new file mode 100644 index 00000000..cbde9067 --- /dev/null +++ b/src/ring_central/models/user_transition_info.py @@ -0,0 +1,29 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "send_welcome_emails_to_users": "sendWelcomeEmailsToUsers", + "send_welcome_email": "sendWelcomeEmail", + } +) +class UserTransitionInfo(BaseModel): + """For NotActivated extensions only. Welcome email settings + + + :param send_welcome_emails_to_users: Specifies if a welcome/activation email is sent to the existing users during account confirmation , defaults to None + :type send_welcome_emails_to_users: bool, optional + :param send_welcome_email: Specifies if a welcome/activation email is sent to the new users (within extension status changing from 'Unassigned' to 'NotActivated/Disabled') , defaults to None + :type send_welcome_email: bool, optional + """ + + def __init__( + self, send_welcome_emails_to_users: bool = None, send_welcome_email: bool = None + ): + if send_welcome_emails_to_users is not None: + self.send_welcome_emails_to_users = send_welcome_emails_to_users + if send_welcome_email is not None: + self.send_welcome_email = send_welcome_email diff --git a/src/ring_central/models/user_video_configuration.py b/src/ring_central/models/user_video_configuration.py new file mode 100644 index 00000000..5d807079 --- /dev/null +++ b/src/ring_central/models/user_video_configuration.py @@ -0,0 +1,71 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class Provider(Enum): + """An enumeration representing different categories. + + :cvar RCMEETINGS: "RCMeetings" + :vartype RCMEETINGS: str + :cvar RCVIDEO: "RCVideo" + :vartype RCVIDEO: str + :cvar NONE: "None" + :vartype NONE: str + """ + + RCMEETINGS = "RCMeetings" + RCVIDEO = "RCVideo" + NONE = "None" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Provider._member_map_.values())) + + +class UserLicenseType(Enum): + """An enumeration representing different categories. + + :cvar PAID: "Paid" + :vartype PAID: str + :cvar FREE: "Free" + :vartype FREE: str + """ + + PAID = "Paid" + FREE = "Free" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, UserLicenseType._member_map_.values())) + + +@JsonMap({"user_license_type": "userLicenseType"}) +class UserVideoConfiguration(BaseModel): + """UserVideoConfiguration + + :param provider: Video provider of the user, defaults to None + :type provider: Provider, optional + :param user_license_type: Specifies if the user is 'paid' (has meeting license) or 'free' (w/o meeting license) , defaults to None + :type user_license_type: UserLicenseType, optional + """ + + def __init__( + self, provider: Provider = None, user_license_type: UserLicenseType = None + ): + if provider is not None: + self.provider = self._enum_matching(provider, Provider.list(), "provider") + if user_license_type is not None: + self.user_license_type = self._enum_matching( + user_license_type, UserLicenseType.list(), "user_license_type" + ) diff --git a/src/ring_central/models/utils/cast_models.py b/src/ring_central/models/utils/cast_models.py new file mode 100644 index 00000000..f2f0d401 --- /dev/null +++ b/src/ring_central/models/utils/cast_models.py @@ -0,0 +1,83 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import get_origin, get_args, Union +from inspect import isclass +from ..base import OneOfBaseModel + + +def cast_models(func): + """ + A decorator that allows for the conversion of dictionaries and enum values to model instances. + + :param func: The function to decorate. + :type func: Callable + :return: The decorated function. + :rtype: Callable + """ + + def wrapper(self, *clss, **kwargs): + cls_types = func.__annotations__ + new_cls_args = [] + new_kwargs = {} + + for input, input_type in zip(clss, cls_types.values()): + new_cls_args.append(_get_instanced_type(input, input_type)) + + for type_name, input in kwargs.items(): + new_kwargs[type_name] = _get_instanced_type(input, cls_types[type_name]) + + return func(self, *new_cls_args, **new_kwargs) + + def _get_instanced_type(data, input_type): + """ + Get instanced type based on the input data and type. + + :param data: The input data. + :param input_type: The type of the input. + :return: The instanced type. + """ + # Instanciate oneOf models + if _is_one_of_model(input_type): + class_list = { + arg.__name__: arg for arg in get_args(input_type) if arg.__name__ + } + OneOfBaseModel.class_list = class_list + return OneOfBaseModel.return_one_of(data) + + # Instanciate enum values + elif ( + isclass(input_type) + and issubclass(input_type, Enum) + and not isinstance(data, input_type) + ): + return input_type(data) + + # Instanciate object models + elif isinstance(data, dict) and input_type is not str: + return input_type(**data) + + # Instanciate list of object models + elif isinstance(data, list) and all(isinstance(i, dict) for i in data): + element_type = get_args(input_type)[0] + return [element_type(**item) for item in data] + + # Instanciate bytes if input is str + elif input_type is bytes and isinstance(data, str): + return data.encode() + + # Pass other types + else: + return data + + def _is_one_of_model(cls_type): + """ + Check if the class type is a oneOf model. + + :param cls_type: The class type to check. + :return: True if the class type is a oneOf model, False otherwise. + :rtype: bool + """ + return hasattr(cls_type, "__origin__") and cls_type.__origin__ is Union + + return wrapper diff --git a/src/ring_central/models/utils/json_map.py b/src/ring_central/models/utils/json_map.py new file mode 100644 index 00000000..cc6fbf66 --- /dev/null +++ b/src/ring_central/models/utils/json_map.py @@ -0,0 +1,82 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class JsonMap: + """ + A class decorator used to map adjusted attribute names to original JSON attribute names before a request, + and vice versa after the request. + + Example: + @JsonMapping({ + 'adjusted_name': 'original_name', + 'adjusted_list': 'original_list' + }) + class SomeClass(BaseModel): + adjusted_name: str + adjusted_list: List[OtherClass] + + :param mapping: A dictionary specifying the mapping between adjusted attribute names and original JSON attribute names. + :type mapping: dict + """ + + def __init__(self, mapping): + self.mapping = mapping + + def __call__(self, cls): + """ + Transform the decorated class with attribute mapping capabilities. + + :param cls: The class to be decorated. + :type cls: type + :return: The decorated class. + :rtype: type + """ + cls.__json_mapping = self.mapping + + def _map(self): + """ + Convert the object's attributes to a dictionary with mapped attribute names. + + :return: A dictionary with mapped attribute names and values. + :rtype: dict + """ + map = self.__json_mapping + attribute_dict = vars(self) + result_dict = {} + + for key, value in attribute_dict.items(): + if isinstance(value, list): + value = [v._map() if hasattr(v, "_map") else v for v in value] + elif isinstance(value, Enum): + value = value.value + elif hasattr(value, "_map"): + value = value._map() + mapped_key = map.get(key, key) + result_dict[mapped_key] = value + + return result_dict + + @classmethod + def _unmap(cls, mapped_data): + """ + Create an object instance from a dictionary with mapped attribute names. + + :param mapped_data: A dictionary with mapped attribute names and values. + :type mapped_data: dict + :return: An instance of the class with attribute values assigned from the dictionary. + :rtype: cls + """ + reversed_map = {v: k for k, v in cls.__json_mapping.items()} + mapped_attributes = {} + for key, value in mapped_data.items(): + mapped_key = reversed_map.get(key, key) + mapped_attributes[mapped_key] = value + + return cls(**mapped_attributes) + + cls._map = _map + cls._unmap = _unmap + + return cls diff --git a/src/ring_central/models/utterance_insights_object.py b/src/ring_central/models/utterance_insights_object.py new file mode 100644 index 00000000..2c13c745 --- /dev/null +++ b/src/ring_central/models/utterance_insights_object.py @@ -0,0 +1,51 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .word_timings_unit import WordTimingsUnit +from .utterance_insights_unit import UtteranceInsightsUnit + + +@JsonMap({"speaker_id": "speakerId", "word_timings": "wordTimings"}) +class UtteranceInsightsObject(BaseModel): + """UtteranceInsightsObject + + :param start: start + :type start: float + :param end: end + :type end: float + :param text: text + :type text: str + :param confidence: confidence, defaults to None + :type confidence: float, optional + :param speaker_id: speaker_id, defaults to None + :type speaker_id: str, optional + :param word_timings: word_timings, defaults to None + :type word_timings: List[WordTimingsUnit], optional + :param insights: insights, defaults to None + :type insights: List[UtteranceInsightsUnit], optional + """ + + def __init__( + self, + start: float, + end: float, + text: str, + confidence: float = None, + speaker_id: str = None, + word_timings: List[WordTimingsUnit] = None, + insights: List[UtteranceInsightsUnit] = None, + ): + self.start = start + self.end = end + self.text = text + if confidence is not None: + self.confidence = confidence + if speaker_id is not None: + self.speaker_id = speaker_id + if word_timings is not None: + self.word_timings = self._define_list(word_timings, WordTimingsUnit) + if insights is not None: + self.insights = self._define_list(insights, UtteranceInsightsUnit) diff --git a/src/ring_central/models/utterance_insights_unit.py b/src/ring_central/models/utterance_insights_unit.py new file mode 100644 index 00000000..435fa8f9 --- /dev/null +++ b/src/ring_central/models/utterance_insights_unit.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class UtteranceInsightsUnitName(Enum): + """An enumeration representing different categories. + + :cvar EMOTION: "Emotion" + :vartype EMOTION: str + """ + + EMOTION = "Emotion" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, UtteranceInsightsUnitName._member_map_.values()) + ) + + +@JsonMap({}) +class UtteranceInsightsUnit(BaseModel): + """UtteranceInsightsUnit + + :param name: name + :type name: UtteranceInsightsUnitName + :param value: value + :type value: str + :param confidence: confidence, defaults to None + :type confidence: float, optional + """ + + def __init__( + self, name: UtteranceInsightsUnitName, value: str, confidence: float = None + ): + self.name = self._enum_matching(name, UtteranceInsightsUnitName.list(), "name") + self.value = value + if confidence is not None: + self.confidence = confidence diff --git a/src/ring_central/models/utterance_object.py b/src/ring_central/models/utterance_object.py new file mode 100644 index 00000000..f18ecbd1 --- /dev/null +++ b/src/ring_central/models/utterance_object.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .word_timings_unit import WordTimingsUnit + + +@JsonMap({"speaker_id": "speakerId", "word_timings": "wordTimings"}) +class UtteranceObject(BaseModel): + """UtteranceObject + + :param start: start + :type start: float + :param end: end + :type end: float + :param text: text + :type text: str + :param confidence: confidence, defaults to None + :type confidence: float, optional + :param speaker_id: speaker_id, defaults to None + :type speaker_id: str, optional + :param word_timings: word_timings, defaults to None + :type word_timings: List[WordTimingsUnit], optional + """ + + def __init__( + self, + start: float, + end: float, + text: str, + confidence: float = None, + speaker_id: str = None, + word_timings: List[WordTimingsUnit] = None, + ): + self.start = start + self.end = end + self.text = text + if confidence is not None: + self.confidence = confidence + if speaker_id is not None: + self.speaker_id = speaker_id + if word_timings is not None: + self.word_timings = self._define_list(word_timings, WordTimingsUnit) diff --git a/src/ring_central/models/validate_multiple_switches_request.py b/src/ring_central/models/validate_multiple_switches_request.py new file mode 100644 index 00000000..788c5dba --- /dev/null +++ b/src/ring_central/models/validate_multiple_switches_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_info import SwitchInfo + + +@JsonMap({}) +class ValidateMultipleSwitchesRequest(BaseModel): + """ValidateMultipleSwitchesRequest + + :param records: records, defaults to None + :type records: List[SwitchInfo], optional + """ + + def __init__(self, records: List[SwitchInfo] = None): + if records is not None: + self.records = self._define_list(records, SwitchInfo) diff --git a/src/ring_central/models/validate_multiple_switches_response.py b/src/ring_central/models/validate_multiple_switches_response.py new file mode 100644 index 00000000..e0d97d30 --- /dev/null +++ b/src/ring_central/models/validate_multiple_switches_response.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .switch_validated import SwitchValidated + + +@JsonMap({}) +class ValidateMultipleSwitchesResponse(BaseModel): + """ValidateMultipleSwitchesResponse + + :param records: records, defaults to None + :type records: List[SwitchValidated], optional + """ + + def __init__(self, records: List[SwitchValidated] = None): + if records is not None: + self.records = self._define_list(records, SwitchValidated) diff --git a/src/ring_central/models/validate_multiple_wireless_points_request.py b/src/ring_central/models/validate_multiple_wireless_points_request.py new file mode 100644 index 00000000..8609ff6a --- /dev/null +++ b/src/ring_central/models/validate_multiple_wireless_points_request.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .wireless_point_info import WirelessPointInfo + + +@JsonMap({}) +class ValidateMultipleWirelessPointsRequest(BaseModel): + """ValidateMultipleWirelessPointsRequest + + :param records: records, defaults to None + :type records: List[WirelessPointInfo], optional + """ + + def __init__(self, records: List[WirelessPointInfo] = None): + if records is not None: + self.records = self._define_list(records, WirelessPointInfo) diff --git a/src/ring_central/models/validate_multiple_wireless_points_response.py b/src/ring_central/models/validate_multiple_wireless_points_response.py new file mode 100644 index 00000000..30761b3f --- /dev/null +++ b/src/ring_central/models/validate_multiple_wireless_points_response.py @@ -0,0 +1,20 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .wireless_point_validated import WirelessPointValidated + + +@JsonMap({}) +class ValidateMultipleWirelessPointsResponse(BaseModel): + """ValidateMultipleWirelessPointsResponse + + :param records: records, defaults to None + :type records: List[WirelessPointValidated], optional + """ + + def __init__(self, records: List[WirelessPointValidated] = None): + if records is not None: + self.records = self._define_list(records, WirelessPointValidated) diff --git a/src/ring_central/models/validation_error.py b/src/ring_central/models/validation_error.py new file mode 100644 index 00000000..a7e463d5 --- /dev/null +++ b/src/ring_central/models/validation_error.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"error_code": "errorCode", "parameter_name": "parameterName"}) +class ValidationError(BaseModel): + """ValidationError + + :param error_code: Error code, defaults to None + :type error_code: str, optional + :param message: Error message, defaults to None + :type message: str, optional + :param parameter_name: Name of invalid parameter, defaults to None + :type parameter_name: str, optional + """ + + def __init__( + self, error_code: str = None, message: str = None, parameter_name: str = None + ): + if error_code is not None: + self.error_code = error_code + if message is not None: + self.message = message + if parameter_name is not None: + self.parameter_name = parameter_name diff --git a/src/ring_central/models/value_type.py b/src/ring_central/models/value_type.py new file mode 100644 index 00000000..c2d41eb0 --- /dev/null +++ b/src/ring_central/models/value_type.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class ValueType(Enum): + """An enumeration representing different categories. + + :cvar PERCENT: "Percent" + :vartype PERCENT: str + :cvar SECONDS: "Seconds" + :vartype SECONDS: str + :cvar INSTANCES: "Instances" + :vartype INSTANCES: str + """ + + PERCENT = "Percent" + SECONDS = "Seconds" + INSTANCES = "Instances" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, ValueType._member_map_.values())) diff --git a/src/ring_central/models/variable_answer_model.py b/src/ring_central/models/variable_answer_model.py new file mode 100644 index 00000000..42fc5463 --- /dev/null +++ b/src/ring_central/models/variable_answer_model.py @@ -0,0 +1,19 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"question_id": "questionId", "answer_text": "answerText"}) +class VariableAnswerModel(BaseModel): + """VariableAnswerModel + + :param question_id: ID of the custom question + :type question_id: str + :param answer_text: Answer text + :type answer_text: str + """ + + def __init__(self, question_id: str, answer_text: str): + self.question_id = question_id + self.answer_text = answer_text diff --git a/src/ring_central/models/vertical_alignment.py b/src/ring_central/models/vertical_alignment.py new file mode 100644 index 00000000..04eb979f --- /dev/null +++ b/src/ring_central/models/vertical_alignment.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .base import OneOfBaseModel + + +class VerticalAlignment1(Enum): + """An enumeration representing different categories. + + :cvar TOP: "top" + :vartype TOP: str + :cvar CENTER: "center" + :vartype CENTER: str + :cvar BOTTOM: "bottom" + :vartype BOTTOM: str + """ + + TOP = "top" + CENTER = "center" + BOTTOM = "bottom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, VerticalAlignment1._member_map_.values())) + + +class VerticalAlignmentGuard(OneOfBaseModel): + class_list = {"VerticalAlignment1Enum": str, "str": str} + + +VerticalAlignment = Union[str, str] diff --git a/src/ring_central/models/vertical_content_alignment.py b/src/ring_central/models/vertical_content_alignment.py new file mode 100644 index 00000000..1a89f76d --- /dev/null +++ b/src/ring_central/models/vertical_content_alignment.py @@ -0,0 +1,38 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Union +from .base import OneOfBaseModel + + +class VerticalContentAlignment1(Enum): + """An enumeration representing different categories. + + :cvar TOP: "top" + :vartype TOP: str + :cvar CENTER: "center" + :vartype CENTER: str + :cvar BOTTOM: "bottom" + :vartype BOTTOM: str + """ + + TOP = "top" + CENTER = "center" + BOTTOM = "bottom" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, VerticalContentAlignment1._member_map_.values()) + ) + + +class VerticalContentAlignmentGuard(OneOfBaseModel): + class_list = {"VerticalContentAlignment1Enum": str, "str": str} + + +VerticalContentAlignment = Union[str, str] diff --git a/src/ring_central/models/visibility.py b/src/ring_central/models/visibility.py new file mode 100644 index 00000000..b037ce29 --- /dev/null +++ b/src/ring_central/models/visibility.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class Visibility(Enum): + """An enumeration representing different categories. + + :cvar PRIVATE: "Private" + :vartype PRIVATE: str + :cvar PUBLIC: "Public" + :vartype PUBLIC: str + """ + + PRIVATE = "Private" + PUBLIC = "Public" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, Visibility._member_map_.values())) diff --git a/src/ring_central/models/visibility_type.py b/src/ring_central/models/visibility_type.py new file mode 100644 index 00000000..d085d91c --- /dev/null +++ b/src/ring_central/models/visibility_type.py @@ -0,0 +1,24 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class VisibilityType(Enum): + """An enumeration representing different categories. + + :cvar COMPANY: "Company" + :vartype COMPANY: str + :cvar PERSONAL: "Personal" + :vartype PERSONAL: str + """ + + COMPANY = "Company" + PERSONAL = "Personal" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, VisibilityType._member_map_.values())) diff --git a/src/ring_central/models/voicemail_info.py b/src/ring_central/models/voicemail_info.py new file mode 100644 index 00000000..0a344d95 --- /dev/null +++ b/src/ring_central/models/voicemail_info.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .recipient_info import RecipientInfo + + +@JsonMap({}) +class VoicemailInfo(BaseModel): + """Specifies whether to take a voicemail and who should do it + + :param enabled: If `true` then voicemails are allowed to be received, defaults to None + :type enabled: bool, optional + :param recipient: Recipient data, defaults to None + :type recipient: RecipientInfo, optional + """ + + def __init__(self, enabled: bool = None, recipient: RecipientInfo = None): + if enabled is not None: + self.enabled = enabled + if recipient is not None: + self.recipient = self._define_object(recipient, RecipientInfo) diff --git a/src/ring_central/models/voicemails_info.py b/src/ring_central/models/voicemails_info.py new file mode 100644 index 00000000..d72d3042 --- /dev/null +++ b/src/ring_central/models/voicemails_info.py @@ -0,0 +1,61 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap( + { + "notify_by_email": "notifyByEmail", + "notify_by_sms": "notifyBySms", + "advanced_email_addresses": "advancedEmailAddresses", + "advanced_sms_email_addresses": "advancedSmsEmailAddresses", + "include_attachment": "includeAttachment", + "include_transcription": "includeTranscription", + "mark_as_read": "markAsRead", + } +) +class VoicemailsInfo(BaseModel): + """VoicemailsInfo + + :param notify_by_email: Email notification flag, defaults to None + :type notify_by_email: bool, optional + :param notify_by_sms: SMS notification flag, defaults to None + :type notify_by_sms: bool, optional + :param advanced_email_addresses: List of recipient email addresses for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_email_addresses: List[str], optional + :param advanced_sms_email_addresses: List of recipient phone numbers for voicemail notifications. Returned if specified, in both modes (advanced/basic). Applied in advanced mode only , defaults to None + :type advanced_sms_email_addresses: List[str], optional + :param include_attachment: Indicates whether voicemail should be attached to email , defaults to None + :type include_attachment: bool, optional + :param include_transcription: Specifies whether to add voicemail transcription or not , defaults to None + :type include_transcription: bool, optional + :param mark_as_read: Indicates whether a voicemail should be automatically marked as read , defaults to None + :type mark_as_read: bool, optional + """ + + def __init__( + self, + notify_by_email: bool = None, + notify_by_sms: bool = None, + advanced_email_addresses: List[str] = None, + advanced_sms_email_addresses: List[str] = None, + include_attachment: bool = None, + include_transcription: bool = None, + mark_as_read: bool = None, + ): + if notify_by_email is not None: + self.notify_by_email = notify_by_email + if notify_by_sms is not None: + self.notify_by_sms = notify_by_sms + if advanced_email_addresses is not None: + self.advanced_email_addresses = advanced_email_addresses + if advanced_sms_email_addresses is not None: + self.advanced_sms_email_addresses = advanced_sms_email_addresses + if include_attachment is not None: + self.include_attachment = include_attachment + if include_transcription is not None: + self.include_transcription = include_transcription + if mark_as_read is not None: + self.mark_as_read = mark_as_read diff --git a/src/ring_central/models/wcs_host_model.py b/src/ring_central/models/wcs_host_model.py new file mode 100644 index 00000000..24aef0b7 --- /dev/null +++ b/src/ring_central/models/wcs_host_model.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_domain_user_model import RcwDomainUserModel + + +@JsonMap({"user_id": "userId", "account_id": "accountId", "linked_user": "linkedUser"}) +class WcsHostModel(BaseModel): + """WcsHostModel + + :param user_id: User ID + :type user_id: str + :param account_id: Account ID + :type account_id: str + :param linked_user: linked_user, defaults to None + :type linked_user: RcwDomainUserModel, optional + """ + + def __init__( + self, user_id: str, account_id: str, linked_user: RcwDomainUserModel = None + ): + self.user_id = user_id + self.account_id = account_id + if linked_user is not None: + self.linked_user = self._define_object(linked_user, RcwDomainUserModel) diff --git a/src/ring_central/models/wcs_invitee_list_resource.py b/src/ring_central/models/wcs_invitee_list_resource.py new file mode 100644 index 00000000..766c27f3 --- /dev/null +++ b/src/ring_central/models/wcs_invitee_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .invitee_resource import InviteeResource +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class WcsInviteeListResource(BaseModel): + """WcsInviteeListResource + + :param records: records + :type records: List[InviteeResource] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[InviteeResource], paging: RcwPagingModel): + self.records = self._define_list(records, InviteeResource) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/wcs_session_global_list_resource.py b/src/ring_central/models/wcs_session_global_list_resource.py new file mode 100644 index 00000000..cf84f3ea --- /dev/null +++ b/src/ring_central/models/wcs_session_global_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .session_global_list_entry import SessionGlobalListEntry +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class WcsSessionGlobalListResource(BaseModel): + """WcsSessionGlobalListResource + + :param records: records + :type records: List[SessionGlobalListEntry] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[SessionGlobalListEntry], paging: RcwPagingModel): + self.records = self._define_list(records, SessionGlobalListEntry) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/wcs_session_resource.py b/src/ring_central/models/wcs_session_resource.py new file mode 100644 index 00000000..63148c08 --- /dev/null +++ b/src/ring_central/models/wcs_session_resource.py @@ -0,0 +1,122 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_session_status_model import WcsSessionStatusModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + "scheduled_start_time": "scheduledStartTime", + "scheduled_duration": "scheduledDuration", + "time_zone": "timeZone", + "localized_time_zone_description": "localizedTimeZoneDescription", + "panel_join_time_offset": "panelJoinTimeOffset", + "host_join_uri": "hostJoinUri", + "locale_code": "localeCode", + "video_bridge_id": "videoBridgeId", + "video_bridge_password": "videoBridgePassword", + "video_bridge_pstn_password": "videoBridgePstnPassword", + "attendee_join_uri": "attendeeJoinUri", + "has_unsent_invites": "hasUnsentInvites", + } +) +class WcsSessionResource(BaseModel): + """WcsSessionResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param scheduled_start_time: Session scheduled start time. + :type scheduled_start_time: str + :param scheduled_duration: The duration of the Session in seconds. + :type scheduled_duration: int + :param time_zone: IANA-compatible time zone name (see https://www.iana.org/time-zones). + :type time_zone: str + :param localized_time_zone_description: Localized time zone description., defaults to None + :type localized_time_zone_description: str, optional + :param panel_join_time_offset: The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync , defaults to None + :type panel_join_time_offset: int, optional + :param title: Session title. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type description: str, optional + :param status: Session status (for the purposes of Configuration service), defaults to None + :type status: WcsSessionStatusModel, optional + :param host_join_uri: The URI to join the webinar as a host, defaults to None + :type host_join_uri: str, optional + :param locale_code: Session locale code. Can't be blank or null, defaults to None + :type locale_code: str, optional + :param video_bridge_id: The RCV bridge id, defaults to None + :type video_bridge_id: str, optional + :param video_bridge_password: The RCV bridge password. Returned only if requested by Host/Co-host/Panelist and a password for the bridge is set., defaults to None + :type video_bridge_password: str, optional + :param video_bridge_pstn_password: The RCV bridge PSTN password. Returned only if requested by Host/Co-host/Panelist and a PSTN password for the bridge is set., defaults to None + :type video_bridge_pstn_password: str, optional + :param attendee_join_uri: The URI for attendees to join the Webinar (if it is a public webinar), defaults to None + :type attendee_join_uri: str, optional + :param has_unsent_invites: Calculated attribute indicating if there are any unsent/deferred invites to session participants, defaults to None + :type has_unsent_invites: bool, optional + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + scheduled_start_time: str, + scheduled_duration: int, + time_zone: str, + id_: str = None, + localized_time_zone_description: str = None, + panel_join_time_offset: int = None, + title: str = None, + description: str = None, + status: WcsSessionStatusModel = None, + host_join_uri: str = None, + locale_code: str = None, + video_bridge_id: str = None, + video_bridge_password: str = None, + video_bridge_pstn_password: str = None, + attendee_join_uri: str = None, + has_unsent_invites: bool = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.scheduled_start_time = scheduled_start_time + self.scheduled_duration = scheduled_duration + self.time_zone = time_zone + if localized_time_zone_description is not None: + self.localized_time_zone_description = localized_time_zone_description + if panel_join_time_offset is not None: + self.panel_join_time_offset = panel_join_time_offset + if title is not None: + self.title = title + if description is not None: + self.description = description + if status is not None: + self.status = self._enum_matching( + status, WcsSessionStatusModel.list(), "status" + ) + if host_join_uri is not None: + self.host_join_uri = host_join_uri + if locale_code is not None: + self.locale_code = locale_code + if video_bridge_id is not None: + self.video_bridge_id = video_bridge_id + if video_bridge_password is not None: + self.video_bridge_password = video_bridge_password + if video_bridge_pstn_password is not None: + self.video_bridge_pstn_password = video_bridge_pstn_password + if attendee_join_uri is not None: + self.attendee_join_uri = attendee_join_uri + if has_unsent_invites is not None: + self.has_unsent_invites = has_unsent_invites diff --git a/src/ring_central/models/wcs_session_status_model.py b/src/ring_central/models/wcs_session_status_model.py new file mode 100644 index 00000000..0322cc0b --- /dev/null +++ b/src/ring_central/models/wcs_session_status_model.py @@ -0,0 +1,27 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class WcsSessionStatusModel(Enum): + """An enumeration representing different categories. + + :cvar SCHEDULED: "Scheduled" + :vartype SCHEDULED: str + :cvar ACTIVE: "Active" + :vartype ACTIVE: str + :cvar FINISHED: "Finished" + :vartype FINISHED: str + """ + + SCHEDULED = "Scheduled" + ACTIVE = "Active" + FINISHED = "Finished" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, WcsSessionStatusModel._member_map_.values())) diff --git a/src/ring_central/models/wcs_session_with_locale_code_model.py b/src/ring_central/models/wcs_session_with_locale_code_model.py new file mode 100644 index 00000000..7d68b289 --- /dev/null +++ b/src/ring_central/models/wcs_session_with_locale_code_model.py @@ -0,0 +1,76 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_session_status_model import WcsSessionStatusModel + + +@JsonMap( + { + "scheduled_start_time": "scheduledStartTime", + "scheduled_duration": "scheduledDuration", + "time_zone": "timeZone", + "localized_time_zone_description": "localizedTimeZoneDescription", + "panel_join_time_offset": "panelJoinTimeOffset", + "host_join_uri": "hostJoinUri", + "locale_code": "localeCode", + } +) +class WcsSessionWithLocaleCodeModel(BaseModel): + """WcsSessionWithLocaleCodeModel + + :param scheduled_start_time: Session scheduled start time. + :type scheduled_start_time: str + :param scheduled_duration: The duration of the Session in seconds. + :type scheduled_duration: int + :param time_zone: IANA-compatible time zone name (see https://www.iana.org/time-zones). + :type time_zone: str + :param localized_time_zone_description: Localized time zone description., defaults to None + :type localized_time_zone_description: str, optional + :param panel_join_time_offset: The time offset (positive, in seconds) indicating how much in advance (comparing to "scheduledStartTime") panel members should join for the pre-webinar team sync , defaults to None + :type panel_join_time_offset: int, optional + :param title: Session title. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type title: str, optional + :param description: User-friendly description of the Session. Can be left blank - then Webinar title should be used for presentation., defaults to None + :type description: str, optional + :param status: Session status (for the purposes of Configuration service), defaults to None + :type status: WcsSessionStatusModel, optional + :param host_join_uri: The URI to join the webinar as a host, defaults to None + :type host_join_uri: str, optional + :param locale_code: Session locale code. Can't be blank or null, defaults to None + :type locale_code: str, optional + """ + + def __init__( + self, + scheduled_start_time: str, + scheduled_duration: int, + time_zone: str, + localized_time_zone_description: str = None, + panel_join_time_offset: int = None, + title: str = None, + description: str = None, + status: WcsSessionStatusModel = None, + host_join_uri: str = None, + locale_code: str = None, + ): + self.scheduled_start_time = scheduled_start_time + self.scheduled_duration = scheduled_duration + self.time_zone = time_zone + if localized_time_zone_description is not None: + self.localized_time_zone_description = localized_time_zone_description + if panel_join_time_offset is not None: + self.panel_join_time_offset = panel_join_time_offset + if title is not None: + self.title = title + if description is not None: + self.description = description + if status is not None: + self.status = self._enum_matching( + status, WcsSessionStatusModel.list(), "status" + ) + if host_join_uri is not None: + self.host_join_uri = host_join_uri + if locale_code is not None: + self.locale_code = locale_code diff --git a/src/ring_central/models/wcs_webinar_ref_model.py b/src/ring_central/models/wcs_webinar_ref_model.py new file mode 100644 index 00000000..14bffc58 --- /dev/null +++ b/src/ring_central/models/wcs_webinar_ref_model.py @@ -0,0 +1,36 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .rcw_linked_user_model import RcwLinkedUserModel + + +@JsonMap({"id_": "id"}) +class WcsWebinarRefModel(BaseModel): + """WcsWebinarRefModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param title: Webinar title + :type title: str + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param host: The internal IDs of RC-authenticated users., defaults to None + :type host: RcwLinkedUserModel, optional + """ + + def __init__( + self, + title: str, + id_: str = None, + description: str = None, + host: RcwLinkedUserModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.title = title + if description is not None: + self.description = description + if host is not None: + self.host = self._define_object(host, RcwLinkedUserModel) diff --git a/src/ring_central/models/wcs_webinar_resource.py b/src/ring_central/models/wcs_webinar_resource.py new file mode 100644 index 00000000..5fcd55d5 --- /dev/null +++ b/src/ring_central/models/wcs_webinar_resource.py @@ -0,0 +1,56 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_webinar_settings_model import WcsWebinarSettingsModel +from .wcs_host_model import WcsHostModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class WcsWebinarResource(BaseModel): + """WcsWebinarResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param title: Webinar title, defaults to None + :type title: str, optional + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param settings: Various settings which define behavior of this Webinar's Sessions, defaults to None + :type settings: WcsWebinarSettingsModel, optional + :param host: host + :type host: WcsHostModel + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + host: WcsHostModel, + id_: str = None, + title: str = None, + description: str = None, + settings: WcsWebinarSettingsModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + if title is not None: + self.title = title + if description is not None: + self.description = description + if settings is not None: + self.settings = self._define_object(settings, WcsWebinarSettingsModel) + self.host = self._define_object(host, WcsHostModel) diff --git a/src/ring_central/models/wcs_webinar_settings_model.py b/src/ring_central/models/wcs_webinar_settings_model.py new file mode 100644 index 00000000..1c299be9 --- /dev/null +++ b/src/ring_central/models/wcs_webinar_settings_model.py @@ -0,0 +1,255 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class WcsWebinarSettingsModelPanelistAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WcsWebinarSettingsModelPanelistAuthentication._member_map_.values(), + ) + ) + + +class WcsWebinarSettingsModelAttendeeAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WcsWebinarSettingsModelAttendeeAuthentication._member_map_.values(), + ) + ) + + +class WcsWebinarSettingsModelArtifactsAccessAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WcsWebinarSettingsModelArtifactsAccessAuthentication._member_map_.values(), + ) + ) + + +@JsonMap( + { + "recording_enabled": "recordingEnabled", + "auto_record": "autoRecord", + "recording_sharing_enabled": "recordingSharingEnabled", + "recording_download_enabled": "recordingDownloadEnabled", + "recording_deletion_enabled": "recordingDeletionEnabled", + "past_session_deletion_enabled": "pastSessionDeletionEnabled", + "panelist_waiting_room": "panelistWaitingRoom", + "panelist_video_enabled": "panelistVideoEnabled", + "panelist_screen_sharing_enabled": "panelistScreenSharingEnabled", + "panelist_mute_control_enabled": "panelistMuteControlEnabled", + "panelist_authentication": "panelistAuthentication", + "attendee_authentication": "attendeeAuthentication", + "artifacts_access_authentication": "artifactsAccessAuthentication", + "pstn_enabled": "pstnEnabled", + "qna_enabled": "qnaEnabled", + "qna_anonymous_enabled": "qnaAnonymousEnabled", + "polls_enabled": "pollsEnabled", + "polls_anonymous_enabled": "pollsAnonymousEnabled", + "registration_enabled": "registrationEnabled", + "post_webinar_redirect_uri": "postWebinarRedirectUri", + "external_livestream_enabled": "externalLivestreamEnabled", + "moderated_qna_enabled": "moderatedQnaEnabled", + } +) +class WcsWebinarSettingsModel(BaseModel): + """Various settings which define behavior of this Webinar's Sessions + + :param recording_enabled: Indicates if recording is enabled (if false all other recording settings cannot be enabled), defaults to None + :type recording_enabled: bool, optional + :param auto_record: Indicates if recording should start automatically when a Webinar goes live, defaults to None + :type auto_record: bool, optional + :param recording_sharing_enabled: Indicates if recording can be shared (this setting is read-only at webinar level), defaults to None + :type recording_sharing_enabled: bool, optional + :param recording_download_enabled: Indicates if recording can be downloaded (this setting is read-only at webinar level), defaults to None + :type recording_download_enabled: bool, optional + :param recording_deletion_enabled: DEPRECATED AND REPLACED BY 'pastSessionDeletionEnabled' setting. Indicates if recording can be deleted (this setting is read-only at webinar level) , defaults to None + :type recording_deletion_enabled: bool, optional + :param past_session_deletion_enabled: Indicates if deletion of past session along with its artifacts is enabled for Host. This setting is read-only at webinar level , defaults to None + :type past_session_deletion_enabled: bool, optional + :param panelist_waiting_room: Indicates if Panelists should be places to waiting room after joining, defaults to None + :type panelist_waiting_room: bool, optional + :param panelist_video_enabled: Indicates if Panelists' video should be 'on' by default, defaults to None + :type panelist_video_enabled: bool, optional + :param panelist_screen_sharing_enabled: Indicates if Panelists' screen sharing should be 'on' by default, defaults to None + :type panelist_screen_sharing_enabled: bool, optional + :param panelist_mute_control_enabled: Indicates if Panelists can mute/unmute themselves by default, defaults to None + :type panelist_mute_control_enabled: bool, optional + :param panelist_authentication: Indicates if Panelists have to be authenticated users, defaults to None + :type panelist_authentication: WcsWebinarSettingsModelPanelistAuthentication, optional + :param attendee_authentication: Indicates if attendees have to be authenticated users, defaults to None + :type attendee_authentication: WcsWebinarSettingsModelAttendeeAuthentication, optional + :param artifacts_access_authentication: Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. , defaults to None + :type artifacts_access_authentication: WcsWebinarSettingsModelArtifactsAccessAuthentication, optional + :param pstn_enabled: Indicates if dial-in PSTN audio option is enabled for Panelists, defaults to None + :type pstn_enabled: bool, optional + :param password: Webinar password. If company-level "passwordEnabled" is true and "password" is null / omitted, the backend generates the password , defaults to None + :type password: str, optional + :param qna_enabled: Indicates if Q&A is enabled for the webinar (if false all other Q&A settings cannot be enabled), defaults to None + :type qna_enabled: bool, optional + :param qna_anonymous_enabled: Indicates if anonymous Q&A is enabled for the webinar, defaults to None + :type qna_anonymous_enabled: bool, optional + :param polls_enabled: Indicates if polls are enabled for the webinar (if false all other polls settings cannot be enabled), defaults to None + :type polls_enabled: bool, optional + :param polls_anonymous_enabled: Indicates if anonymous poll answers are enabled for the webinar, defaults to None + :type polls_anonymous_enabled: bool, optional + :param registration_enabled: Indicates if a registration is enabled for the webinar (if false all other registration settings are ignored), defaults to None + :type registration_enabled: bool, optional + :param post_webinar_redirect_uri: URI to redirect users after the webinar, defaults to None + :type post_webinar_redirect_uri: str, optional + :param external_livestream_enabled: Indicates if livestreaming to external streaming provider is enabled, defaults to None + :type external_livestream_enabled: bool, optional + :param moderated_qna_enabled: Indicate if the moderated Q&A enabled for webinar, defaults to None + :type moderated_qna_enabled: bool, optional + """ + + def __init__( + self, + recording_enabled: bool = None, + auto_record: bool = None, + recording_sharing_enabled: bool = None, + recording_download_enabled: bool = None, + recording_deletion_enabled: bool = None, + past_session_deletion_enabled: bool = None, + panelist_waiting_room: bool = None, + panelist_video_enabled: bool = None, + panelist_screen_sharing_enabled: bool = None, + panelist_mute_control_enabled: bool = None, + panelist_authentication: WcsWebinarSettingsModelPanelistAuthentication = None, + attendee_authentication: WcsWebinarSettingsModelAttendeeAuthentication = None, + artifacts_access_authentication: WcsWebinarSettingsModelArtifactsAccessAuthentication = None, + pstn_enabled: bool = None, + password: str = None, + qna_enabled: bool = None, + qna_anonymous_enabled: bool = None, + polls_enabled: bool = None, + polls_anonymous_enabled: bool = None, + registration_enabled: bool = None, + post_webinar_redirect_uri: str = None, + external_livestream_enabled: bool = None, + moderated_qna_enabled: bool = None, + ): + if recording_enabled is not None: + self.recording_enabled = recording_enabled + if auto_record is not None: + self.auto_record = auto_record + if recording_sharing_enabled is not None: + self.recording_sharing_enabled = recording_sharing_enabled + if recording_download_enabled is not None: + self.recording_download_enabled = recording_download_enabled + if recording_deletion_enabled is not None: + self.recording_deletion_enabled = recording_deletion_enabled + if past_session_deletion_enabled is not None: + self.past_session_deletion_enabled = past_session_deletion_enabled + if panelist_waiting_room is not None: + self.panelist_waiting_room = panelist_waiting_room + if panelist_video_enabled is not None: + self.panelist_video_enabled = panelist_video_enabled + if panelist_screen_sharing_enabled is not None: + self.panelist_screen_sharing_enabled = panelist_screen_sharing_enabled + if panelist_mute_control_enabled is not None: + self.panelist_mute_control_enabled = panelist_mute_control_enabled + if panelist_authentication is not None: + self.panelist_authentication = self._enum_matching( + panelist_authentication, + WcsWebinarSettingsModelPanelistAuthentication.list(), + "panelist_authentication", + ) + if attendee_authentication is not None: + self.attendee_authentication = self._enum_matching( + attendee_authentication, + WcsWebinarSettingsModelAttendeeAuthentication.list(), + "attendee_authentication", + ) + if artifacts_access_authentication is not None: + self.artifacts_access_authentication = self._enum_matching( + artifacts_access_authentication, + WcsWebinarSettingsModelArtifactsAccessAuthentication.list(), + "artifacts_access_authentication", + ) + if pstn_enabled is not None: + self.pstn_enabled = pstn_enabled + if password is not None: + self.password = password + if qna_enabled is not None: + self.qna_enabled = qna_enabled + if qna_anonymous_enabled is not None: + self.qna_anonymous_enabled = qna_anonymous_enabled + if polls_enabled is not None: + self.polls_enabled = polls_enabled + if polls_anonymous_enabled is not None: + self.polls_anonymous_enabled = polls_anonymous_enabled + if registration_enabled is not None: + self.registration_enabled = registration_enabled + if post_webinar_redirect_uri is not None: + self.post_webinar_redirect_uri = post_webinar_redirect_uri + if external_livestream_enabled is not None: + self.external_livestream_enabled = external_livestream_enabled + if moderated_qna_enabled is not None: + self.moderated_qna_enabled = moderated_qna_enabled diff --git a/src/ring_central/models/web_socket_delivery_mode.py b/src/ring_central/models/web_socket_delivery_mode.py new file mode 100644 index 00000000..1c5bf664 --- /dev/null +++ b/src/ring_central/models/web_socket_delivery_mode.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class WebSocketDeliveryModeTransportType(Enum): + """An enumeration representing different categories. + + :cvar WEBSOCKET: "WebSocket" + :vartype WEBSOCKET: str + """ + + WEBSOCKET = "WebSocket" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebSocketDeliveryModeTransportType._member_map_.values(), + ) + ) + + +@JsonMap({"transport_type": "transportType"}) +class WebSocketDeliveryMode(BaseModel): + """WebSocketDeliveryMode + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: WebSocketDeliveryModeTransportType + """ + + def __init__(self, transport_type: WebSocketDeliveryModeTransportType): + self.transport_type = self._enum_matching( + transport_type, WebSocketDeliveryModeTransportType.list(), "transport_type" + ) diff --git a/src/ring_central/models/webhook_delivery_mode.py b/src/ring_central/models/webhook_delivery_mode.py new file mode 100644 index 00000000..86a0597d --- /dev/null +++ b/src/ring_central/models/webhook_delivery_mode.py @@ -0,0 +1,75 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class WebhookDeliveryModeTransportType(Enum): + """An enumeration representing different categories. + + :cvar WEBHOOK: "WebHook" + :vartype WEBHOOK: str + """ + + WEBHOOK = "WebHook" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebhookDeliveryModeTransportType._member_map_.values(), + ) + ) + + +class WebhookDeliveryModeEncryption(Enum): + """An enumeration representing different categories. + + :cvar FALSE: "false" + :vartype FALSE: str + """ + + FALSE = "false" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, WebhookDeliveryModeEncryption._member_map_.values()) + ) + + +@JsonMap({"transport_type": "transportType"}) +class WebhookDeliveryMode(BaseModel): + """WebhookDeliveryMode + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: WebhookDeliveryModeTransportType + :param address: The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. + :type address: str + :param encryption: Specifies if notification messages will be encrypted or not. + :type encryption: WebhookDeliveryModeEncryption + """ + + def __init__( + self, + transport_type: WebhookDeliveryModeTransportType, + address: str, + encryption: WebhookDeliveryModeEncryption, + ): + self.transport_type = self._enum_matching( + transport_type, WebhookDeliveryModeTransportType.list(), "transport_type" + ) + self.address = address + self.encryption = self._enum_matching( + encryption, WebhookDeliveryModeEncryption.list(), "encryption" + ) diff --git a/src/ring_central/models/webhook_delivery_mode_request.py b/src/ring_central/models/webhook_delivery_mode_request.py new file mode 100644 index 00000000..aee1fc0a --- /dev/null +++ b/src/ring_central/models/webhook_delivery_mode_request.py @@ -0,0 +1,56 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class WebhookDeliveryModeRequestTransportType(Enum): + """An enumeration representing different categories. + + :cvar WEBHOOK: "WebHook" + :vartype WEBHOOK: str + """ + + WEBHOOK = "WebHook" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebhookDeliveryModeRequestTransportType._member_map_.values(), + ) + ) + + +@JsonMap({"transport_type": "transportType", "verification_token": "verificationToken"}) +class WebhookDeliveryModeRequest(BaseModel): + """WebhookDeliveryModeRequest + + :param transport_type: The transport type for this subscription, or the channel by which an app should be notified of an event + :type transport_type: WebhookDeliveryModeRequestTransportType + :param address: The URL to which notifications should be delivered. This is only applicable for the `WebHook` transport type, for which it is a required field. + :type address: str + :param verification_token: An optional validation token used to verify the authenticity of the incoming webhook. Applicable only for the `WebHook` transport type., defaults to None + :type verification_token: str, optional + """ + + def __init__( + self, + transport_type: WebhookDeliveryModeRequestTransportType, + address: str, + verification_token: str = None, + ): + self.transport_type = self._enum_matching( + transport_type, + WebhookDeliveryModeRequestTransportType.list(), + "transport_type", + ) + self.address = address + if verification_token is not None: + self.verification_token = verification_token diff --git a/src/ring_central/models/webinar_base_model.py b/src/ring_central/models/webinar_base_model.py new file mode 100644 index 00000000..794e0e50 --- /dev/null +++ b/src/ring_central/models/webinar_base_model.py @@ -0,0 +1,32 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_webinar_settings_model import WcsWebinarSettingsModel + + +@JsonMap({}) +class WebinarBaseModel(BaseModel): + """WebinarBaseModel + + :param title: Webinar title, defaults to None + :type title: str, optional + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param settings: Various settings which define behavior of this Webinar's Sessions, defaults to None + :type settings: WcsWebinarSettingsModel, optional + """ + + def __init__( + self, + title: str = None, + description: str = None, + settings: WcsWebinarSettingsModel = None, + ): + if title is not None: + self.title = title + if description is not None: + self.description = description + if settings is not None: + self.settings = self._define_object(settings, WcsWebinarSettingsModel) diff --git a/src/ring_central/models/webinar_creation_request.py b/src/ring_central/models/webinar_creation_request.py new file mode 100644 index 00000000..dd2dabda --- /dev/null +++ b/src/ring_central/models/webinar_creation_request.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_webinar_settings_model import WcsWebinarSettingsModel +from .rcw_linked_user_model import RcwLinkedUserModel + + +@JsonMap({}) +class WebinarCreationRequest(BaseModel): + """WebinarCreationRequest + + :param title: Webinar title + :type title: str + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param settings: Various settings which define behavior of this Webinar's Sessions, defaults to None + :type settings: WcsWebinarSettingsModel, optional + :param host: The internal IDs of RC-authenticated users., defaults to None + :type host: RcwLinkedUserModel, optional + """ + + def __init__( + self, + title: str, + description: str = None, + settings: WcsWebinarSettingsModel = None, + host: RcwLinkedUserModel = None, + ): + self.title = title + if description is not None: + self.description = description + if settings is not None: + self.settings = self._define_object(settings, WcsWebinarSettingsModel) + if host is not None: + self.host = self._define_object(host, RcwLinkedUserModel) diff --git a/src/ring_central/models/webinar_list_resource.py b/src/ring_central/models/webinar_list_resource.py new file mode 100644 index 00000000..95ac4b7f --- /dev/null +++ b/src/ring_central/models/webinar_list_resource.py @@ -0,0 +1,23 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .wcs_webinar_resource import WcsWebinarResource +from .rcw_paging_model import RcwPagingModel + + +@JsonMap({}) +class WebinarListResource(BaseModel): + """WebinarListResource + + :param records: records + :type records: List[WcsWebinarResource] + :param paging: paging + :type paging: RcwPagingModel + """ + + def __init__(self, records: List[WcsWebinarResource], paging: RcwPagingModel): + self.records = self._define_list(records, WcsWebinarResource) + self.paging = self._define_object(paging, RcwPagingModel) diff --git a/src/ring_central/models/webinar_ref_model.py b/src/ring_central/models/webinar_ref_model.py new file mode 100644 index 00000000..44a6ec3b --- /dev/null +++ b/src/ring_central/models/webinar_ref_model.py @@ -0,0 +1,31 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .host_model import HostModel + + +@JsonMap({"id_": "id"}) +class WebinarRefModel(BaseModel): + """WebinarRefModel + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param title: Webinar title + :type title: str + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param host: host + :type host: HostModel + """ + + def __init__( + self, title: str, host: HostModel, id_: str = None, description: str = None + ): + if id_ is not None: + self.id_ = id_ + self.title = title + if description is not None: + self.description = description + self.host = self._define_object(host, HostModel) diff --git a/src/ring_central/models/webinar_resource.py b/src/ring_central/models/webinar_resource.py new file mode 100644 index 00000000..f1b79059 --- /dev/null +++ b/src/ring_central/models/webinar_resource.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .webinar_settings_model import WebinarSettingsModel +from .host_model import HostModel + + +@JsonMap( + { + "id_": "id", + "creation_time": "creationTime", + "last_modified_time": "lastModifiedTime", + } +) +class WebinarResource(BaseModel): + """WebinarResource + + :param id_: Internal object ID, defaults to None + :type id_: str, optional + :param creation_time: Object creation time + :type creation_time: str + :param last_modified_time: Object last modification time + :type last_modified_time: str + :param title: Webinar title + :type title: str + :param description: User-friendly description of the Webinar, defaults to None + :type description: str, optional + :param settings: Various settings which define behavior of this Webinar's Sessions, defaults to None + :type settings: WebinarSettingsModel, optional + :param host: host + :type host: HostModel + """ + + def __init__( + self, + creation_time: str, + last_modified_time: str, + title: str, + host: HostModel, + id_: str = None, + description: str = None, + settings: WebinarSettingsModel = None, + ): + if id_ is not None: + self.id_ = id_ + self.creation_time = creation_time + self.last_modified_time = last_modified_time + self.title = title + if description is not None: + self.description = description + if settings is not None: + self.settings = self._define_object(settings, WebinarSettingsModel) + self.host = self._define_object(host, HostModel) diff --git a/src/ring_central/models/webinar_settings_model.py b/src/ring_central/models/webinar_settings_model.py new file mode 100644 index 00000000..94b3570a --- /dev/null +++ b/src/ring_central/models/webinar_settings_model.py @@ -0,0 +1,255 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from .utils.json_map import JsonMap +from .base import BaseModel + + +class WebinarSettingsModelPanelistAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebinarSettingsModelPanelistAuthentication._member_map_.values(), + ) + ) + + +class WebinarSettingsModelAttendeeAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebinarSettingsModelAttendeeAuthentication._member_map_.values(), + ) + ) + + +class WebinarSettingsModelArtifactsAccessAuthentication(Enum): + """An enumeration representing different categories. + + :cvar GUEST: "Guest" + :vartype GUEST: str + :cvar AUTHENTICATEDUSER: "AuthenticatedUser" + :vartype AUTHENTICATEDUSER: str + :cvar AUTHENTICATEDCOWORKER: "AuthenticatedCoworker" + :vartype AUTHENTICATEDCOWORKER: str + """ + + GUEST = "Guest" + AUTHENTICATEDUSER = "AuthenticatedUser" + AUTHENTICATEDCOWORKER = "AuthenticatedCoworker" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map( + lambda x: x.value, + WebinarSettingsModelArtifactsAccessAuthentication._member_map_.values(), + ) + ) + + +@JsonMap( + { + "recording_enabled": "recordingEnabled", + "auto_record": "autoRecord", + "recording_sharing_enabled": "recordingSharingEnabled", + "recording_download_enabled": "recordingDownloadEnabled", + "recording_deletion_enabled": "recordingDeletionEnabled", + "past_session_deletion_enabled": "pastSessionDeletionEnabled", + "panelist_waiting_room": "panelistWaitingRoom", + "panelist_video_enabled": "panelistVideoEnabled", + "panelist_screen_sharing_enabled": "panelistScreenSharingEnabled", + "panelist_mute_control_enabled": "panelistMuteControlEnabled", + "panelist_authentication": "panelistAuthentication", + "attendee_authentication": "attendeeAuthentication", + "artifacts_access_authentication": "artifactsAccessAuthentication", + "pstn_enabled": "pstnEnabled", + "qna_enabled": "qnaEnabled", + "qna_anonymous_enabled": "qnaAnonymousEnabled", + "moderated_qna_enabled": "moderatedQnaEnabled", + "polls_enabled": "pollsEnabled", + "polls_anonymous_enabled": "pollsAnonymousEnabled", + "registration_enabled": "registrationEnabled", + "post_webinar_redirect_uri": "postWebinarRedirectUri", + "external_livestream_enabled": "externalLivestreamEnabled", + } +) +class WebinarSettingsModel(BaseModel): + """Various settings which define behavior of this Webinar's Sessions + + :param recording_enabled: Indicates if recording is enabled (if false all other recording settings cannot be enabled), defaults to None + :type recording_enabled: bool, optional + :param auto_record: Indicates if recording should start automatically when a Webinar goes live, defaults to None + :type auto_record: bool, optional + :param recording_sharing_enabled: Indicates if recording can be shared, defaults to None + :type recording_sharing_enabled: bool, optional + :param recording_download_enabled: Indicates if recording can be downloaded, defaults to None + :type recording_download_enabled: bool, optional + :param recording_deletion_enabled: DEPRECATED AND REPLACED BY 'pastSessionDeletionEnabled' setting. Indicates if recording can be deleted (this setting is read-only at webinar/session level) , defaults to None + :type recording_deletion_enabled: bool, optional + :param past_session_deletion_enabled: Indicates if deletion of past session along with its artifacts is enabled for host. This setting is read-only at webinar level , defaults to None + :type past_session_deletion_enabled: bool, optional + :param panelist_waiting_room: Indicates if Panelists should be places to waiting room after joining, defaults to None + :type panelist_waiting_room: bool, optional + :param panelist_video_enabled: Indicates if Panelists' video should be 'on' by default, defaults to None + :type panelist_video_enabled: bool, optional + :param panelist_screen_sharing_enabled: Indicates if Panelists' screen sharing should be 'on' by default, defaults to None + :type panelist_screen_sharing_enabled: bool, optional + :param panelist_mute_control_enabled: Indicates if Panelists can mute/unmute themselves by default, defaults to None + :type panelist_mute_control_enabled: bool, optional + :param panelist_authentication: Indicates if Panelists have to be authenticated users, defaults to None + :type panelist_authentication: WebinarSettingsModelPanelistAuthentication, optional + :param attendee_authentication: Indicates if attendees have to be authenticated users, defaults to None + :type attendee_authentication: WebinarSettingsModelAttendeeAuthentication, optional + :param artifacts_access_authentication: Indicates who can access webinar artifacts. Applies to recordings at present. Applicable to other artifacts such as Q&A, Polls in the future. , defaults to None + :type artifacts_access_authentication: WebinarSettingsModelArtifactsAccessAuthentication, optional + :param pstn_enabled: Indicates if dial-in PSTN audio option is enabled by default, defaults to None + :type pstn_enabled: bool, optional + :param password: Webinar password, defaults to None + :type password: str, optional + :param qna_enabled: Indicates if Q&A is enabled for the webinar (if false all other Q&A settings cannot be enabled), defaults to None + :type qna_enabled: bool, optional + :param qna_anonymous_enabled: Indicates if anonymous Q&A is enabled for the webinar, defaults to None + :type qna_anonymous_enabled: bool, optional + :param moderated_qna_enabled: Indicate if the moderated Q&A enabled for webinar, defaults to None + :type moderated_qna_enabled: bool, optional + :param polls_enabled: Indicates if polls are enabled for the webinar (if false all other polls settings cannot be enabled), defaults to None + :type polls_enabled: bool, optional + :param polls_anonymous_enabled: Indicates if anonymous poll answers are enabled for the webinar, defaults to None + :type polls_anonymous_enabled: bool, optional + :param registration_enabled: Indicates if a registration is enabled for the webinar (if false all other registration settings are ignored), defaults to None + :type registration_enabled: bool, optional + :param post_webinar_redirect_uri: URI to redirect users after the webinar, defaults to None + :type post_webinar_redirect_uri: str, optional + :param external_livestream_enabled: Indicates if livestreaming to external streaming provider is enabled, defaults to None + :type external_livestream_enabled: bool, optional + """ + + def __init__( + self, + recording_enabled: bool = None, + auto_record: bool = None, + recording_sharing_enabled: bool = None, + recording_download_enabled: bool = None, + recording_deletion_enabled: bool = None, + past_session_deletion_enabled: bool = None, + panelist_waiting_room: bool = None, + panelist_video_enabled: bool = None, + panelist_screen_sharing_enabled: bool = None, + panelist_mute_control_enabled: bool = None, + panelist_authentication: WebinarSettingsModelPanelistAuthentication = None, + attendee_authentication: WebinarSettingsModelAttendeeAuthentication = None, + artifacts_access_authentication: WebinarSettingsModelArtifactsAccessAuthentication = None, + pstn_enabled: bool = None, + password: str = None, + qna_enabled: bool = None, + qna_anonymous_enabled: bool = None, + moderated_qna_enabled: bool = None, + polls_enabled: bool = None, + polls_anonymous_enabled: bool = None, + registration_enabled: bool = None, + post_webinar_redirect_uri: str = None, + external_livestream_enabled: bool = None, + ): + if recording_enabled is not None: + self.recording_enabled = recording_enabled + if auto_record is not None: + self.auto_record = auto_record + if recording_sharing_enabled is not None: + self.recording_sharing_enabled = recording_sharing_enabled + if recording_download_enabled is not None: + self.recording_download_enabled = recording_download_enabled + if recording_deletion_enabled is not None: + self.recording_deletion_enabled = recording_deletion_enabled + if past_session_deletion_enabled is not None: + self.past_session_deletion_enabled = past_session_deletion_enabled + if panelist_waiting_room is not None: + self.panelist_waiting_room = panelist_waiting_room + if panelist_video_enabled is not None: + self.panelist_video_enabled = panelist_video_enabled + if panelist_screen_sharing_enabled is not None: + self.panelist_screen_sharing_enabled = panelist_screen_sharing_enabled + if panelist_mute_control_enabled is not None: + self.panelist_mute_control_enabled = panelist_mute_control_enabled + if panelist_authentication is not None: + self.panelist_authentication = self._enum_matching( + panelist_authentication, + WebinarSettingsModelPanelistAuthentication.list(), + "panelist_authentication", + ) + if attendee_authentication is not None: + self.attendee_authentication = self._enum_matching( + attendee_authentication, + WebinarSettingsModelAttendeeAuthentication.list(), + "attendee_authentication", + ) + if artifacts_access_authentication is not None: + self.artifacts_access_authentication = self._enum_matching( + artifacts_access_authentication, + WebinarSettingsModelArtifactsAccessAuthentication.list(), + "artifacts_access_authentication", + ) + if pstn_enabled is not None: + self.pstn_enabled = pstn_enabled + if password is not None: + self.password = password + if qna_enabled is not None: + self.qna_enabled = qna_enabled + if qna_anonymous_enabled is not None: + self.qna_anonymous_enabled = qna_anonymous_enabled + if moderated_qna_enabled is not None: + self.moderated_qna_enabled = moderated_qna_enabled + if polls_enabled is not None: + self.polls_enabled = polls_enabled + if polls_anonymous_enabled is not None: + self.polls_anonymous_enabled = polls_anonymous_enabled + if registration_enabled is not None: + self.registration_enabled = registration_enabled + if post_webinar_redirect_uri is not None: + self.post_webinar_redirect_uri = post_webinar_redirect_uri + if external_livestream_enabled is not None: + self.external_livestream_enabled = external_livestream_enabled diff --git a/src/ring_central/models/week_day.py b/src/ring_central/models/week_day.py new file mode 100644 index 00000000..1c52f531 --- /dev/null +++ b/src/ring_central/models/week_day.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum + + +class WeekDay(Enum): + """An enumeration representing different categories. + + :cvar SUNDAY: "Sunday" + :vartype SUNDAY: str + :cvar MONDAY: "Monday" + :vartype MONDAY: str + :cvar TUESDAY: "Tuesday" + :vartype TUESDAY: str + :cvar WEDNESDAY: "Wednesday" + :vartype WEDNESDAY: str + :cvar THURSDAY: "Thursday" + :vartype THURSDAY: str + :cvar FRIDAY: "Friday" + :vartype FRIDAY: str + :cvar SATURDAY: "Saturday" + :vartype SATURDAY: str + """ + + SUNDAY = "Sunday" + MONDAY = "Monday" + TUESDAY = "Tuesday" + WEDNESDAY = "Wednesday" + THURSDAY = "Thursday" + FRIDAY = "Friday" + SATURDAY = "Saturday" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list(map(lambda x: x.value, WeekDay._member_map_.values())) diff --git a/src/ring_central/models/weekly_schedule_info.py b/src/ring_central/models/weekly_schedule_info.py new file mode 100644 index 00000000..7ce35774 --- /dev/null +++ b/src/ring_central/models/weekly_schedule_info.py @@ -0,0 +1,53 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .time_interval import TimeInterval + + +@JsonMap({}) +class WeeklyScheduleInfo(BaseModel): + """Weekly schedule + + :param monday: Time intervals for a particular day, defaults to None + :type monday: List[TimeInterval], optional + :param tuesday: Time intervals for a particular day, defaults to None + :type tuesday: List[TimeInterval], optional + :param wednesday: Time intervals for a particular day, defaults to None + :type wednesday: List[TimeInterval], optional + :param thursday: Time intervals for a particular day, defaults to None + :type thursday: List[TimeInterval], optional + :param friday: Time intervals for a particular day, defaults to None + :type friday: List[TimeInterval], optional + :param saturday: Time intervals for a particular day, defaults to None + :type saturday: List[TimeInterval], optional + :param sunday: Time intervals for a particular day, defaults to None + :type sunday: List[TimeInterval], optional + """ + + def __init__( + self, + monday: List[TimeInterval] = None, + tuesday: List[TimeInterval] = None, + wednesday: List[TimeInterval] = None, + thursday: List[TimeInterval] = None, + friday: List[TimeInterval] = None, + saturday: List[TimeInterval] = None, + sunday: List[TimeInterval] = None, + ): + if monday is not None: + self.monday = self._define_list(monday, TimeInterval) + if tuesday is not None: + self.tuesday = self._define_list(tuesday, TimeInterval) + if wednesday is not None: + self.wednesday = self._define_list(wednesday, TimeInterval) + if thursday is not None: + self.thursday = self._define_list(thursday, TimeInterval) + if friday is not None: + self.friday = self._define_list(friday, TimeInterval) + if saturday is not None: + self.saturday = self._define_list(saturday, TimeInterval) + if sunday is not None: + self.sunday = self._define_list(sunday, TimeInterval) diff --git a/src/ring_central/models/wireless_point_info.py b/src/ring_central/models/wireless_point_info.py new file mode 100644 index 00000000..037b0f4f --- /dev/null +++ b/src/ring_central/models/wireless_point_info.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from .utils.json_map import JsonMap +from .base import BaseModel +from .emergency_address_auto_update_site_info import EmergencyAddressAutoUpdateSiteInfo +from .emergency_address_info import EmergencyAddressInfo, EmergencyAddressInfoGuard +from .erl_location_info import ErlLocationInfo + + +@JsonMap( + { + "id_": "id", + "emergency_address": "emergencyAddress", + "emergency_location": "emergencyLocation", + "emergency_location_id": "emergencyLocationId", + } +) +class WirelessPointInfo(BaseModel): + """WirelessPointInfo + + :param uri: Link to the wireless point resource, defaults to None + :type uri: str, optional + :param id_: Internal identifier of a wireless point, defaults to None + :type id_: str, optional + :param bssid: Unique 48-bit identifier of the wireless access point that follows MAC address conventions + :type bssid: str + :param name: Wireless access point name + :type name: str + :param site: site, defaults to None + :type site: EmergencyAddressAutoUpdateSiteInfo, optional + :param emergency_address: emergency_address + :type emergency_address: EmergencyAddressInfo + :param emergency_location: Emergency response location information, defaults to None + :type emergency_location: ErlLocationInfo, optional + :param emergency_location_id: Deprecated. Emergency response location (address) internal identifier. Only one of a pair `emergencyAddress` or `emergencyLocationId` should be specified, otherwise the error is returned, defaults to None + :type emergency_location_id: str, optional + """ + + def __init__( + self, + bssid: str, + name: str, + emergency_address: EmergencyAddressInfo, + uri: str = None, + id_: str = None, + site: EmergencyAddressAutoUpdateSiteInfo = None, + emergency_location: ErlLocationInfo = None, + emergency_location_id: str = None, + ): + if uri is not None: + self.uri = uri + if id_ is not None: + self.id_ = id_ + self.bssid = bssid + self.name = name + if site is not None: + self.site = self._define_object(site, EmergencyAddressAutoUpdateSiteInfo) + self.emergency_address = EmergencyAddressInfoGuard.return_one_of( + emergency_address + ) + if emergency_location is not None: + self.emergency_location = self._define_object( + emergency_location, ErlLocationInfo + ) + if emergency_location_id is not None: + self.emergency_location_id = emergency_location_id diff --git a/src/ring_central/models/wireless_point_validated.py b/src/ring_central/models/wireless_point_validated.py new file mode 100644 index 00000000..58a95a7b --- /dev/null +++ b/src/ring_central/models/wireless_point_validated.py @@ -0,0 +1,64 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from enum import Enum +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .validation_error import ValidationError + + +class WirelessPointValidatedStatus(Enum): + """An enumeration representing different categories. + + :cvar VALID: "Valid" + :vartype VALID: str + :cvar INVALID: "Invalid" + :vartype INVALID: str + """ + + VALID = "Valid" + INVALID = "Invalid" + + def list(): + """Lists all category values. + + :return: A list of all category values. + :rtype: list + """ + return list( + map(lambda x: x.value, WirelessPointValidatedStatus._member_map_.values()) + ) + + +@JsonMap({"id_": "id"}) +class WirelessPointValidated(BaseModel): + """WirelessPointValidated + + :param id_: Internal identifier of a wireless point, defaults to None + :type id_: str, optional + :param bssid: Unique 48-bit identifier of the wireless access point that follows MAC address conventions , defaults to None + :type bssid: str, optional + :param status: Validation result status, defaults to None + :type status: WirelessPointValidatedStatus, optional + :param errors: errors, defaults to None + :type errors: List[ValidationError], optional + """ + + def __init__( + self, + id_: str = None, + bssid: str = None, + status: WirelessPointValidatedStatus = None, + errors: List[ValidationError] = None, + ): + if id_ is not None: + self.id_ = id_ + if bssid is not None: + self.bssid = bssid + if status is not None: + self.status = self._enum_matching( + status, WirelessPointValidatedStatus.list(), "status" + ) + if errors is not None: + self.errors = self._define_list(errors, ValidationError) diff --git a/src/ring_central/models/wireless_points_list.py b/src/ring_central/models/wireless_points_list.py new file mode 100644 index 00000000..040f857c --- /dev/null +++ b/src/ring_central/models/wireless_points_list.py @@ -0,0 +1,40 @@ +# This file was generated by liblab | https://liblab.com/ + +from __future__ import annotations +from typing import List +from .utils.json_map import JsonMap +from .base import BaseModel +from .wireless_point_info import WirelessPointInfo +from .page_navigation_model import PageNavigationModel +from .enumerated_paging_model import EnumeratedPagingModel + + +@JsonMap({}) +class WirelessPointsList(BaseModel): + """WirelessPointsList + + :param uri: Link to a wireless points resource, defaults to None + :type uri: str, optional + :param records: List of wireless points with assigned emergency addresses, defaults to None + :type records: List[WirelessPointInfo], optional + :param navigation: Links to other pages of the current result set, defaults to None + :type navigation: PageNavigationModel, optional + :param paging: paging, defaults to None + :type paging: EnumeratedPagingModel, optional + """ + + def __init__( + self, + uri: str = None, + records: List[WirelessPointInfo] = None, + navigation: PageNavigationModel = None, + paging: EnumeratedPagingModel = None, + ): + if uri is not None: + self.uri = uri + if records is not None: + self.records = self._define_list(records, WirelessPointInfo) + if navigation is not None: + self.navigation = self._define_object(navigation, PageNavigationModel) + if paging is not None: + self.paging = self._define_object(paging, EnumeratedPagingModel) diff --git a/src/ring_central/models/word_segment.py b/src/ring_central/models/word_segment.py new file mode 100644 index 00000000..77e0ab2b --- /dev/null +++ b/src/ring_central/models/word_segment.py @@ -0,0 +1,37 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({"speaker_id": "speakerId"}) +class WordSegment(BaseModel): + """WordSegment + + :param speaker_id: speaker_id, defaults to None + :type speaker_id: str, optional + :param start: start + :type start: float + :param end: end + :type end: float + :param confidence: confidence, defaults to None + :type confidence: float, optional + :param word: word + :type word: str + """ + + def __init__( + self, + start: float, + end: float, + word: str, + speaker_id: str = None, + confidence: float = None, + ): + if speaker_id is not None: + self.speaker_id = speaker_id + self.start = start + self.end = end + if confidence is not None: + self.confidence = confidence + self.word = word diff --git a/src/ring_central/models/word_timings_unit.py b/src/ring_central/models/word_timings_unit.py new file mode 100644 index 00000000..142fb3a3 --- /dev/null +++ b/src/ring_central/models/word_timings_unit.py @@ -0,0 +1,25 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.json_map import JsonMap +from .base import BaseModel + + +@JsonMap({}) +class WordTimingsUnit(BaseModel): + """WordTimingsUnit + + :param start: start, defaults to None + :type start: float, optional + :param end: end, defaults to None + :type end: float, optional + :param word: word, defaults to None + :type word: str, optional + """ + + def __init__(self, start: float = None, end: float = None, word: str = None): + if start is not None: + self.start = start + if end is not None: + self.end = end + if word is not None: + self.word = word diff --git a/src/ring_central/net/__init__.py b/src/ring_central/net/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/net/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/net/environment/__init__.py b/src/ring_central/net/environment/__init__.py new file mode 100644 index 00000000..fe36e5f0 --- /dev/null +++ b/src/ring_central/net/environment/__init__.py @@ -0,0 +1,3 @@ +# This file was generated by liblab | https://liblab.com/ + +from .environment import Environment diff --git a/src/ring_central/net/environment/environment.py b/src/ring_central/net/environment/environment.py new file mode 100644 index 00000000..b3bbf203 --- /dev/null +++ b/src/ring_central/net/environment/environment.py @@ -0,0 +1,12 @@ +# This file was generated by liblab | https://liblab.com/ + +""" +An enum class containing all the possible environments for the SDK +""" +from enum import Enum + + +class Environment(Enum): + """The environments available for the SDK""" + + DEFAULT = "https://platform.devtest.ringcentral.com/restapi/v1.0" diff --git a/src/ring_central/net/headers/__init__.py b/src/ring_central/net/headers/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/net/headers/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/net/headers/access_token_auth.py b/src/ring_central/net/headers/access_token_auth.py new file mode 100644 index 00000000..c54e8f51 --- /dev/null +++ b/src/ring_central/net/headers/access_token_auth.py @@ -0,0 +1,43 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Dict + +from .base_header import BaseHeader + + +class AccessTokenAuth(BaseHeader): + """ + A class for handling Access token authentication in headers. + + :ivar str _token_prefix: The prefix for the token in the header. + :ivar str token_value: The value of the token. + """ + + _token_prefix = "Bearer" + + def __init__(self, token_value: str): + """ + Initialize the AccessTokenAuth instance. + + :param token_value: The value of the token. + :type token_value: str + """ + self.token_value = token_value + + def set_value(self, value: str) -> None: + """ + Set the value of the token. + + :param value: The new value of the token. + :type value: str + """ + self.token_value = value + + def get_headers(self) -> Dict[str, str]: + """ + Get the headers with the Authorization field set to the Access token. + + :return: A dictionary with the Authorization field set to the Access token. + :rtype: Dict[str, str] + """ + return {"Authorization": f"{self._token_prefix} {self.token_value}"} diff --git a/src/ring_central/net/headers/base_header.py b/src/ring_central/net/headers/base_header.py new file mode 100644 index 00000000..53883088 --- /dev/null +++ b/src/ring_central/net/headers/base_header.py @@ -0,0 +1,11 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Any, Dict + + +class BaseHeader: + def set_value(self, value: Any) -> None: + pass + + def get_headers(self) -> Dict[str, str]: + pass diff --git a/src/ring_central/net/request_chain/__init__.py b/src/ring_central/net/request_chain/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/net/request_chain/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/net/request_chain/handlers/__init__.py b/src/ring_central/net/request_chain/handlers/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/net/request_chain/handlers/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/net/request_chain/handlers/base_handler.py b/src/ring_central/net/request_chain/handlers/base_handler.py new file mode 100644 index 00000000..22b8c259 --- /dev/null +++ b/src/ring_central/net/request_chain/handlers/base_handler.py @@ -0,0 +1,41 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Optional, Tuple +from ...transport.request import Request +from ...transport.response import Response +from ...transport.request_error import RequestError + + +class BaseHandler: + """ + A class for sending the request through the chain of handlers. + + :ivar BaseHandler _next_handler: The next handler in the chain. + """ + + def __init__(self): + """ + Initialize a new instance of BaseHandler. + """ + self._next_handler = None + + def handle( + self, request: Request + ) -> Tuple[Optional[Response], Optional[RequestError]]: + """ + Process the given request and return a response or an error. + This method must be implemented by all subclasses. + + :param Request request: The request to handle. + :return: The response and any error that occurred. + :rtype: Tuple[Optional[Response], Optional[RequestError]] + """ + raise NotImplementedError() + + def set_next(self, handler: "BaseHandler"): + """ + Set the next handler in the chain. + + :param BaseHandler handler: The next handler. + """ + self._next_handler = handler diff --git a/src/ring_central/net/request_chain/handlers/hook_handler.py b/src/ring_central/net/request_chain/handlers/hook_handler.py new file mode 100644 index 00000000..fe64a275 --- /dev/null +++ b/src/ring_central/net/request_chain/handlers/hook_handler.py @@ -0,0 +1,49 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Optional, Tuple + + +from .base_handler import BaseHandler +from ....hooks.hook import DefaultHook +from ...transport.request import Request +from ...transport.response import Response +from ...transport.request_error import RequestError + + +class HookHandler(BaseHandler): + """ + Handler for calling hooks. + + :ivar Hook _hook: The hook to be called. This is a placeholder and should be replaced with an instance of the actual hook class. + """ + + def __init__(self): + """ + Initialize a new instance of HookHandler. + """ + super().__init__() + self._hook = DefaultHook() + + def handle( + self, request: Request + ) -> Tuple[Optional[Response], Optional[RequestError]]: + """ + Call the beforeRequest hook before passing the request to the next handler in the chain. + Call the afterResponse hook after receiving a response from the next handler in the chain. + Call the onError hook if an error occurs in the next handler in the chain. + + :param Request request: The request to handle. + :return: The response and any error that occurred. + :rtype: Tuple[Optional[Response], Optional[RequestError]] + """ + if self._next_handler is None: + raise RequestError("Handler chain is incomplete") + + self._hook.before_request(request) + response, error = self._next_handler.handle(request) + if error is not None and error.is_http_error: + self._hook.on_error(error, request, error.response) + else: + self._hook.after_response(request, response) + + return response, error diff --git a/src/ring_central/net/request_chain/handlers/http_handler.py b/src/ring_central/net/request_chain/handlers/http_handler.py new file mode 100644 index 00000000..5646d4df --- /dev/null +++ b/src/ring_central/net/request_chain/handlers/http_handler.py @@ -0,0 +1,85 @@ +# This file was generated by liblab | https://liblab.com/ + +import requests + +from requests.exceptions import Timeout +from typing import Optional, Tuple +from .base_handler import BaseHandler +from ...transport.request import Request +from ...transport.response import Response +from ...transport.request_error import RequestError + + +class HttpHandler(BaseHandler): + """ + Handler for making HTTP requests. + This handler sends the request to the specified URL and returns the response. + + :ivar int _timeout_in_seconds: The timeout for the HTTP request in seconds. + """ + + def __init__(self): + """ + Initialize a new instance of HttpHandler. + """ + super().__init__() + self._timeout_in_seconds = 60 + + def handle( + self, request: Request + ) -> Tuple[Optional[Response], Optional[RequestError]]: + """ + Send the request to the specified URL and return the response. + + :param Request request: The request to send. + :return: The response and any error that occurred. + :rtype: Tuple[Optional[Response], Optional[RequestError]] + """ + try: + request_args = self._get_request_data(request) + + result = requests.request( + request.method, + request.url, + headers=request.headers, + timeout=self._timeout_in_seconds, + **request_args, + ) + response = Response(result) + + if response.status >= 400: + return None, RequestError( + message=f"{response.status} error in request to: {request.url}", + status=response.status, + response=response, + ) + + return response, None + except Timeout: + return None, RequestError("Request timed out") + + def _get_request_data(self, request: Request) -> dict: + """ + Get the request arguments based on the request headers and data. + + :param Request request: The request object. + :return: The request arguments. + :rtype: dict + """ + headers = request.headers or {} + data = request.body or {} + content_type = headers.get("Content-Type", "application/json") + + if request.method == "GET" and not data: + return {} + + if content_type.startswith("application/") and "json" in content_type: + return {"json": data} + + if "multipart/form-data" in content_type: + headers.pop("Content-Type", None) + if data: + return {"files": data} + return {} + + return {"data": data} diff --git a/src/ring_central/net/request_chain/handlers/retry_handler.py b/src/ring_central/net/request_chain/handlers/retry_handler.py new file mode 100644 index 00000000..0eb3a57e --- /dev/null +++ b/src/ring_central/net/request_chain/handlers/retry_handler.py @@ -0,0 +1,67 @@ +# This file was generated by liblab | https://liblab.com/ + +import random + +from typing import Optional, Tuple +from time import sleep +from .base_handler import BaseHandler +from ...transport.request import Request +from ...transport.response import Response +from ...transport.request_error import RequestError + + +class RetryHandler(BaseHandler): + """ + Handler for retrying requests. + Retries the request if the previous handler in the chain returned an error or a response with a status code of 500 or higher. + + :ivar int _max_attempts: The maximum number of retry attempts. + :ivar int _delay_in_milliseconds: The delay between retry attempts in milliseconds. + """ + + def __init__(self): + """ + Initialize a new instance of RetryHandler. + """ + super().__init__() + self._max_attempts = 3 + self._delay_in_milliseconds = 150 + + def handle( + self, request: Request + ) -> Tuple[Optional[Response], Optional[RequestError]]: + """ + Retry the request if the previous handler in the chain returned an error or a response with a status code of 500 or higher. + + :param Request request: The request to retry. + :return: The response and any error that occurred. + :rtype: Tuple[Optional[Response], Optional[RequestError]] + :raises RequestError: If the handler chain is incomplete. + """ + if self._next_handler is None: + raise RequestError("Handler chain is incomplete") + + response, error = self._next_handler.handle(request) + + try_count = 0 + while try_count < self._max_attempts and self._should_retry(error): + jitter = random.uniform(0.5, 1.5) + delay = self._delay_in_milliseconds * (2**try_count) * jitter / 1000 + sleep(delay) + response, error = self._next_handler.handle(request) + try_count += 1 + + return response, error + + def _should_retry(self, error: Optional[RequestError]) -> bool: + """ + Determine whether the request should be retried. + + :param Optional[Response] response: The response from the previous handler. + :param Optional[RequestError] error: The error from the previous handler. + :return: True if the request should be retried, False otherwise. + :rtype: bool + """ + if not error: + return False + return error.status == 408 or error.status >= 500 diff --git a/src/ring_central/net/request_chain/request_chain.py b/src/ring_central/net/request_chain/request_chain.py new file mode 100644 index 00000000..3f51da60 --- /dev/null +++ b/src/ring_central/net/request_chain/request_chain.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Optional +from .handlers.base_handler import BaseHandler +from ..transport.request import Request +from ..transport.response import Response + + +class RequestChain: + """ + Class representing a chain of request handlers. + Handlers are added to the chain and the request is passed through each handler in the order they were added. + + :ivar Optional[BaseHandler] _head: The first handler in the chain. + :ivar Optional[BaseHandler] _tail: The last handler in the chain. + """ + + def __init__(self): + """ + Initialize a new instance of RequestChain. + """ + self._head: Optional[BaseHandler] = None + self._tail: Optional[BaseHandler] = None + + def add_handler(self, handler: BaseHandler) -> "RequestChain": + """ + Add a handler to the chain. + + :param BaseHandler handler: The handler to add. + :return: The current instance of RequestChain to allow for method chaining. + :rtype: RequestChain + """ + if self._head is None: + self._head = handler + self._tail = handler + else: + self._tail.set_next(handler) + self._tail = handler + + return self + + def send(self, request: Request) -> Response: + """ + Send the request through the chain of handlers. + + :param Request request: The request to send. + :return: The response from the request. + :rtype: Response + :raises RuntimeError: If the RequestChain is empty. + """ + if self._head is not None: + response, error = self._head.handle(request) + + if error is not None: + raise error + + return response + else: + raise RuntimeError("RequestChain is empty") diff --git a/src/ring_central/net/transport/__init__.py b/src/ring_central/net/transport/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/net/transport/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/net/transport/request.py b/src/ring_central/net/transport/request.py new file mode 100644 index 00000000..b1bff7b2 --- /dev/null +++ b/src/ring_central/net/transport/request.py @@ -0,0 +1,91 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Any +from .utils import extract_original_data + + +class Request: + """ + A simple HTTP request builder class using the requests library. + + Example Usage: + ```python + # Create a Request object + request = Request() + + # Set request parameters + request.set_url('https://yourendpoint.com/') \ + .set_method('GET') \ + .set_headers({'Content-Type': 'application/json'}) \ + .set_body(None) # For GET requests, the body should be None + + # Send the HTTP request + response = request.send() + ``` + + :ivar str url: The URL of the API endpoint. + :ivar str method: The HTTP method for the request. + :ivar dict headers: Dictionary of headers to include in the request. + :ivar Any body: Request body. + """ + + def __init__(self): + self.url = None + self.method = None + self.headers = None + self.body = None + + def set_url(self, url: str) -> "Request": + """ + Set the URL of the API endpoint. + + :param str url: The URL of the API endpoint. + :return: The updated Request object. + :rtype: Request + """ + self.url = url + return self + + def set_headers(self, headers: dict) -> "Request": + """ + Set the headers for the HTTP request. + + :param dict headers: Dictionary of headers to include in the request. + :return: The updated Request object. + :rtype: Request + """ + self.headers = headers + return self + + def set_method(self, method: str) -> "Request": + """ + Set the HTTP method for the request. + + :param str method: The HTTP method (e.g., 'GET', 'POST', 'PUT', 'DELETE', etc.). + :return: The updated Request object. + :rtype: Request + """ + self.method = method + return self + + def set_body(self, body: Any, content_type: str = "application/json") -> "Request": + """ + Set the request body (e.g., JSON payload). + + :param Any body: Request body. + :param str content_type: The content type of the request body. Default is "application/json". + :return: The updated Request object. + :rtype: Request + """ + self.body = extract_original_data(body) + self.headers["Content-Type"] = content_type + return self + + def __str__(self) -> str: + """ + Return a string representation of the Request object. + + :return: A string representation of the Request object. + :rtype: str + """ + return f"Request(url={self.url}, method={self.method}, headers={self.headers}, body={self.body})" diff --git a/src/ring_central/net/transport/request_error.py b/src/ring_central/net/transport/request_error.py new file mode 100644 index 00000000..a4d2a814 --- /dev/null +++ b/src/ring_central/net/transport/request_error.py @@ -0,0 +1,55 @@ +# This file was generated by liblab | https://liblab.com/ + +from .response import Response +from typing import Optional + + +class RequestError(IOError): + """ + Class representing a Request Error. + + :ivar bool is_http_error: Indicates if the error is an HTTP error. + :ivar int status: The status code of the HTTP error. + :ivar Optional[Response] response: The response associated with the error. + """ + + def __init__( + self, + message: str, + status: Optional[int] = None, + response: Optional[Response] = None, + stack: Optional["RequestError"] = None, + ): + """ + Initialize a new instance of RequestError. + + :param str message: The error message. + :param Optional[int] status: The status code of the HTTP error. + :param Optional[Response] response: The response associated with the error. + """ + super().__init__(message) + self.response = response + self.stack = stack + + if status is not None: + self.status = status + self.is_http_error = True + else: + self.status = -1 + self.is_http_error = False + + def __str__(self): + """ + Get the string representation of the error. + + :return: The string representation of the error. + :rtype: str + """ + error_stack = [] + current_error = self + while current_error is not None: + error_stack.append( + f"Error: {super().__str__()}, Status Code: {current_error.status}" + ) + current_error = current_error.stack + return "\n".join(error_stack) diff --git a/src/ring_central/net/transport/response.py b/src/ring_central/net/transport/response.py new file mode 100644 index 00000000..c763b8d7 --- /dev/null +++ b/src/ring_central/net/transport/response.py @@ -0,0 +1,61 @@ +# This file was generated by liblab | https://liblab.com/ + +from requests import Response as RequestsResponse +from urllib.parse import parse_qs + + +class Response: + """ + A simple HTTP response wrapper class using the requests library. + + :ivar int status: The status code of the HTTP response. + :ivar dict headers: The headers of the HTTP response. + :ivar str body: The body of the HTTP response. + """ + + def __init__(self, response: RequestsResponse): + """ + Initializes a Response object. + + :param RequestsResponse response: The requests.Response object. + """ + self.status = response.status_code + self.headers = response.headers + self.body = self._get_response_body(response) + + def __str__(self) -> str: + """ + Return a string representation of the Response object. + + :return: A string representation of the Response object. + :rtype: str + """ + return ( + f"Response(status={self.status}, headers={self.headers}, body={self.body})" + ) + + def _get_response_body(self, response: RequestsResponse) -> str: + """ + Extracts the response body from a given HTTP response. + + This method attempts to parse the response body based on its content type. + If the content type is JSON, it tries to parse the body as JSON. + If the content type is text or XML, it returns the raw text. + If the content type is 'application/x-www-form-urlencoded', it parses the body as a query string. + For all other content types, it returns the raw binary content. + + :param RequestsResponse response: The HTTP response received from a request. + :return: The parsed response body. + :rtype: str or dict or bytes + """ + try: + return response.json() + except ValueError: + content_type = response.headers.get("Content-Type", "").lower() + if "text/" in content_type or content_type == "application/xml": + return response.text + elif content_type == "application/x-www-form-urlencoded": + parsed_response = parse_qs(response.text) + return {k: v[0] for k, v in parsed_response.items()} + else: + return response.content diff --git a/src/ring_central/net/transport/serializer.py b/src/ring_central/net/transport/serializer.py new file mode 100644 index 00000000..dddf3026 --- /dev/null +++ b/src/ring_central/net/transport/serializer.py @@ -0,0 +1,255 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Any, List +from urllib.parse import quote + +from ...net.headers.base_header import BaseHeader +from .request import Request +from .utils import extract_original_data + + +class Serializer: + """ + A class for handling serialization of URL components such as headers, cookies, path parameters, and query parameters. + + :ivar str url: The base URL to be serialized. + :ivar dict[str, str] headers: A dictionary containing headers for the request. + :ivar list[str] cookies: A list containing cookie strings for the request. + :ivar dict[str, str] path: A dictionary containing path parameters for the request. + :ivar list[str] query: A list containing query parameters for the request. + """ + + def __init__(self, url: str, default_headers: List[BaseHeader] = []): + """ + Initializes a Serializer instance with the base URL. + + :param str url: The base URL to be serialized. + :param list[BaseHeader] default_headers: A list of default headers to be added to the request. Defaults to an empty list. + """ + self.url: str = url + self.headers: dict[str, str] = {} + self.cookies: list[str] = [] + self.path: dict[str, str] = {} + self.query: list[str] = [] + + for header in default_headers: + for key, value in header.get_headers().items(): + self.add_header(key, value) + + def add_header( + self, key: str, data: Any, explode: bool = False, nullable: bool = False + ) -> "Serializer": + """ + Adds a header to the request. + + :param str key: The header key. + :param Any data: The data to be serialized as the header value. + :param bool explode: Flag indicating whether to explode the data. + :return: The Serializer instance for method chaining. + :rtype: Serializer + """ + if not nullable and data is None: + return self + + data = extract_original_data(data) + + self.headers[key] = self._serialize_value( + data, explode=explode, quote_str_values=False + ) + return self + + def add_cookie( + self, key: str, data: Any, explode: bool = False, nullable: bool = False + ) -> "Serializer": + """ + Adds a cookie to the request. + + :param str key: The cookie key. + :param Any data: The data to be serialized as the cookie value. + :param bool explode: Flag indicating whether to explode the data. + :return: The Serializer instance for method chaining. + :rtype: Serializer + """ + if not nullable and data is None: + return self + + data = extract_original_data(data) + + self.cookies.append( + f"{key}={self._serialize_value(data, explode=explode, quote_str_values=False)}" + ) + return self + + def add_path( + self, + key: str, + data: Any, + explode: bool = False, + style: str = "simple", + nullable: bool = False, + ) -> "Serializer": + """ + Adds a path parameter to the request. + + :param str key: The path parameter key. + :param Any data: The data to be serialized as the path parameter value. + :param bool explode: Flag indicating whether to explode the data. + :param str style: The style of serialization for the path parameter. + :return: The Serializer instance for method chaining. + :rtype: Serializer + """ + if not nullable and data is None: + return self + + data = extract_original_data(data) + + if style == "simple": + self.path[key] = self._serialize_value(data=data, explode=explode) + elif style == "label": + separator = "." if explode else "," + self.path[key] = "." + self._serialize_value( + data=data, explode=explode, separator=separator + ) + elif style == "matrix": + separator = "," + + if isinstance(data, list) and explode: + separator = f";{key}=" + elif explode: + separator = ";" + + prefix = ";" if isinstance(data, dict) and explode else f";{key}=" + self.path[key] = prefix + self._serialize_value( + data, explode=explode, separator=separator + ) + else: + raise ValueError(f"Unsupported path style: {style}") + + return self + + def add_query( + self, + key: str, + data: Any, + explode: bool = True, + style: str = "form", + nullable: bool = False, + ) -> "Serializer": + """ + Adds a query parameter to the request. + + :param str key: The query parameter key. + :param Any data: The data to be serialized as the query parameter value. + :param bool explode: Flag indicating whether to explode the data. + :param str style: The style of serialization for the query parameter. + :return: The Serializer instance for method chaining. + :rtype: Serializer + """ + if not nullable and data is None: + return self + + data = extract_original_data(data) + + if style == "form": + separator = ( + f"&{key}=" + if explode and isinstance(data, list) + else ("&" if explode else ",") + ) + prefix = "" if (explode and isinstance(data, dict)) else f"{key}=" + query_param = f"{prefix}{self._serialize_value(data=data, explode=explode, separator=separator)}" + elif style == "spaceDelimited": + separator = f"&{key}=" if explode else f"%20" + query_param = f"{key}={self._serialize_value(data=data, explode=explode, separator=separator)}" + elif style == "pipeDelimited": + separator = f"&{key}=" if explode else "|" + query_param = f"{key}={self._serialize_value(data=data, explode=explode, separator=separator)}" + elif style == "deepObject": + query_param = "".join( + f"{key}[{k}]={quote(self._serialize_value(v))}&" + for k, v in data.items() + ).rstrip("&") + + self.query.append(query_param) + return self + + def serialize(self) -> Request: + """ + Serializes the components and returns a Request object. + + :return: The Request object containing the serialized components. + :rtype: Request + """ + final_url = self._define_url() + + if len(self.cookies) > 0: + self.headers["Cookie"] = ";".join(self.cookies) + + return Request().set_url(final_url).set_headers(self.headers) + + def _define_url(self) -> str: + """ + Constructs the final URL by replacing path parameters and appending query parameters. + + :return: The final URL. + :rtype: str + """ + final_url = self.url + + for key, value in self.path.items(): + final_url = final_url.replace(f"{{{key}}}", value) + + if len(self.query) > 0: + final_url += "?" + "&".join(self.query) + + return final_url + + def _serialize_value( + self, + data: Any, + separator: str = ",", + explode: bool = False, + quote_str_values: bool = True, + ) -> str: + """ + Serializes a value based on the specified separator and explode flag. + + :param Any data: The data to be serialized. + :param str separator: The separator used for serialization. + :param bool explode: Flag indicating whether to explode the data. + :return: The serialized value. + :rtype: str + """ + if data is None: + return "null" + + if isinstance(data, list): + return separator.join( + self._serialize_value(item, separator, explode) for item in data + ) + + if isinstance(data, dict): + if explode: + return separator.join( + [ + f"{k}={self._serialize_value(v, separator, explode)}" + for k, v in data.items() + ] + ) + else: + return separator.join( + [ + self._serialize_value(item, separator, explode) + for sublist in data.items() + for item in sublist + ] + ) + + if isinstance(data, str) and quote_str_values: + return quote(data) + if isinstance(data, bool): + return str(data).lower() + if isinstance(data, (int, float)): + return str(data) + + return data diff --git a/src/ring_central/net/transport/utils.py b/src/ring_central/net/transport/utils.py new file mode 100644 index 00000000..2df733c9 --- /dev/null +++ b/src/ring_central/net/transport/utils.py @@ -0,0 +1,30 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Any +from ...models.base import BaseModel + + +def extract_original_data(data: Any) -> Any: + """ + Extracts the original data from internal models and enums. + + :param Any data: The data to be extracted. + :return: The extracted data. + :rtype: Any + """ + if data is None: + return None + + data_type = type(data) + + if issubclass(data_type, BaseModel): + return data._map() + + if issubclass(data_type, Enum): + return data.value + + if issubclass(data_type, list): + return [extract_original_data(item) for item in data] + + return data diff --git a/src/ring_central/sdk.py b/src/ring_central/sdk.py new file mode 100644 index 00000000..3b8d8de7 --- /dev/null +++ b/src/ring_central/sdk.py @@ -0,0 +1,330 @@ +# This file was generated by liblab | https://liblab.com/ + +from .services.webinar_subscriptions import WebinarSubscriptionsService +from .services.historical_webinars import HistoricalWebinarsService +from .services.historical_recordings import HistoricalRecordingsService +from .services.registration_management import RegistrationManagementService +from .services.registrants import RegistrantsService +from .services.webinars_and_sessions import WebinarsAndSessionsService +from .services.invitees import InviteesService +from .services.call_recordings import CallRecordingsService +from .services.greetings import GreetingsService +from .services.user_settings import UserSettingsService +from .services.message_store import MessageStoreService +from .services.ivr import IvrService +from .services.bridge_management import BridgeManagementService +from .services.meeting_recordings import MeetingRecordingsService +from .services.delegation_management import DelegationManagementService +from .services.meetings_history import MeetingsHistoryService +from .services.api_info import ApiInfoService +from .services.o_auth_2_0_open_id_connect import OAuth2_0OpenIdConnectService +from .services.company import CompanyService +from .services.devices import DevicesService +from .services.phone_numbers import PhoneNumbersService +from .services.business_hours import BusinessHoursService +from .services.custom_fields import CustomFieldsService +from .services.call_recording_settings import CallRecordingSettingsService +from .services.call_control import CallControlService +from .services.sms_templates import SmsTemplatesService +from .services.call_log import CallLogService +from .services.extensions import ExtensionsService +from .services.high_volume_sms import HighVolumeSmsService +from .services.call_handling_rules import CallHandlingRulesService +from .services.external_contacts import ExternalContactsService +from .services.call_queues import CallQueuesService +from .services.presence import PresenceService +from .services.automatic_location_updates import AutomaticLocationUpdatesService +from .services.rcm_meetings_legacy import RcmMeetingsLegacyService +from .services.role_management import RoleManagementService +from .services.call_monitoring_groups import CallMonitoringGroupsService +from .services.audit_trail import AuditTrailService +from .services.message_exports import MessageExportsService +from .services.internal_contacts import InternalContactsService +from .services.paging_only_groups import PagingOnlyGroupsService +from .services.multi_site import MultiSiteService +from .services.video_configuration import VideoConfigurationService +from .services.pager_messages import PagerMessagesService +from .services.user_permissions import UserPermissionsService +from .services.call_forwarding import CallForwardingService +from .services.fax import FaxService +from .services.ring_out import RingOutService +from .services.site_administration import SiteAdministrationService +from .services.sms import SmsService +from .services.features import FeaturesService +from .services.call_blocking import CallBlockingService +from .services.subscriptions import SubscriptionsService +from .services.regional_settings import RegionalSettingsService +from .services.device_sip_registration import DeviceSipRegistrationService +from .services.status import StatusService +from .services.text import TextService +from .services.audio import AudioService +from .services.insights import InsightsService +from .services.contents import ContentsService +from .services.identities import IdentitiesService +from .services.scim import ScimService +from .services.business_analytics import BusinessAnalyticsService +from .services.tasks import TasksService +from .services.calendar_events import CalendarEventsService +from .services.chats import ChatsService +from .services.posts import PostsService +from .services.adaptive_cards import AdaptiveCardsService +from .services.notes import NotesService +from .services.incoming_webhooks import IncomingWebhooksService +from .services.profile import ProfileService +from .services.conversations import ConversationsService +from .services.compliance_exports import ComplianceExportsService +from .services.teams import TeamsService +from .net.environment import Environment + + +class RingCentral: + def __init__( + self, access_token: str = None, base_url: str = Environment.DEFAULT.value + ): + """ + Initializes RingCentral the SDK class. + """ + self.webinar_subscriptions = WebinarSubscriptionsService(base_url=base_url) + self.historical_webinars = HistoricalWebinarsService(base_url=base_url) + self.historical_recordings = HistoricalRecordingsService(base_url=base_url) + self.registration_management = RegistrationManagementService(base_url=base_url) + self.registrants = RegistrantsService(base_url=base_url) + self.webinars_and_sessions = WebinarsAndSessionsService(base_url=base_url) + self.invitees = InviteesService(base_url=base_url) + self.call_recordings = CallRecordingsService(base_url=base_url) + self.greetings = GreetingsService(base_url=base_url) + self.user_settings = UserSettingsService(base_url=base_url) + self.message_store = MessageStoreService(base_url=base_url) + self.ivr = IvrService(base_url=base_url) + self.bridge_management = BridgeManagementService(base_url=base_url) + self.meeting_recordings = MeetingRecordingsService(base_url=base_url) + self.delegation_management = DelegationManagementService(base_url=base_url) + self.meetings_history = MeetingsHistoryService(base_url=base_url) + self.api_info = ApiInfoService(base_url=base_url) + self.o_auth_2_0_open_id_connect = OAuth2_0OpenIdConnectService( + base_url=base_url + ) + self.company = CompanyService(base_url=base_url) + self.devices = DevicesService(base_url=base_url) + self.phone_numbers = PhoneNumbersService(base_url=base_url) + self.business_hours = BusinessHoursService(base_url=base_url) + self.custom_fields = CustomFieldsService(base_url=base_url) + self.call_recording_settings = CallRecordingSettingsService(base_url=base_url) + self.call_control = CallControlService(base_url=base_url) + self.sms_templates = SmsTemplatesService(base_url=base_url) + self.call_log = CallLogService(base_url=base_url) + self.extensions = ExtensionsService(base_url=base_url) + self.high_volume_sms = HighVolumeSmsService(base_url=base_url) + self.call_handling_rules = CallHandlingRulesService(base_url=base_url) + self.external_contacts = ExternalContactsService(base_url=base_url) + self.call_queues = CallQueuesService(base_url=base_url) + self.presence = PresenceService(base_url=base_url) + self.automatic_location_updates = AutomaticLocationUpdatesService( + base_url=base_url + ) + self.rcm_meetings_legacy = RcmMeetingsLegacyService(base_url=base_url) + self.role_management = RoleManagementService(base_url=base_url) + self.call_monitoring_groups = CallMonitoringGroupsService(base_url=base_url) + self.audit_trail = AuditTrailService(base_url=base_url) + self.message_exports = MessageExportsService(base_url=base_url) + self.internal_contacts = InternalContactsService(base_url=base_url) + self.paging_only_groups = PagingOnlyGroupsService(base_url=base_url) + self.multi_site = MultiSiteService(base_url=base_url) + self.video_configuration = VideoConfigurationService(base_url=base_url) + self.pager_messages = PagerMessagesService(base_url=base_url) + self.user_permissions = UserPermissionsService(base_url=base_url) + self.call_forwarding = CallForwardingService(base_url=base_url) + self.fax = FaxService(base_url=base_url) + self.ring_out = RingOutService(base_url=base_url) + self.site_administration = SiteAdministrationService(base_url=base_url) + self.sms = SmsService(base_url=base_url) + self.features = FeaturesService(base_url=base_url) + self.call_blocking = CallBlockingService(base_url=base_url) + self.subscriptions = SubscriptionsService(base_url=base_url) + self.regional_settings = RegionalSettingsService(base_url=base_url) + self.device_sip_registration = DeviceSipRegistrationService(base_url=base_url) + self.status = StatusService(base_url=base_url) + self.text = TextService(base_url=base_url) + self.audio = AudioService(base_url=base_url) + self.insights = InsightsService(base_url=base_url) + self.contents = ContentsService(base_url=base_url) + self.identities = IdentitiesService(base_url=base_url) + self.scim = ScimService(base_url=base_url) + self.business_analytics = BusinessAnalyticsService(base_url=base_url) + self.tasks = TasksService(base_url=base_url) + self.calendar_events = CalendarEventsService(base_url=base_url) + self.chats = ChatsService(base_url=base_url) + self.posts = PostsService(base_url=base_url) + self.adaptive_cards = AdaptiveCardsService(base_url=base_url) + self.notes = NotesService(base_url=base_url) + self.incoming_webhooks = IncomingWebhooksService(base_url=base_url) + self.profile = ProfileService(base_url=base_url) + self.conversations = ConversationsService(base_url=base_url) + self.compliance_exports = ComplianceExportsService(base_url=base_url) + self.teams = TeamsService(base_url=base_url) + self.set_access_token(access_token) + + def set_base_url(self, base_url): + """ + Sets the base URL for the entire SDK. + """ + self.webinar_subscriptions.set_base_url(base_url) + self.historical_webinars.set_base_url(base_url) + self.historical_recordings.set_base_url(base_url) + self.registration_management.set_base_url(base_url) + self.registrants.set_base_url(base_url) + self.webinars_and_sessions.set_base_url(base_url) + self.invitees.set_base_url(base_url) + self.call_recordings.set_base_url(base_url) + self.greetings.set_base_url(base_url) + self.user_settings.set_base_url(base_url) + self.message_store.set_base_url(base_url) + self.ivr.set_base_url(base_url) + self.bridge_management.set_base_url(base_url) + self.meeting_recordings.set_base_url(base_url) + self.delegation_management.set_base_url(base_url) + self.meetings_history.set_base_url(base_url) + self.api_info.set_base_url(base_url) + self.o_auth_2_0_open_id_connect.set_base_url(base_url) + self.company.set_base_url(base_url) + self.devices.set_base_url(base_url) + self.phone_numbers.set_base_url(base_url) + self.business_hours.set_base_url(base_url) + self.custom_fields.set_base_url(base_url) + self.call_recording_settings.set_base_url(base_url) + self.call_control.set_base_url(base_url) + self.sms_templates.set_base_url(base_url) + self.call_log.set_base_url(base_url) + self.extensions.set_base_url(base_url) + self.high_volume_sms.set_base_url(base_url) + self.call_handling_rules.set_base_url(base_url) + self.external_contacts.set_base_url(base_url) + self.call_queues.set_base_url(base_url) + self.presence.set_base_url(base_url) + self.automatic_location_updates.set_base_url(base_url) + self.rcm_meetings_legacy.set_base_url(base_url) + self.role_management.set_base_url(base_url) + self.call_monitoring_groups.set_base_url(base_url) + self.audit_trail.set_base_url(base_url) + self.message_exports.set_base_url(base_url) + self.internal_contacts.set_base_url(base_url) + self.paging_only_groups.set_base_url(base_url) + self.multi_site.set_base_url(base_url) + self.video_configuration.set_base_url(base_url) + self.pager_messages.set_base_url(base_url) + self.user_permissions.set_base_url(base_url) + self.call_forwarding.set_base_url(base_url) + self.fax.set_base_url(base_url) + self.ring_out.set_base_url(base_url) + self.site_administration.set_base_url(base_url) + self.sms.set_base_url(base_url) + self.features.set_base_url(base_url) + self.call_blocking.set_base_url(base_url) + self.subscriptions.set_base_url(base_url) + self.regional_settings.set_base_url(base_url) + self.device_sip_registration.set_base_url(base_url) + self.status.set_base_url(base_url) + self.text.set_base_url(base_url) + self.audio.set_base_url(base_url) + self.insights.set_base_url(base_url) + self.contents.set_base_url(base_url) + self.identities.set_base_url(base_url) + self.scim.set_base_url(base_url) + self.business_analytics.set_base_url(base_url) + self.tasks.set_base_url(base_url) + self.calendar_events.set_base_url(base_url) + self.chats.set_base_url(base_url) + self.posts.set_base_url(base_url) + self.adaptive_cards.set_base_url(base_url) + self.notes.set_base_url(base_url) + self.incoming_webhooks.set_base_url(base_url) + self.profile.set_base_url(base_url) + self.conversations.set_base_url(base_url) + self.compliance_exports.set_base_url(base_url) + self.teams.set_base_url(base_url) + + return self + + def set_access_token(self, access_token: str): + """ + Sets the access token for the entire SDK. + """ + self.webinar_subscriptions.set_access_token(access_token) + self.historical_webinars.set_access_token(access_token) + self.historical_recordings.set_access_token(access_token) + self.registration_management.set_access_token(access_token) + self.registrants.set_access_token(access_token) + self.webinars_and_sessions.set_access_token(access_token) + self.invitees.set_access_token(access_token) + self.call_recordings.set_access_token(access_token) + self.greetings.set_access_token(access_token) + self.user_settings.set_access_token(access_token) + self.message_store.set_access_token(access_token) + self.ivr.set_access_token(access_token) + self.bridge_management.set_access_token(access_token) + self.meeting_recordings.set_access_token(access_token) + self.delegation_management.set_access_token(access_token) + self.meetings_history.set_access_token(access_token) + self.api_info.set_access_token(access_token) + self.o_auth_2_0_open_id_connect.set_access_token(access_token) + self.company.set_access_token(access_token) + self.devices.set_access_token(access_token) + self.phone_numbers.set_access_token(access_token) + self.business_hours.set_access_token(access_token) + self.custom_fields.set_access_token(access_token) + self.call_recording_settings.set_access_token(access_token) + self.call_control.set_access_token(access_token) + self.sms_templates.set_access_token(access_token) + self.call_log.set_access_token(access_token) + self.extensions.set_access_token(access_token) + self.high_volume_sms.set_access_token(access_token) + self.call_handling_rules.set_access_token(access_token) + self.external_contacts.set_access_token(access_token) + self.call_queues.set_access_token(access_token) + self.presence.set_access_token(access_token) + self.automatic_location_updates.set_access_token(access_token) + self.rcm_meetings_legacy.set_access_token(access_token) + self.role_management.set_access_token(access_token) + self.call_monitoring_groups.set_access_token(access_token) + self.audit_trail.set_access_token(access_token) + self.message_exports.set_access_token(access_token) + self.internal_contacts.set_access_token(access_token) + self.paging_only_groups.set_access_token(access_token) + self.multi_site.set_access_token(access_token) + self.video_configuration.set_access_token(access_token) + self.pager_messages.set_access_token(access_token) + self.user_permissions.set_access_token(access_token) + self.call_forwarding.set_access_token(access_token) + self.fax.set_access_token(access_token) + self.ring_out.set_access_token(access_token) + self.site_administration.set_access_token(access_token) + self.sms.set_access_token(access_token) + self.features.set_access_token(access_token) + self.call_blocking.set_access_token(access_token) + self.subscriptions.set_access_token(access_token) + self.regional_settings.set_access_token(access_token) + self.device_sip_registration.set_access_token(access_token) + self.status.set_access_token(access_token) + self.text.set_access_token(access_token) + self.audio.set_access_token(access_token) + self.insights.set_access_token(access_token) + self.contents.set_access_token(access_token) + self.identities.set_access_token(access_token) + self.scim.set_access_token(access_token) + self.business_analytics.set_access_token(access_token) + self.tasks.set_access_token(access_token) + self.calendar_events.set_access_token(access_token) + self.chats.set_access_token(access_token) + self.posts.set_access_token(access_token) + self.adaptive_cards.set_access_token(access_token) + self.notes.set_access_token(access_token) + self.incoming_webhooks.set_access_token(access_token) + self.profile.set_access_token(access_token) + self.conversations.set_access_token(access_token) + self.compliance_exports.set_access_token(access_token) + self.teams.set_access_token(access_token) + + return self + + +# c029837e0e474b76bc487506e8799df5e3335891efe4fb02bda7a1441840310c diff --git a/src/ring_central/services/__init__.py b/src/ring_central/services/__init__.py new file mode 100644 index 00000000..f9c4328c --- /dev/null +++ b/src/ring_central/services/__init__.py @@ -0,0 +1 @@ +# This file was generated by liblab | https://liblab.com/ diff --git a/src/ring_central/services/adaptive_cards.py b/src/ring_central/services/adaptive_cards.py new file mode 100644 index 00000000..692473e8 --- /dev/null +++ b/src/ring_central/services/adaptive_cards.py @@ -0,0 +1,139 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.adaptive_card_short_info import AdaptiveCardShortInfo +from ..models.adaptive_card_request import AdaptiveCardRequest +from ..models.adaptive_card_info import AdaptiveCardInfo + + +class AdaptiveCardsService(BaseService): + + @cast_models + def create_glip_adaptive_card_new( + self, request_body: AdaptiveCardRequest, chat_id: str + ) -> AdaptiveCardShortInfo: + """Creates a new adaptive card in the chat specified in path. + + :param request_body: The request body. + :type request_body: AdaptiveCardRequest + :param chat_id: Internal identifier of a chat + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: AdaptiveCardShortInfo + """ + + Validator(AdaptiveCardRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/adaptive-cards", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AdaptiveCardShortInfo._unmap(response) + + @cast_models + def get_glip_adaptive_card_new(self, card_id: List[str]) -> AdaptiveCardInfo: + """Returns adaptive card(s) with given id(s). + + :param card_id: Internal identifier of an adaptive card, or comma separated list of adaptive cards IDs. + :type card_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: AdaptiveCardInfo + """ + + Validator(str).is_array().validate(card_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/adaptive-cards/{{cardId}}", + self.get_default_headers(), + ) + .add_path("cardId", card_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AdaptiveCardInfo._unmap(response) + + @cast_models + def update_glip_adaptive_card_new( + self, request_body: AdaptiveCardRequest, card_id: str + ) -> AdaptiveCardShortInfo: + """Updates an adaptive card. + + :param request_body: The request body. + :type request_body: AdaptiveCardRequest + :param card_id: Internal identifier of an adaptive card + :type card_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: AdaptiveCardShortInfo + """ + + Validator(AdaptiveCardRequest).validate(request_body) + Validator(str).validate(card_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/adaptive-cards/{{cardId}}", + self.get_default_headers(), + ) + .add_path("cardId", card_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AdaptiveCardShortInfo._unmap(response) + + @cast_models + def delete_glip_adaptive_card_new(self, card_id: str): + """Deletes an adaptive card by ID. + + :param card_id: Adaptive Card ID to be deleted. + :type card_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(card_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/adaptive-cards/{{cardId}}", + self.get_default_headers(), + ) + .add_path("cardId", card_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/api_info.py b/src/ring_central/services/api_info.py new file mode 100644 index 00000000..98cfeb80 --- /dev/null +++ b/src/ring_central/services/api_info.py @@ -0,0 +1,60 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.api_versions_list import ApiVersionsList +from ..models.api_version_info import ApiVersionInfo + + +class ApiInfoService(BaseService): + + @cast_models + def read_api_versions(self) -> ApiVersionsList: + """Returns current API version(s) and server info. + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ApiVersionsList + """ + + serialized_request = ( + Serializer(f"{self.base_url}/restapi", self.get_default_headers()) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ApiVersionsList._unmap(response) + + @cast_models + def read_api_version(self, api_version: str) -> ApiVersionInfo: + """Returns current API version info by apiVersion. + + :param api_version: API version to be requested, for example 'v1.0' + :type api_version: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: API Version + :rtype: ApiVersionInfo + """ + + Validator(str).validate(api_version) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/{{apiVersion}}", self.get_default_headers() + ) + .add_path("apiVersion", api_version) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ApiVersionInfo._unmap(response) diff --git a/src/ring_central/services/audio.py b/src/ring_central/services/audio.py new file mode 100644 index 00000000..a2405e68 --- /dev/null +++ b/src/ring_central/services/audio.py @@ -0,0 +1,280 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_enrolled_speakers import ListEnrolledSpeakers +from ..models.identify_input import IdentifyInput +from ..models.enrollment_status import EnrollmentStatus +from ..models.enrollment_patch_input import EnrollmentPatchInput +from ..models.enrollment_input import EnrollmentInput +from ..models.diarize_input import DiarizeInput +from ..models.cai_async_api_response import CaiAsyncApiResponse +from ..models.asr_input import AsrInput + + +class AudioService(BaseService): + + @cast_models + def cai_enrollments_list( + self, partial: bool, per_page: int, page: int + ) -> ListEnrolledSpeakers: + """Returns the List of Enrolled Speakers + + :param partial: Indicates if partially enrolled speakers should be returned + :type partial: bool + :param per_page: Number of enrollments to be returned per page + :type per_page: int + :param page: Page number to be returned + :type page: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of enrolled speakers + :rtype: ListEnrolledSpeakers + """ + + Validator(bool).validate(partial) + Validator(int).validate(per_page) + Validator(int).validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/enrollments", self.get_default_headers() + ) + .add_query("partial", partial) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ListEnrolledSpeakers._unmap(response) + + @cast_models + def cai_enrollments_create(self, request_body: EnrollmentInput) -> EnrollmentStatus: + """Creates Enrollment for the provided Speaker. + + :param request_body: The request body. + :type request_body: EnrollmentInput + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Enrollments Request Created + :rtype: EnrollmentStatus + """ + + Validator(EnrollmentInput).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/enrollments", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EnrollmentStatus._unmap(response) + + @cast_models + def cai_enrollments_get(self, speaker_id: str) -> EnrollmentStatus: + """Get The Status of Enrollment for the provided Speaker. + + :param speaker_id: Speaker identifier of enrolled speaker + :type speaker_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Fetch enrollment status for speaker {speakerId} + :rtype: EnrollmentStatus + """ + + Validator(str).validate(speaker_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/enrollments/{{speakerId}}", + self.get_default_headers(), + ) + .add_path("speakerId", speaker_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return EnrollmentStatus._unmap(response) + + @cast_models + def cai_enrollments_update( + self, request_body: EnrollmentPatchInput, speaker_id: str + ) -> EnrollmentStatus: + """Add newer audio data to improve an existing speaker enrollment + + :param request_body: The request body. + :type request_body: EnrollmentPatchInput + :param speaker_id: Speaker identifier of enrolled speaker + :type speaker_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Enrollments Request Created + :rtype: EnrollmentStatus + """ + + Validator(EnrollmentPatchInput).validate(request_body) + Validator(str).validate(speaker_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/enrollments/{{speakerId}}", + self.get_default_headers(), + ) + .add_path("speakerId", speaker_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EnrollmentStatus._unmap(response) + + @cast_models + def cai_enrollments_delete(self, speaker_id: str): + """Delete The Enrollment for the provided Speaker. + + :param speaker_id: Speaker identifier of enrolled speaker + :type speaker_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(speaker_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/enrollments/{{speakerId}}", + self.get_default_headers(), + ) + .add_path("speakerId", speaker_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def cai_speech_to_text( + self, request_body: AsrInput, webhook: str + ) -> CaiAsyncApiResponse: + """Returns Speech to Text Conversion to the provided webhook URI. + + :param request_body: The request body. + :type request_body: AsrInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(AsrInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/async/speech-to-text", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) + + @cast_models + def cai_speaker_diarize( + self, request_body: DiarizeInput, webhook: str + ) -> CaiAsyncApiResponse: + """Identifies who said what. Speaker diarization will identify the speaker for each segment + so you can tell who spoke the sentence, paragraph, or phrase. + + :param request_body: The request body. + :type request_body: DiarizeInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(DiarizeInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/async/speaker-diarize", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) + + @cast_models + def cai_speaker_identify( + self, request_body: IdentifyInput, webhook: str + ) -> CaiAsyncApiResponse: + """Returns Speaker Identification to the provided webhook URI. + + :param request_body: The request body. + :type request_body: IdentifyInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(IdentifyInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/audio/v1/async/speaker-identify", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) diff --git a/src/ring_central/services/audit_trail.py b/src/ring_central/services/audit_trail.py new file mode 100644 index 00000000..b4543bb1 --- /dev/null +++ b/src/ring_central/services/audit_trail.py @@ -0,0 +1,54 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.account_history_search_public_response import ( + AccountHistorySearchPublicResponse, +) +from ..models.account_history_search_public_request import ( + AccountHistorySearchPublicRequest, +) + + +class AuditTrailService(BaseService): + + @cast_models + def audit_trail_search( + self, account_id: str, request_body: AccountHistorySearchPublicRequest = None + ) -> AccountHistorySearchPublicResponse: + """Returns the audit trail data with specific filters applied. + Audit trail searching is limited to the last 10,000 records or last 180 days, whichever comes first. + + :param request_body: The request body., defaults to None + :type request_body: AccountHistorySearchPublicRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of Account History Records + :rtype: AccountHistorySearchPublicResponse + """ + + Validator(AccountHistorySearchPublicRequest).is_optional().validate( + request_body + ) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/audit-trail/search", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AccountHistorySearchPublicResponse._unmap(response) diff --git a/src/ring_central/services/automatic_location_updates.py b/src/ring_central/services/automatic_location_updates.py new file mode 100644 index 00000000..6dc9bbb2 --- /dev/null +++ b/src/ring_central/services/automatic_location_updates.py @@ -0,0 +1,1761 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.wireless_points_list import WirelessPointsList +from ..models.wireless_point_info import WirelessPointInfo +from ..models.validate_multiple_wireless_points_response import ( + ValidateMultipleWirelessPointsResponse, +) +from ..models.validate_multiple_wireless_points_request import ( + ValidateMultipleWirelessPointsRequest, +) +from ..models.validate_multiple_switches_response import ( + ValidateMultipleSwitchesResponse, +) +from ..models.validate_multiple_switches_request import ValidateMultipleSwitchesRequest +from ..models.utils.cast_models import cast_models +from ..models.update_wireless_point import UpdateWirelessPoint +from ..models.update_switch_info import UpdateSwitchInfo +from ..models.update_network_request import UpdateNetworkRequest +from ..models.update_multiple_wireless_points_response import ( + UpdateMultipleWirelessPointsResponse, +) +from ..models.update_multiple_wireless_points_request import ( + UpdateMultipleWirelessPointsRequest, +) +from ..models.update_multiple_switches_response import UpdateMultipleSwitchesResponse +from ..models.update_multiple_switches_request import UpdateMultipleSwitchesRequest +from ..models.switches_list import SwitchesList +from ..models.switch_info import SwitchInfo +from ..models.networks_list import NetworksList +from ..models.network_info import NetworkInfo +from ..models.list_emergency_locations_order_by import ListEmergencyLocationsOrderBy +from ..models.list_devices_automatic_location_updates import ( + ListDevicesAutomaticLocationUpdates, +) +from ..models.list_automatic_location_updates_users_type import ( + ListAutomaticLocationUpdatesUsersType, +) +from ..models.get_location_deletion_multi_response import ( + GetLocationDeletionMultiResponse, +) +from ..models.get_extension_emergency_locations_order_by import ( + GetExtensionEmergencyLocationsOrderBy, +) +from ..models.emergency_locations_resource import EmergencyLocationsResource +from ..models.emergency_location_usage_status import EmergencyLocationUsageStatus +from ..models.emergency_location_response_resource import ( + EmergencyLocationResponseResource, +) +from ..models.emergency_location_request_resource import ( + EmergencyLocationRequestResource, +) +from ..models.emergency_address_status import EmergencyAddressStatus +from ..models.emergency_address_auto_update_users_bulk_assign_resource import ( + EmergencyAddressAutoUpdateUsersBulkAssignResource, +) +from ..models.create_wireless_point import CreateWirelessPoint +from ..models.create_user_emergency_location_request import ( + CreateUserEmergencyLocationRequest, +) +from ..models.create_switch_info import CreateSwitchInfo +from ..models.create_network_request import CreateNetworkRequest +from ..models.create_multiple_wireless_points_response import ( + CreateMultipleWirelessPointsResponse, +) +from ..models.create_multiple_wireless_points_request import ( + CreateMultipleWirelessPointsRequest, +) +from ..models.create_multiple_switches_response import CreateMultipleSwitchesResponse +from ..models.create_multiple_switches_request import CreateMultipleSwitchesRequest +from ..models.common_emergency_location_resource import CommonEmergencyLocationResource +from ..models.automatic_location_updates_user_list import ( + AutomaticLocationUpdatesUserList, +) +from ..models.automatic_location_updates_task_info import ( + AutomaticLocationUpdatesTaskInfo, +) +from ..models.assign_multiple_devices_automatic_location_updates import ( + AssignMultipleDevicesAutomaticLocationUpdates, +) + + +class AutomaticLocationUpdatesService(BaseService): + + @cast_models + def list_emergency_locations( + self, + account_id: str, + site_id: List[str] = None, + search_string: str = None, + address_status: EmergencyAddressStatus = None, + usage_status: EmergencyLocationUsageStatus = None, + domestic_country_id: str = None, + order_by: ListEmergencyLocationsOrderBy = None, + per_page: int = None, + page: int = None, + ) -> EmergencyLocationsResource: + """Returns emergency response locations for the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param search_string: Filters entries containing the specified substring in 'address' + and 'name' fields. The character range is 0-64; not case-sensitive. + If empty then the filter is ignored, defaults to None + :type search_string: str, optional + :param address_status: address_status, defaults to None + :type address_status: EmergencyAddressStatus, optional + :param usage_status: usage_status, defaults to None + :type usage_status: EmergencyLocationUsageStatus, optional + :param domestic_country_id: domestic_country_id, defaults to None + :type domestic_country_id: str, optional + :param order_by: Comma-separated list of fields to order results, prefixed by + plus sign '+' (ascending order) or minus sign '-' (descending order), defaults to None + :type order_by: ListEmergencyLocationsOrderBy, optional + :param per_page: Indicates a page size (number of items). The values + supported: `Max` or numeric value. If not specified, + 100 records are returned per one page, defaults to None + :type per_page: int, optional + :param page: Indicates the page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Emergency locations list + :rtype: EmergencyLocationsResource + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(str).is_optional().max_length(64).validate(search_string) + Validator(EmergencyAddressStatus).is_optional().validate(address_status) + Validator(EmergencyLocationUsageStatus).is_optional().validate(usage_status) + Validator(str).is_optional().validate(domestic_country_id) + Validator(ListEmergencyLocationsOrderBy).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-locations", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteId", site_id) + .add_query("searchString", search_string) + .add_query("addressStatus", address_status) + .add_query("usageStatus", usage_status) + .add_query("domesticCountryId", domestic_country_id) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationsResource._unmap(response) + + @cast_models + def create_emergency_location( + self, request_body: EmergencyLocationRequestResource, account_id: str + ) -> EmergencyLocationResponseResource: + """Creates a new emergency response location for a company. + + :param request_body: The request body. + :type request_body: EmergencyLocationRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: EmergencyLocationResponseResource + """ + + Validator(EmergencyLocationRequestResource).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-locations", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationResponseResource._unmap(response) + + @cast_models + def read_emergency_location( + self, account_id: str, location_id: str, sync_emergency_address: bool = None + ) -> CommonEmergencyLocationResource: + """Returns emergency response location by ID. Available for Admin users only. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + :param sync_emergency_address: sync_emergency_address, defaults to None + :type sync_emergency_address: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Emergency location information + :rtype: CommonEmergencyLocationResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(location_id) + Validator(bool).is_optional().validate(sync_emergency_address) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("locationId", location_id) + .add_query("syncEmergencyAddress", sync_emergency_address) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CommonEmergencyLocationResource._unmap(response) + + @cast_models + def update_emergency_location( + self, + request_body: EmergencyLocationRequestResource, + account_id: str, + location_id: str, + ) -> EmergencyLocationResponseResource: + """Updates the specified emergency response location. + + :param request_body: The request body. + :type request_body: EmergencyLocationRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated emergency location information + :rtype: EmergencyLocationResponseResource + """ + + Validator(EmergencyLocationRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(location_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("locationId", location_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationResponseResource._unmap(response) + + @cast_models + def delete_emergency_location( + self, + account_id: str, + location_id: str, + validate_only: bool = None, + new_location_id: str = None, + ) -> GetLocationDeletionMultiResponse: + """Deletes the specified emergency response location. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + :param validate_only: Flag indicating that validation of emergency location(s) is required + before deletion, defaults to None + :type validate_only: bool, optional + :param new_location_id: Internal identifier of an emergency response location + that should be used instead of a deleted one., defaults to None + :type new_location_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful validation + :rtype: GetLocationDeletionMultiResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(location_id) + Validator(bool).is_optional().validate(validate_only) + Validator(str).is_optional().validate(new_location_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("locationId", location_id) + .add_query("validateOnly", validate_only) + .add_query("newLocationId", new_location_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return GetLocationDeletionMultiResponse._unmap(response) + + @cast_models + def get_extension_emergency_locations( + self, + account_id: str, + extension_id: str, + site_id: List[str] = None, + search_string: str = None, + domestic_country_id: str = None, + order_by: GetExtensionEmergencyLocationsOrderBy = None, + per_page: int = None, + page: int = None, + visibility: str = None, + ) -> EmergencyLocationsResource: + """Returns a list of emergency response locations available for the particular extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param search_string: Filters entries by the specified substring (search by chassis + ID, switch name or address) The characters range is 0-64 (if + empty the filter is ignored), defaults to None + :type search_string: str, optional + :param domestic_country_id: domestic_country_id, defaults to None + :type domestic_country_id: str, optional + :param order_by: Comma-separated list of fields to order results prefixed by '+' + sign (ascending order) or '-' sign (descending order). The default + sorting is by `name`, defaults to None + :type order_by: GetExtensionEmergencyLocationsOrderBy, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned + per one page, defaults to None + :type per_page: int, optional + :param page: Indicates a page number to retrieve. Only positive + number values are supported, defaults to None + :type page: int, optional + :param visibility: visibility, defaults to None + :type visibility: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User emergency location list + :rtype: EmergencyLocationsResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(str).is_optional().validate(search_string) + Validator(str).is_optional().validate(domestic_country_id) + Validator(GetExtensionEmergencyLocationsOrderBy).is_optional().validate( + order_by + ) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + Validator(str).is_optional().validate(visibility) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/emergency-locations", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("siteId", site_id) + .add_query("searchString", search_string) + .add_query("domesticCountryId", domestic_country_id) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .add_query("visibility", visibility) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationsResource._unmap(response) + + @cast_models + def create_extension_emergency_location( + self, + request_body: CreateUserEmergencyLocationRequest, + account_id: str, + extension_id: str, + ) -> EmergencyLocationResponseResource: + """Creates a personal emergency response location for the current user. + + :param request_body: The request body. + :type request_body: CreateUserEmergencyLocationRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Emergency location information + :rtype: EmergencyLocationResponseResource + """ + + Validator(CreateUserEmergencyLocationRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/emergency-locations", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationResponseResource._unmap(response) + + @cast_models + def get_extension_emergency_location( + self, account_id: str, extension_id: str, location_id: str + ) -> CommonEmergencyLocationResource: + """Returns a personal emergency response location for the current user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CommonEmergencyLocationResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(location_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("locationId", location_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CommonEmergencyLocationResource._unmap(response) + + @cast_models + def update_extension_emergency_location( + self, + request_body: EmergencyLocationRequestResource, + account_id: str, + extension_id: str, + location_id: str, + ) -> EmergencyLocationResponseResource: + """Updates a personal emergency response location by the current user or admin. + + :param request_body: The request body. + :type request_body: EmergencyLocationRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: EmergencyLocationResponseResource + """ + + Validator(EmergencyLocationRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(location_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("locationId", location_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EmergencyLocationResponseResource._unmap(response) + + @cast_models + def delete_extension_emergency_location( + self, + account_id: str, + extension_id: str, + location_id: str, + validate_only: bool = None, + ): + """Deletes a personal emergency response location by ID by + the current user or admin. Multiple personal emergency response + locations can be deleted by single API call. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param location_id: Internal identifier of an emergency response location + :type location_id: str + :param validate_only: Flag indicating that only validation of Emergency Response Locations + to be deleted is required, defaults to None + :type validate_only: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(location_id) + Validator(bool).is_optional().validate(validate_only) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/emergency-locations/{{locationId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("locationId", location_id) + .add_query("validateOnly", validate_only) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_automatic_location_updates_task( + self, account_id: str, task_id: str + ) -> AutomaticLocationUpdatesTaskInfo: + """Returns results of the task created within the frame of Automatic + Location Updates feature. Currently four task types are supported: 'Wireless + Points Bulk Create', 'Wireless Points Bulk Update', 'Switches Bulk Create', + 'Switches Bulk Update'. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: task_id + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task information + :rtype: AutomaticLocationUpdatesTaskInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AutomaticLocationUpdatesTaskInfo._unmap(response) + + @cast_models + def list_automatic_location_updates_users( + self, + account_id: str, + type_: List[ListAutomaticLocationUpdatesUsersType] = None, + search_string: str = None, + department: List[str] = None, + site_id: List[str] = None, + feature_enabled: bool = None, + order_by: str = None, + per_page: int = None, + page: int = None, + ) -> AutomaticLocationUpdatesUserList: + """Returns a list of users with their status of Automatic Location + Updates feature. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param type_: Extension type. Multiple values are supported, defaults to None + :type type_: List[ListAutomaticLocationUpdatesUsersType], optional + :param search_string: Filters entries containing the specified substring in user name, + extension or department. The characters range is 0-64; not case-sensitive. + If empty then the filter is ignored, defaults to None + :type search_string: str, optional + :param department: Department name to filter the users. The value range is 0-64; + not case-sensitive. If not specified then the parameter is ignored. Multiple + values are supported, defaults to None + :type department: List[str], optional + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param feature_enabled: Filters entries by their status of Automatic Location Updates + feature, defaults to None + :type feature_enabled: bool, optional + :param order_by: Comma-separated list of fields to order results prefixed by + plus sign '+' (ascending order) or minus sign '-' (descending order). + Supported values: 'name', 'modelName', 'siteName', 'featureEnabled'. + The default sorting is by `name`, defaults to None + :type order_by: str, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned per one + page, defaults to None + :type per_page: int, optional + :param page: Indicates a page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User list + :rtype: AutomaticLocationUpdatesUserList + """ + + Validator(str).validate(account_id) + Validator( + ListAutomaticLocationUpdatesUsersType + ).is_array().is_optional().validate(type_) + Validator(str).is_optional().validate(search_string) + Validator(str).is_array().is_optional().validate(department) + Validator(str).is_array().is_optional().validate(site_id) + Validator(bool).is_optional().validate(feature_enabled) + Validator(str).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/users", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("type", type_) + .add_query("searchString", search_string) + .add_query("department", department) + .add_query("siteId", site_id) + .add_query("featureEnabled", feature_enabled) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AutomaticLocationUpdatesUserList._unmap(response) + + @cast_models + def assign_multiple_automatic_location_updates_users( + self, + account_id: str, + request_body: EmergencyAddressAutoUpdateUsersBulkAssignResource = None, + ): + """Enables or disables Automatic Location Updates feature for multiple + account users. + + :param request_body: The request body., defaults to None + :type request_body: EmergencyAddressAutoUpdateUsersBulkAssignResource, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator( + EmergencyAddressAutoUpdateUsersBulkAssignResource + ).is_optional().validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/users/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def create_multiple_wireless_points( + self, request_body: CreateMultipleWirelessPointsRequest, account_id: str + ) -> CreateMultipleWirelessPointsResponse: + """Creates multiple wireless points in a corporate map. The maximum + number of wireless points per request is 10 000; limitation for account is + 70 000. + + :param request_body: The request body. + :type request_body: CreateMultipleWirelessPointsRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Multiple Wireless Points Creation Task + :rtype: CreateMultipleWirelessPointsResponse + """ + + Validator(CreateMultipleWirelessPointsRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points-bulk-create", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CreateMultipleWirelessPointsResponse._unmap(response) + + @cast_models + def list_networks( + self, + account_id: str, + site_id: List[str] = None, + search_string: str = None, + order_by: str = None, + per_page: int = None, + page: int = None, + ) -> NetworksList: + """Returns a corporate network map with emergency addresses assigned + to the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param search_string: Filters entries by the specified substring (search by chassis + ID, switch name or address) The characters range is 0-64 (if empty the filter + is ignored), defaults to None + :type search_string: str, optional + :param order_by: Comma-separated list of fields to order results prefixed by '+' + sign (ascending order) or '-' sign (descending order). The default + sorting is by `name`, defaults to None + :type order_by: str, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned per one + page', defaults to None + :type per_page: int, optional + :param page: Indicates a page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Network map + :rtype: NetworksList + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(str).is_optional().validate(search_string) + Validator(str).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/networks", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteId", site_id) + .add_query("searchString", search_string) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return NetworksList._unmap(response) + + @cast_models + def create_network( + self, request_body: CreateNetworkRequest, account_id: str + ) -> NetworkInfo: + """Creates a new network in a corporate ethernet map for assignment + of emergency addresses to network access points. + + :param request_body: The request body. + :type request_body: CreateNetworkRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created network + :rtype: NetworkInfo + """ + + Validator(CreateNetworkRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/networks", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return NetworkInfo._unmap(response) + + @cast_models + def read_network(self, account_id: str, network_id: str) -> NetworkInfo: + """Returns the specified network with emergency addresses assigned + to the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param network_id: Internal identifier of a network + :type network_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Network information + :rtype: NetworkInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(network_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/networks/{{networkId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("networkId", network_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return NetworkInfo._unmap(response) + + @cast_models + def update_network( + self, request_body: UpdateNetworkRequest, account_id: str, network_id: str + ) -> NetworkInfo: + """Updates a network in a corporate ethernet map for assignment of emergency + addresses to network access points. + + :param request_body: The request body. + :type request_body: UpdateNetworkRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param network_id: Internal identifier of a network + :type network_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated network information + :rtype: NetworkInfo + """ + + Validator(UpdateNetworkRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(network_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/networks/{{networkId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("networkId", network_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return NetworkInfo._unmap(response) + + @cast_models + def delete_network(self, account_id: str, network_id: List[str]): + """Deletes network(s) in a corporate ethernet map for Automatic Location + Updates feature. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param network_id: Internal identifier of a network + :type network_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).is_array().validate(network_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/networks/{{networkId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("networkId", network_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def validate_multiple_switches( + self, request_body: ValidateMultipleSwitchesRequest, account_id: str + ) -> ValidateMultipleSwitchesResponse: + """Validates switches before creation or update. The maximum number + of switches per request is 10 000. + + :param request_body: The request body. + :type request_body: ValidateMultipleSwitchesRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: ValidateMultipleSwitchesResponse + """ + + Validator(ValidateMultipleSwitchesRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches-bulk-validate", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ValidateMultipleSwitchesResponse._unmap(response) + + @cast_models + def list_account_switches( + self, + account_id: str, + site_id: List[str] = None, + search_string: str = None, + order_by: str = None, + per_page: int = None, + page: int = None, + ) -> SwitchesList: + """Returns a corporate map of configured network switches with the assigned + emergency addresses for the logged-in account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param search_string: Filters entries by the specified substring (search by chassis + ID, switch name or address) The characters range is 0-64 (if empty the filter + is ignored), defaults to None + :type search_string: str, optional + :param order_by: Comma-separated list of fields to order results prefixed by '+' + sign (ascending order) or '-' sign (descending order). The default + sorting is by `name`, defaults to None + :type order_by: str, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned per one + page', defaults to None + :type per_page: int, optional + :param page: Indicates a page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Switches Map + :rtype: SwitchesList + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(str).is_optional().validate(search_string) + Validator(str).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteId", site_id) + .add_query("searchString", search_string) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SwitchesList._unmap(response) + + @cast_models + def create_switch( + self, request_body: CreateSwitchInfo, account_id: str + ) -> SwitchInfo: + """Creates a new switch in corporate map based on chassis ID and used + for Automatic Locations Update feature. + + :param request_body: The request body. + :type request_body: CreateSwitchInfo + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Switch information + :rtype: SwitchInfo + """ + + Validator(CreateSwitchInfo).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SwitchInfo._unmap(response) + + @cast_models + def read_switch(self, account_id: str, switch_id: str) -> SwitchInfo: + """Returns the specified switch with the assigned emergency address. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param switch_id: switch_id + :type switch_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Switch information + :rtype: SwitchInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(switch_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches/{{switchId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("switchId", switch_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SwitchInfo._unmap(response) + + @cast_models + def update_switch( + self, request_body: UpdateSwitchInfo, account_id: str, switch_id: str + ) -> SwitchInfo: + """Updates switch. Partial update is not supported, all switch parameters + should be specified. If null value is received or parameter is missing, its + value is removed. + + :param request_body: The request body. + :type request_body: UpdateSwitchInfo + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param switch_id: switch_id + :type switch_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated switch information + :rtype: SwitchInfo + """ + + Validator(UpdateSwitchInfo).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(switch_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches/{{switchId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("switchId", switch_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SwitchInfo._unmap(response) + + @cast_models + def delete_switch(self, account_id: str, switch_id: List[str]): + """Deletes wireless switch(es) in a network configuration for Automatic + Location Updates feature. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param switch_id: switch_id + :type switch_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).is_array().validate(switch_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches/{{switchId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("switchId", switch_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def validate_multiple_wireless_points( + self, request_body: ValidateMultipleWirelessPointsRequest, account_id: str + ) -> ValidateMultipleWirelessPointsResponse: + """Validates wireless points before creation or update. The maximum + number of wireless points per request is 10 000. + + :param request_body: The request body. + :type request_body: ValidateMultipleWirelessPointsRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Validated wireless points information + :rtype: ValidateMultipleWirelessPointsResponse + """ + + Validator(ValidateMultipleWirelessPointsRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points-bulk-validate", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ValidateMultipleWirelessPointsResponse._unmap(response) + + @cast_models + def list_wireless_points( + self, + account_id: str, + site_id: List[str] = None, + search_string: str = None, + order_by: str = None, + per_page: int = None, + page: int = None, + ) -> WirelessPointsList: + """Returns account wireless points configured and used for Automatic + Location Updates feature. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param search_string: Filters entries by the specified substring (search by chassis + ID, switch name or address) The characters range is 0-64 (if empty the filter + is ignored), defaults to None + :type search_string: str, optional + :param order_by: Comma-separated list of fields to order results prefixed by '+' + sign (ascending order) or '-' sign (descending order).The default sorting + is by `name`, defaults to None + :type order_by: str, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned per one + page, defaults to None + :type per_page: int, optional + :param page: Indicates the page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of wireless points + :rtype: WirelessPointsList + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(str).is_optional().validate(search_string) + Validator(str).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteId", site_id) + .add_query("searchString", search_string) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WirelessPointsList._unmap(response) + + @cast_models + def create_wireless_point( + self, request_body: CreateWirelessPoint, account_id: str + ) -> WirelessPointInfo: + """Creates a new wireless point in network configuration with the + emergency address assigned. + + :param request_body: The request body. + :type request_body: CreateWirelessPoint + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created wireless point + :rtype: WirelessPointInfo + """ + + Validator(CreateWirelessPoint).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WirelessPointInfo._unmap(response) + + @cast_models + def read_wireless_point(self, account_id: str, point_id: str) -> WirelessPointInfo: + """Returns the specified wireless access point of a corporate map + with the emergency address assigned. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param point_id: Internal identifier of a point + :type point_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Wireless point information + :rtype: WirelessPointInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(point_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points/{{pointId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pointId", point_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WirelessPointInfo._unmap(response) + + @cast_models + def update_wireless_point( + self, request_body: UpdateWirelessPoint, account_id: str, point_id: str + ) -> WirelessPointInfo: + """Updates the specified wireless access point of a corporate map + by ID. + + :param request_body: The request body. + :type request_body: UpdateWirelessPoint + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param point_id: Internal identifier of a wireless point + :type point_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated wireless point + :rtype: WirelessPointInfo + """ + + Validator(UpdateWirelessPoint).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(point_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points/{{pointId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pointId", point_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WirelessPointInfo._unmap(response) + + @cast_models + def delete_wireless_point(self, account_id: str, point_id: List[str]): + """Deletes wireless point(s) of a corporate map by ID(s). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param point_id: Internal identifier of a wireless point + :type point_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).is_array().validate(point_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points/{{pointId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pointId", point_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_devices_automatic_location_updates( + self, + account_id: str, + site_id: List[str] = None, + feature_enabled: bool = None, + model_id: str = None, + compatible_only: bool = None, + search_string: str = None, + order_by: str = None, + per_page: int = None, + page: int = None, + ) -> ListDevicesAutomaticLocationUpdates: + """Returns a list of common devices with their status of Automatic + Location Updates feature. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site for filtering. To indicate company main + site `main-site` value should be specified. Supported only if multi-site feature + is enabled for the account. Multiple values are supported., defaults to None + :type site_id: List[str], optional + :param feature_enabled: Filters entries by their status of Automatic Location Updates + feature, defaults to None + :type feature_enabled: bool, optional + :param model_id: Internal identifier of a device model for filtering. Multiple + values are supported, defaults to None + :type model_id: str, optional + :param compatible_only: Filters devices which support HELD protocol, defaults to None + :type compatible_only: bool, optional + :param search_string: Filters entries which have device name or model name containing + the mentioned substring. The value should be split by spaces; the range + is 0 - 64 characters, not case-sensitive. If empty the filter is ignored, defaults to None + :type search_string: str, optional + :param order_by: Comma-separated list of fields to order results prefixed by + plus sign '+' (ascending order) or minus sign '-' (descending order). + Supported values: 'name', 'modelName', 'siteName', 'featureEnabled'. + The default sorting is by `name`, defaults to None + :type order_by: str, optional + :param per_page: Indicates a page size (number of items). The values supported: + `Max` or numeric value. If not specified, 100 records are returned per one + page, defaults to None + :type per_page: int, optional + :param page: Indicates a page number to retrieve. Only positive number values + are supported, defaults to None + :type page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Device list with their status of Automatic Location Updates feature + :rtype: ListDevicesAutomaticLocationUpdates + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_id) + Validator(bool).is_optional().validate(feature_enabled) + Validator(str).is_optional().validate(model_id) + Validator(bool).is_optional().validate(compatible_only) + Validator(str).is_optional().validate(search_string) + Validator(str).is_optional().validate(order_by) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/devices", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteId", site_id) + .add_query("featureEnabled", feature_enabled) + .add_query("modelId", model_id) + .add_query("compatibleOnly", compatible_only) + .add_query("searchString", search_string) + .add_query("orderBy", order_by) + .add_query("perPage", per_page) + .add_query("page", page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ListDevicesAutomaticLocationUpdates._unmap(response) + + @cast_models + def assign_multiple_devices_automatic_location_updates( + self, + account_id: str, + request_body: AssignMultipleDevicesAutomaticLocationUpdates = None, + ): + """Enables or disables Automatic Location Updates feature for the + specified common phones. + + :param request_body: The request body., defaults to None + :type request_body: AssignMultipleDevicesAutomaticLocationUpdates, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(AssignMultipleDevicesAutomaticLocationUpdates).is_optional().validate( + request_body + ) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/devices/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def create_multiple_switches( + self, request_body: CreateMultipleSwitchesRequest, account_id: str + ) -> CreateMultipleSwitchesResponse: + """Creates multiple switches in corporate map. The maximum number + of switches per request is 10 000; limitation for account is 10 000. + + :param request_body: The request body. + :type request_body: CreateMultipleSwitchesRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Multiple Switches Creation Task + :rtype: CreateMultipleSwitchesResponse + """ + + Validator(CreateMultipleSwitchesRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches-bulk-create", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CreateMultipleSwitchesResponse._unmap(response) + + @cast_models + def update_multiple_wireless_points( + self, request_body: UpdateMultipleWirelessPointsRequest, account_id: str + ) -> UpdateMultipleWirelessPointsResponse: + """Updates wireless points in corporate map. The maximum number of + wireless points per request is 10 000; limitation for account is 70 000. + + :param request_body: The request body. + :type request_body: UpdateMultipleWirelessPointsRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Multiple Wireless Points Update Task + :rtype: UpdateMultipleWirelessPointsResponse + """ + + Validator(UpdateMultipleWirelessPointsRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/wireless-points-bulk-update", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return UpdateMultipleWirelessPointsResponse._unmap(response) + + @cast_models + def update_multiple_switches( + self, request_body: UpdateMultipleSwitchesRequest, account_id: str + ) -> UpdateMultipleSwitchesResponse: + """Updates multiple switches in corporate map. The maximum number + of switches per request is 10 000; limitation for account is 10 000. + + :param request_body: The request body. + :type request_body: UpdateMultipleSwitchesRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Multiple Switches Update Task + :rtype: UpdateMultipleSwitchesResponse + """ + + Validator(UpdateMultipleSwitchesRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/emergency-address-auto-update/switches-bulk-update", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return UpdateMultipleSwitchesResponse._unmap(response) diff --git a/src/ring_central/services/bridge_management.py b/src/ring_central/services/bridge_management.py new file mode 100644 index 00000000..9b918c6b --- /dev/null +++ b/src/ring_central/services/bridge_management.py @@ -0,0 +1,260 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_bridge_request import UpdateBridgeRequest +from ..models.create_bridge_request import CreateBridgeRequest +from ..models.bridge_response import BridgeResponse + + +class BridgeManagementService(BaseService): + + @cast_models + def create_bridge( + self, + account_id: str, + extension_id: str, + request_body: CreateBridgeRequest = None, + ) -> BridgeResponse: + """Creates a new bridge for the user specified by **accountId** and **extensionId** identifiers. The request body + should contain JSON object which describes properties of the new bridge. + The bridge can be created by a user himself, his delegate or any user who has the **Super Admin** privilege. + + :param request_body: The request body., defaults to None + :type request_body: CreateBridgeRequest, optional + :param account_id: Account identifier + :type account_id: str + :param extension_id: Extension identifier + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(CreateBridgeRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/account/{{accountId}}/extension/{{extensionId}}/bridges", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def get_default_bridge(self, account_id: str, extension_id: str) -> BridgeResponse: + """Returns a default bridge (PMI) for the user specified by **accountId** + and **extensionId** identifiers. + + :param account_id: Account identifier + :type account_id: str + :param extension_id: Extension identifier + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/account/{{accountId}}/extension/{{extensionId}}/bridges/default", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def get_bridge_by_pstn_pin( + self, pin: str, phone_number: str = None, pw: str = None + ) -> BridgeResponse: + """Finds a bridge by Host or Participant PSTN PIN. + + :param pin: Host or Participant PSTN PIN + :type pin: str + :param phone_number: Phone number to find a phone group for PSTN PIN. If it is not specified, then the default phone group will be used., defaults to None + :type phone_number: str, optional + :param pw: Bridge hash password, defaults to None + :type pw: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(str).validate(pin) + Validator(str).is_optional().validate(phone_number) + Validator(str).is_optional().validate(pw) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/bridges/pin/pstn/{{pin}}", + self.get_default_headers(), + ) + .add_path("pin", pin) + .add_query("phoneNumber", phone_number) + .add_query("pw", pw) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def get_bridge_by_web_pin(self, pin: str, pw: str = None) -> BridgeResponse: + """Finds a bridge by short identifier (Web PIN). Also it can be used to find a default bridge by the alias + (personal meeting name). + + :param pin: Bridge short identifier (Web PIN) or alias (personal meeting name) + :type pin: str + :param pw: Bridge hash password, defaults to None + :type pw: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(str).validate(pin) + Validator(str).is_optional().validate(pw) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/bridges/pin/web/{{pin}}", + self.get_default_headers(), + ) + .add_path("pin", pin) + .add_query("pw", pw) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def get_bridge(self, bridge_id: str, pw: str = None) -> BridgeResponse: + """Returns a bridge by **bridgeId** identifier. + + :param bridge_id: Bridge identifier + :type bridge_id: str + :param pw: Bridge hash password, defaults to None + :type pw: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(str).validate(bridge_id) + Validator(str).is_optional().validate(pw) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/bridges/{{bridgeId}}", + self.get_default_headers(), + ) + .add_path("bridgeId", bridge_id) + .add_query("pw", pw) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def update_bridge( + self, request_body: UpdateBridgeRequest, bridge_id: str + ) -> BridgeResponse: + """Updates a bridge by **bridgeId** identifier. The request body should contain JSON object with updating properties. + Update can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. + + :param request_body: The request body. + :type request_body: UpdateBridgeRequest + :param bridge_id: Bridge identifier + :type bridge_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BridgeResponse + """ + + Validator(UpdateBridgeRequest).validate(request_body) + Validator(str).validate(bridge_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/bridges/{{bridgeId}}", + self.get_default_headers(), + ) + .add_path("bridgeId", bridge_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BridgeResponse._unmap(response) + + @cast_models + def delete_bridge(self, bridge_id: str): + """Deletes a bridge by **bridgeId** identifier. + Deletion can only be done by bridge owner, his delegate or any user who has the **Super Admin** privilege. + + :param bridge_id: Bridge identifier + :type bridge_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(bridge_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v2/bridges/{{bridgeId}}", + self.get_default_headers(), + ) + .add_path("bridgeId", bridge_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/business_analytics.py b/src/ring_central/services/business_analytics.py new file mode 100644 index 00000000..a8c8e676 --- /dev/null +++ b/src/ring_central/services/business_analytics.py @@ -0,0 +1,115 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.timeline_response import TimelineResponse +from ..models.timeline_request import TimelineRequest +from ..models.interval import Interval +from ..models.aggregation_response import AggregationResponse +from ..models.aggregation_request import AggregationRequest + + +class BusinessAnalyticsService(BaseService): + + @cast_models + def analytics_calls_aggregation_fetch( + self, + request_body: AggregationRequest, + account_id: str, + page: int = None, + per_page: int = None, + ) -> AggregationResponse: + """Returns call aggregations filtered by parameters specified + + :param request_body: The request body. + :type request_body: AggregationRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: The current page number (positive numbers only), defaults to None + :type page: int, optional + :param per_page: Number of records displayed on a page (positive numbers only, max value of 200), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Calls Aggregation + :rtype: AggregationResponse + """ + + Validator(AggregationRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(int).is_optional().min(1).validate(page) + Validator(int).is_optional().min(1).max(200).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/analytics/calls/v1/accounts/{{accountId}}/aggregation/fetch", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AggregationResponse._unmap(response) + + @cast_models + def analytics_calls_timeline_fetch( + self, + request_body: TimelineRequest, + account_id: str, + interval: Interval, + page: int = None, + per_page: int = None, + ) -> TimelineResponse: + """Returns time-value data aggregations filtered by parameters specified + + :param request_body: The request body. + :type request_body: TimelineRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param interval: Aggregation interval + :type interval: Interval + :param page: The current page number (positive numbers only), defaults to None + :type page: int, optional + :param per_page: Number of records displayed on a page (positive numbers only, max value of 20), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Calls Timeline + :rtype: TimelineResponse + """ + + Validator(TimelineRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(Interval).validate(interval) + Validator(int).is_optional().min(1).validate(page) + Validator(int).is_optional().min(1).max(20).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/analytics/calls/v1/accounts/{{accountId}}/timeline/fetch", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("interval", interval) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TimelineResponse._unmap(response) diff --git a/src/ring_central/services/business_hours.py b/src/ring_central/services/business_hours.py new file mode 100644 index 00000000..6a525631 --- /dev/null +++ b/src/ring_central/services/business_hours.py @@ -0,0 +1,163 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.user_business_hours_update_response import UserBusinessHoursUpdateResponse +from ..models.user_business_hours_update_request import UserBusinessHoursUpdateRequest +from ..models.get_user_business_hours_response import GetUserBusinessHoursResponse +from ..models.company_business_hours_update_request import ( + CompanyBusinessHoursUpdateRequest, +) +from ..models.company_business_hours import CompanyBusinessHours + + +class BusinessHoursService(BaseService): + + @cast_models + def read_company_business_hours(self, account_id: str) -> CompanyBusinessHours: + """Returns the company business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyBusinessHours + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/business-hours", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CompanyBusinessHours._unmap(response) + + @cast_models + def update_company_business_hours( + self, request_body: CompanyBusinessHoursUpdateRequest, account_id: str + ) -> CompanyBusinessHours: + """Updates the company business hours schedule. + + :param request_body: The request body. + :type request_body: CompanyBusinessHoursUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyBusinessHours + """ + + Validator(CompanyBusinessHoursUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/business-hours", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CompanyBusinessHours._unmap(response) + + @cast_models + def read_user_business_hours( + self, account_id: str, extension_id: str + ) -> GetUserBusinessHoursResponse: + """Returns the user business hours schedule. Business hours (and After hours - all the remaining time) schedules are commonly used for setting call handling rules - `business-hours-rule` and `after-hours-rule` correspondingly. **Please note:** If the user business hours are set to 'Custom hours' then a particular schedule is returned; however if set to '24 hours/7 days a week' the schedule will be empty. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: GetUserBusinessHoursResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/business-hours", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetUserBusinessHoursResponse._unmap(response) + + @cast_models + def update_user_business_hours( + self, + request_body: UserBusinessHoursUpdateRequest, + account_id: str, + extension_id: str, + ) -> UserBusinessHoursUpdateResponse: + """Updates the user business hours schedule. + + :param request_body: The request body. + :type request_body: UserBusinessHoursUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: UserBusinessHoursUpdateResponse + """ + + Validator(UserBusinessHoursUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/business-hours", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return UserBusinessHoursUpdateResponse._unmap(response) diff --git a/src/ring_central/services/calendar_events.py b/src/ring_central/services/calendar_events.py new file mode 100644 index 00000000..2eaa0721 --- /dev/null +++ b/src/ring_central/services/calendar_events.py @@ -0,0 +1,230 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_event_list import TmEventList +from ..models.tm_event_info import TmEventInfo +from ..models.tm_create_event_request import TmCreateEventRequest + + +class CalendarEventsService(BaseService): + + @cast_models + def read_glip_events_new( + self, record_count: int = None, page_token: str = None + ) -> TmEventList: + """Returns all calendar events created by the current user. + + :param record_count: Number of groups to be fetched by one request. The maximum value is 250, by default - 30., defaults to None + :type record_count: int, optional + :param page_token: Token of a page to be returned, defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmEventList + """ + + Validator(int).is_optional().max(250).validate(record_count) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/events", self.get_default_headers() + ) + .add_query("recordCount", record_count) + .add_query("pageToken", page_token) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmEventList._unmap(response) + + @cast_models + def create_event_new(self, request_body: TmCreateEventRequest) -> TmEventInfo: + """Creates a new calendar event. + + :param request_body: The request body. + :type request_body: TmCreateEventRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmEventInfo + """ + + Validator(TmCreateEventRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/events", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmEventInfo._unmap(response) + + @cast_models + def read_event_new(self, event_id: List[str]) -> TmEventInfo: + """Returns the specified calendar event(s) by ID(s). + + :param event_id: Event id or comma separated list of event ids. + :type event_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmEventInfo + """ + + Validator(str).is_array().validate(event_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/events/{{eventId}}", + self.get_default_headers(), + ) + .add_path("eventId", event_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmEventInfo._unmap(response) + + @cast_models + def update_event_new( + self, request_body: TmCreateEventRequest, event_id: str + ) -> TmEventInfo: + """Updates the specified calendar event. + + :param request_body: The request body. + :type request_body: TmCreateEventRequest + :param event_id: Internal identifier of an event + :type event_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmEventInfo + """ + + Validator(TmCreateEventRequest).validate(request_body) + Validator(str).validate(event_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/events/{{eventId}}", + self.get_default_headers(), + ) + .add_path("eventId", event_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmEventInfo._unmap(response) + + @cast_models + def delete_event_new(self, event_id: str): + """Deletes the specified calendar event. + + :param event_id: Internal identifier of an event to be deleted + :type event_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(event_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/events/{{eventId}}", + self.get_default_headers(), + ) + .add_path("eventId", event_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_group_events_new(self, group_id: str) -> TmEventInfo: + """Returns a list of calendar events available for the current user within the specified group. Users can only see their personal tasks and public tasks. + + :param group_id: Internal identifier of a group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmEventInfo + """ + + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/groups/{{groupId}}/events", + self.get_default_headers(), + ) + .add_path("groupId", group_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmEventInfo._unmap(response) + + @cast_models + def create_event_by_group_id_new( + self, request_body: TmCreateEventRequest, group_id: str + ) -> TmEventInfo: + """Creates a new calendar event within the specified group. + + :param request_body: The request body. + :type request_body: TmCreateEventRequest + :param group_id: Internal identifier of a group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmEventInfo + """ + + Validator(TmCreateEventRequest).validate(request_body) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/groups/{{groupId}}/events", + self.get_default_headers(), + ) + .add_path("groupId", group_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmEventInfo._unmap(response) diff --git a/src/ring_central/services/call_blocking.py b/src/ring_central/services/call_blocking.py new file mode 100644 index 00000000..f41e70d2 --- /dev/null +++ b/src/ring_central/services/call_blocking.py @@ -0,0 +1,326 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.caller_blocking_settings_update import CallerBlockingSettingsUpdate +from ..models.caller_blocking_settings import CallerBlockingSettings +from ..models.blocked_number_status_enum import BlockedNumberStatusEnum +from ..models.blocked_allowed_phone_numbers_list import BlockedAllowedPhoneNumbersList +from ..models.blocked_allowed_phone_number_info import BlockedAllowedPhoneNumberInfo +from ..models.add_blocked_allowed_phone_number import AddBlockedAllowedPhoneNumber + + +class CallBlockingService(BaseService): + + @cast_models + def read_caller_blocking_settings( + self, account_id: str, extension_id: str + ) -> CallerBlockingSettings: + """Returns the current caller blocking settings of a user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CallerBlockingSettings + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallerBlockingSettings._unmap(response) + + @cast_models + def update_caller_blocking_settings( + self, + account_id: str, + extension_id: str, + request_body: CallerBlockingSettingsUpdate = None, + ) -> CallerBlockingSettings: + """Updates the current caller blocking settings of a user. + + :param request_body: The request body., defaults to None + :type request_body: CallerBlockingSettingsUpdate, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CallerBlockingSettings + """ + + Validator(CallerBlockingSettingsUpdate).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallerBlockingSettings._unmap(response) + + @cast_models + def list_blocked_allowed_numbers( + self, + account_id: str, + extension_id: str, + page: int = None, + per_page: int = None, + status: BlockedNumberStatusEnum = None, + ) -> BlockedAllowedPhoneNumbersList: + """Returns the lists of blocked and allowed phone numbers. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param status: status, defaults to None + :type status: BlockedNumberStatusEnum, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BlockedAllowedPhoneNumbersList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(BlockedNumberStatusEnum).is_optional().validate(status) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking/phone-numbers", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("status", status) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BlockedAllowedPhoneNumbersList._unmap(response) + + @cast_models + def create_blocked_allowed_number( + self, + request_body: AddBlockedAllowedPhoneNumber, + account_id: str, + extension_id: str, + ) -> BlockedAllowedPhoneNumberInfo: + """Updates either blocked or allowed phone number list with a new phone number. + + :param request_body: The request body. + :type request_body: AddBlockedAllowedPhoneNumber + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BlockedAllowedPhoneNumberInfo + """ + + Validator(AddBlockedAllowedPhoneNumber).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking/phone-numbers", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BlockedAllowedPhoneNumberInfo._unmap(response) + + @cast_models + def read_blocked_allowed_number( + self, account_id: str, extension_id: str, blocked_number_id: str + ) -> BlockedAllowedPhoneNumberInfo: + """Returns blocked or allowed phone number(s) by their ID(s). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param blocked_number_id: Internal identifier of a blocked number entry + :type blocked_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BlockedAllowedPhoneNumberInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(blocked_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking/phone-numbers/{{blockedNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("blockedNumberId", blocked_number_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BlockedAllowedPhoneNumberInfo._unmap(response) + + @cast_models + def update_blocked_allowed_number( + self, + account_id: str, + extension_id: str, + blocked_number_id: str, + request_body: AddBlockedAllowedPhoneNumber = None, + ) -> BlockedAllowedPhoneNumberInfo: + """Updates blocked or allowed phone number(s) by their ID(s). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param request_body: The request body., defaults to None + :type request_body: AddBlockedAllowedPhoneNumber, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param blocked_number_id: Internal identifier of a blocked number entry + :type blocked_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: BlockedAllowedPhoneNumberInfo + """ + + Validator(AddBlockedAllowedPhoneNumber).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(blocked_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking/phone-numbers/{{blockedNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("blockedNumberId", blocked_number_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BlockedAllowedPhoneNumberInfo._unmap(response) + + @cast_models + def delete_blocked_allowed_number( + self, account_id: str, extension_id: str, blocked_number_id: str + ): + """Deletes blocked or allowed phone number(s) by their ID(s). Batch request is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param blocked_number_id: Internal identifier of a blocked number entry + :type blocked_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(blocked_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-blocking/phone-numbers/{{blockedNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("blockedNumberId", blocked_number_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/call_control.py b/src/ring_central/services/call_control.py new file mode 100644 index 00000000..07eaeeb6 --- /dev/null +++ b/src/ring_central/services/call_control.py @@ -0,0 +1,1092 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.transfer_target import TransferTarget +from ..models.supervise_call_session_response import SuperviseCallSessionResponse +from ..models.supervise_call_session_request import SuperviseCallSessionRequest +from ..models.reply_party import ReplyParty +from ..models.pickup_target import PickupTarget +from ..models.party_update_request import PartyUpdateRequest +from ..models.party_supervise_response import PartySuperviseResponse +from ..models.party_supervise_request import PartySuperviseRequest +from ..models.make_call_out_request import MakeCallOutRequest +from ..models.ignore_request_body import IgnoreRequestBody +from ..models.hold_call_party_request import HoldCallPartyRequest +from ..models.forward_target import ForwardTarget +from ..models.forward_call_party_response import ForwardCallPartyResponse +from ..models.call_session_object import CallSessionObject +from ..models.call_session import CallSession +from ..models.call_recording_update import CallRecordingUpdate +from ..models.call_recording import CallRecording +from ..models.call_party_reply import CallPartyReply +from ..models.call_party_flip import CallPartyFlip +from ..models.call_party import CallParty +from ..models.bridge_target_request import BridgeTargetRequest +from ..models.answer_target import AnswerTarget +from ..models.add_party_request import AddPartyRequest + + +class CallControlService(BaseService): + + @cast_models + def create_call_out_call_session( + self, request_body: MakeCallOutRequest, account_id: str + ) -> CallSession: + """Creates a new outbound call out session. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. + + :param request_body: The request body. + :type request_body: MakeCallOutRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: CallSession + """ + + Validator(MakeCallOutRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/call-out", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallSession._unmap(response) + + @cast_models + def create_conference_call_session(self, account_id: str) -> CallSession: + """Initiates a conference call session. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: CallSession + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/conference", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return CallSession._unmap(response) + + @cast_models + def read_call_session_status( + self, + account_id: str, + telephony_session_id: str, + timestamp: str = None, + timeout: str = None, + ) -> CallSessionObject: + """Returns the status of a call session by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param timestamp: The date and time of a call session latest change, defaults to None + :type timestamp: str, optional + :param timeout: The time frame of awaiting for a status change before sending + the resulting one in response, defaults to None + :type timeout: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallSessionObject + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).is_optional().validate(timestamp) + Validator(str).is_optional().validate(timeout) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_query("timestamp", timestamp) + .add_query("timeout", timeout) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallSessionObject._unmap(response) + + @cast_models + def delete_call_session(self, account_id: str, telephony_session_id: str): + """Drops a call session. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def create_call_party_with_bring_in( + self, request_body: AddPartyRequest, account_id: str, telephony_session_id: str + ) -> CallParty: + """Adds a new party to the call session by bringing in an established + SIP call connection. The maximum number of parties to bring in is 10; only + 1 call party can be added per request. Currently, the method is supported for + sessions of the `Conference` origin only. + + :param request_body: The request body. + :type request_body: AddPartyRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: CallParty + """ + + Validator(AddPartyRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/bring-in", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def read_call_party_status( + self, account_id: str, telephony_session_id: str, party_id: str + ) -> CallParty: + """Returns a call party status by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallParty + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def update_call_party( + self, + request_body: PartyUpdateRequest, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> CallParty: + """Modifies a call party by ID. There is a known limitation for Mute scenario - mute via REST API doesn't work with mute placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app you need to unmute both endpoints to bring the media back. + + :param request_body: The request body. + :type request_body: PartyUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallParty + """ + + Validator(PartyUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def delete_call_party( + self, account_id: str, telephony_session_id: str, party_id: str + ): + """Deletes a party from a call session by ID. A party can be deleted only if supervised or parked. It is possible to delete only one conference participant per request. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def unhold_call_party( + self, account_id: str, telephony_session_id: str, party_id: str + ) -> CallParty: + """Brings a party back into a call and stops to play Hold Music. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallParty + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/unhold", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def call_park_party( + self, account_id: str, telephony_session_id: str, party_id: str + ) -> CallParty: + """Parks a call to a virtual location from where it can further be retrieved by any user from any phone of the system. The call session and call party identifiers should be specified in path. Currently, the users can park only their own incoming calls. Up to 50 calls can be parked simultaneously. Park location starts with asterisk (*) and ranges 801-899. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: CallParty + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/park", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def call_flip_party( + self, + request_body: CallPartyFlip, + account_id: str, + telephony_session_id: str, + party_id: str, + ): + """Performs call flip procedure by holding opposite party and calling to the specified target + + :param request_body: The request body. + :type request_body: CallPartyFlip + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(CallPartyFlip).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/flip", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def reply_party( + self, + request_body: CallPartyReply, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> ReplyParty: + """Replies with text/pattern without picking up a call. + + :param request_body: The request body. + :type request_body: CallPartyReply + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: ReplyParty + """ + + Validator(CallPartyReply).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/reply", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ReplyParty._unmap(response) + + @cast_models + def bridge_call_party( + self, + request_body: BridgeTargetRequest, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> CallParty: + """Allows the user to connect multiple call session participants over a conference call bridge. + The current active call session ID and party ID of the user within this session should be specified + in path; the bridged call session ID and party ID of the user within that session should be specified + in request body. Thus, the user connects participants of two sessions into the one conference call + using his/her own party IDs from both sessions." + + :param request_body: The request body. + :type request_body: BridgeTargetRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Bridged Call Info + :rtype: CallParty + """ + + Validator(BridgeTargetRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/bridge", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def ignore_call_in_queue( + self, + request_body: IgnoreRequestBody, + account_id: str, + telephony_session_id: str, + party_id: str, + ): + """Ignores a call to a call queue agent in `Setup` or `Proceeding` state. + + :param request_body: The request body. + :type request_body: IgnoreRequestBody + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(IgnoreRequestBody).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/ignore", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def supervise_call_party( + self, + request_body: PartySuperviseRequest, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> PartySuperviseResponse: + """Allows to monitor a call party in 'Listen' mode. Input parameters + are extension number of a monitored user and internal identifier of a supervisor's + device. Call session and party identifiers should be specified in path. Please + note that for this method dual channel audio flow is supported, which means + that you need to make one more request for monitoring the second participant + of a call. And as a result of each monitoring request the client receives + SIP invite with the following header `p-rc-api-monitoring-ids` containing + IDs of the monitored party and session. The flow is supported for calls with + no more than 2 participants. Currently, this method is supported for Softphone/Hardphone devices + only, since device IDs for WebRTC/Mobile apps cannot be obtained. + + :param request_body: The request body. + :type request_body: PartySuperviseRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: PartySuperviseResponse + """ + + Validator(PartySuperviseRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/supervise", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PartySuperviseResponse._unmap(response) + + @cast_models + def reject_party(self, account_id: str, telephony_session_id: str, party_id: str): + """Rejects an inbound call in a "Setup" or "Proceeding" state + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/reject", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def start_call_recording( + self, account_id: str, telephony_session_id: str, party_id: str + ): + """Starts a new call recording for the party + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def pause_resume_call_recording( + self, + request_body: CallRecordingUpdate, + account_id: str, + telephony_session_id: str, + party_id: str, + recording_id: str, + brand_id: str, + ) -> CallRecording: + """Pause/resume recording + + :param request_body: The request body. + :type request_body: CallRecordingUpdate + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + :param recording_id: Internal identifier of a recording + :type recording_id: str + :param brand_id: Identifies a brand of a logged-in user or a brand of a sign-up session + :type brand_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallRecording + """ + + Validator(CallRecordingUpdate).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + Validator(str).validate(recording_id) + Validator(str).validate(brand_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/recordings/{{recordingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .add_path("recordingId", recording_id) + .add_query("brandId", brand_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallRecording._unmap(response) + + @cast_models + def answer_call_party( + self, + request_body: AnswerTarget, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> CallParty: + """Answers a call on a certain device by passing the corresponding device ID in request body. Supported for call forwarding, call transfer, call flip and call queues. + + :param request_body: The request body. + :type request_body: AnswerTarget + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call Session Information + :rtype: CallParty + """ + + Validator(AnswerTarget).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/answer", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def transfer_call_party( + self, + request_body: TransferTarget, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> CallParty: + """Transfers an answered call to the specified call party. Applicable for a call session in "Answered" or "Hold" state. + + :param request_body: The request body. + :type request_body: TransferTarget + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallParty + """ + + Validator(TransferTarget).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/transfer", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def hold_call_party( + self, + account_id: str, + telephony_session_id: str, + party_id: str, + request_body: HoldCallPartyRequest = None, + ) -> CallParty: + """Puts the party to stand-alone mode and starts to play Hold Music according to configuration & state to peers. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back. + + :param request_body: The request body., defaults to None + :type request_body: HoldCallPartyRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallParty + """ + + Validator(HoldCallPartyRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/hold", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def pickup_call_party( + self, + request_body: PickupTarget, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> CallParty: + """Picks up a call parked to the specified park location. + + :param request_body: The request body. + :type request_body: PickupTarget + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: CallParty + """ + + Validator(PickupTarget).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/pickup", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallParty._unmap(response) + + @cast_models + def forward_call_party( + self, + request_body: ForwardTarget, + account_id: str, + telephony_session_id: str, + party_id: str, + ) -> ForwardCallPartyResponse: + """Forwards a non-answered incoming call to the specified call party. Applicable for a call session in "Setup" or "Proceeding" state. + + :param request_body: The request body. + :type request_body: ForwardTarget + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + :param party_id: Internal identifier of a call party + :type party_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: ForwardCallPartyResponse + """ + + Validator(ForwardTarget).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + Validator(str).validate(party_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/parties/{{partyId}}/forward", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .add_path("partyId", party_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ForwardCallPartyResponse._unmap(response) + + @cast_models + def supervise_call_session( + self, + request_body: SuperviseCallSessionRequest, + account_id: str, + telephony_session_id: str, + ) -> SuperviseCallSessionResponse: + """Allows monitoring a call session in 'Listen' mode. Input parameters should contain internal identifiers of a monitored user and a supervisor's device. Call session should be specified in path. Please note that this method supports single channel audio flow, which means that audio of both call participants is mixed and delivered to the supervisor in single audio channel. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained. + + :param request_body: The request body. + :type request_body: SuperviseCallSessionRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param telephony_session_id: Internal identifier of a call session + :type telephony_session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: SuperviseCallSessionResponse + """ + + Validator(SuperviseCallSessionRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(telephony_session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/telephony/sessions/{{telephonySessionId}}/supervise", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("telephonySessionId", telephony_session_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SuperviseCallSessionResponse._unmap(response) diff --git a/src/ring_central/services/call_forwarding.py b/src/ring_central/services/call_forwarding.py new file mode 100644 index 00000000..d5bbfb53 --- /dev/null +++ b/src/ring_central/services/call_forwarding.py @@ -0,0 +1,280 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_forwarding_number_request import UpdateForwardingNumberRequest +from ..models.get_extension_forwarding_number_list_response import ( + GetExtensionForwardingNumberListResponse, +) +from ..models.forwarding_number_resource import ForwardingNumberResource +from ..models.forwarding_number_info import ForwardingNumberInfo +from ..models.delete_forwarding_numbers_request import DeleteForwardingNumbersRequest +from ..models.create_forwarding_number_request import CreateForwardingNumberRequest + + +class CallForwardingService(BaseService): + + @cast_models + def list_forwarding_numbers( + self, account_id: str, extension_id: str, page: int = None, per_page: int = None + ) -> GetExtensionForwardingNumberListResponse: + """Returns the list of extension phone numbers used for call forwarding + and call flip. The returned list contains all the extension phone numbers + used for call forwarding and call flip. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: GetExtensionForwardingNumberListResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionForwardingNumberListResponse._unmap(response) + + @cast_models + def create_forwarding_number( + self, + request_body: CreateForwardingNumberRequest, + account_id: str, + extension_id: str, + ) -> ForwardingNumberInfo: + """Adds a new forwarding number to the forwarding number list. + + :param request_body: The request body. + :type request_body: CreateForwardingNumberRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ForwardingNumberInfo + """ + + Validator(CreateForwardingNumberRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ForwardingNumberInfo._unmap(response) + + @cast_models + def delete_forwarding_numbers( + self, + request_body: DeleteForwardingNumbersRequest, + account_id: str, + extension_id: str, + ): + """Deletes multiple forwarding numbers from the forwarding number list by IDs. + + :param request_body: The request body. + :type request_body: DeleteForwardingNumbersRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(DeleteForwardingNumbersRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_forwarding_number( + self, account_id: str, extension_id: str, forwarding_number_id: str + ) -> ForwardingNumberResource: + """Returns a specific forwarding number. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param forwarding_number_id: Internal identifier of a forwarding number (returned in response in the 'id' field) + :type forwarding_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ForwardingNumberResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(forwarding_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number/{{forwardingNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("forwardingNumberId", forwarding_number_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ForwardingNumberResource._unmap(response) + + @cast_models + def update_forwarding_number( + self, + request_body: UpdateForwardingNumberRequest, + account_id: str, + extension_id: str, + forwarding_number_id: str, + ) -> ForwardingNumberInfo: + """Updates the existing forwarding number from the forwarding number list. + + :param request_body: The request body. + :type request_body: UpdateForwardingNumberRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param forwarding_number_id: Internal identifier of a forwarding number (returned in response in the 'id' field) + :type forwarding_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ForwardingNumberInfo + """ + + Validator(UpdateForwardingNumberRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(forwarding_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number/{{forwardingNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("forwardingNumberId", forwarding_number_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ForwardingNumberInfo._unmap(response) + + @cast_models + def delete_forwarding_number( + self, account_id: str, extension_id: str, forwarding_number_id: str + ): + """Deletes a forwarding number from the forwarding number list by its ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param forwarding_number_id: Internal identifier of a forwarding number (returned in response in the 'id' field) + :type forwarding_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(forwarding_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/forwarding-number/{{forwardingNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("forwardingNumberId", forwarding_number_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/call_handling_rules.py b/src/ring_central/services/call_handling_rules.py new file mode 100644 index 00000000..18e5154f --- /dev/null +++ b/src/ring_central/services/call_handling_rules.py @@ -0,0 +1,519 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.user_answering_rule_list import UserAnsweringRuleList +from ..models.update_answering_rule_request import UpdateAnsweringRuleRequest +from ..models.list_answering_rules_view import ListAnsweringRulesView +from ..models.list_answering_rules_type import ListAnsweringRulesType +from ..models.forward_all_company_calls_request import ForwardAllCompanyCallsRequest +from ..models.forward_all_company_calls_info import ForwardAllCompanyCallsInfo +from ..models.custom_answering_rule_info import CustomAnsweringRuleInfo +from ..models.create_answering_rule_request import CreateAnsweringRuleRequest +from ..models.company_answering_rule_update import CompanyAnsweringRuleUpdate +from ..models.company_answering_rule_request import CompanyAnsweringRuleRequest +from ..models.company_answering_rule_list import CompanyAnsweringRuleList +from ..models.company_answering_rule_info import CompanyAnsweringRuleInfo +from ..models.answering_rule_info import AnsweringRuleInfo + + +class CallHandlingRulesService(BaseService): + + @cast_models + def list_company_answering_rules( + self, account_id: str, page: int = None, per_page: int = None + ) -> CompanyAnsweringRuleList: + """Returns a list of company call handling rules. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyAnsweringRuleList + """ + + Validator(str).validate(account_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/answering-rule", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CompanyAnsweringRuleList._unmap(response) + + @cast_models + def create_company_answering_rule( + self, request_body: CompanyAnsweringRuleRequest, account_id: str + ) -> CompanyAnsweringRuleInfo: + """Creates call handling rule on account level. + + :param request_body: The request body. + :type request_body: CompanyAnsweringRuleRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyAnsweringRuleInfo + """ + + Validator(CompanyAnsweringRuleRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/answering-rule", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CompanyAnsweringRuleInfo._unmap(response) + + @cast_models + def read_company_answering_rule( + self, account_id: str, rule_id: str + ) -> CompanyAnsweringRuleInfo: + """Returns a company call handling rule by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyAnsweringRuleInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(rule_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("ruleId", rule_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CompanyAnsweringRuleInfo._unmap(response) + + @cast_models + def update_company_answering_rule( + self, request_body: CompanyAnsweringRuleUpdate, account_id: str, rule_id: str + ) -> CompanyAnsweringRuleInfo: + """Updates a company call handling rule. + + :param request_body: The request body. + :type request_body: CompanyAnsweringRuleUpdate + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CompanyAnsweringRuleInfo + """ + + Validator(CompanyAnsweringRuleUpdate).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(rule_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("ruleId", rule_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CompanyAnsweringRuleInfo._unmap(response) + + @cast_models + def delete_company_answering_rule(self, account_id: str, rule_id: str): + """Deletes a company custom call handling rule by a particular ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(rule_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("ruleId", rule_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def get_forward_all_company_calls( + self, account_id: str + ) -> ForwardAllCompanyCallsInfo: + """Returns information about *Forward All Company Calls* feature setting. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: ForwardAllCompanyCallsInfo + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/forward-all-calls", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ForwardAllCompanyCallsInfo._unmap(response) + + @cast_models + def update_forward_all_company_calls( + self, request_body: ForwardAllCompanyCallsRequest, account_id: str + ) -> ForwardAllCompanyCallsInfo: + """Updates *Forward All Company Calls* feature setting. + + :param request_body: The request body. + :type request_body: ForwardAllCompanyCallsRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: ForwardAllCompanyCallsInfo + """ + + Validator(ForwardAllCompanyCallsRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/forward-all-calls", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ForwardAllCompanyCallsInfo._unmap(response) + + @cast_models + def list_answering_rules( + self, + account_id: str, + extension_id: str, + type_: ListAnsweringRulesType = None, + view: ListAnsweringRulesView = None, + enabled_only: bool = None, + page: int = None, + per_page: int = None, + ) -> UserAnsweringRuleList: + """Returns call handling rules of an extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param type_: Filters custom call handling rules of the extension, defaults to None + :type type_: ListAnsweringRulesType, optional + :param view: view, defaults to None + :type view: ListAnsweringRulesView, optional + :param enabled_only: If true, then only active call handling rules are returned, defaults to None + :type enabled_only: bool, optional + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: UserAnsweringRuleList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(ListAnsweringRulesType).is_optional().validate(type_) + Validator(ListAnsweringRulesView).is_optional().validate(view) + Validator(bool).is_optional().validate(enabled_only) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/answering-rule", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("type", type_) + .add_query("view", view) + .add_query("enabledOnly", enabled_only) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return UserAnsweringRuleList._unmap(response) + + @cast_models + def create_answering_rule( + self, + request_body: CreateAnsweringRuleRequest, + account_id: str, + extension_id: str, + ) -> CustomAnsweringRuleInfo: + """Creates a custom call handling rule for a particular caller ID. + + :param request_body: The request body. + :type request_body: CreateAnsweringRuleRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CustomAnsweringRuleInfo + """ + + Validator(CreateAnsweringRuleRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/answering-rule", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CustomAnsweringRuleInfo._unmap(response) + + @cast_models + def read_answering_rule( + self, + account_id: str, + extension_id: str, + rule_id: str, + show_inactive_numbers: bool = None, + ) -> AnsweringRuleInfo: + """Returns a call handling rule by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + :param show_inactive_numbers: Indicates whether inactive numbers should be returned or not, defaults to None + :type show_inactive_numbers: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: AnsweringRuleInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(rule_id) + Validator(bool).is_optional().validate(show_inactive_numbers) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("ruleId", rule_id) + .add_query("showInactiveNumbers", show_inactive_numbers) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AnsweringRuleInfo._unmap(response) + + @cast_models + def update_answering_rule( + self, + request_body: UpdateAnsweringRuleRequest, + account_id: str, + extension_id: str, + rule_id: str, + ) -> AnsweringRuleInfo: + """Updates a custom call handling rule for a particular caller ID. + + :param request_body: The request body. + :type request_body: UpdateAnsweringRuleRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: AnsweringRuleInfo + """ + + Validator(UpdateAnsweringRuleRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(rule_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("ruleId", rule_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AnsweringRuleInfo._unmap(response) + + @cast_models + def delete_answering_rule(self, account_id: str, extension_id: str, rule_id: str): + """Deletes a custom call handling rule by a particular ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param rule_id: Internal identifier of a call handling rule + :type rule_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(rule_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/answering-rule/{{ruleId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("ruleId", rule_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/call_log.py b/src/ring_central/services/call_log.py new file mode 100644 index 00000000..904ecb44 --- /dev/null +++ b/src/ring_central/services/call_log.py @@ -0,0 +1,716 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.sync_account_call_log_sync_type import SyncAccountCallLogSyncType +from ..models.status_group import StatusGroup +from ..models.recording_type import RecordingType +from ..models.read_company_call_log_view import ReadCompanyCallLogView +from ..models.conference_type import ConferenceType +from ..models.call_type_enum import CallTypeEnum +from ..models.call_transport_enum import CallTransportEnum +from ..models.call_log_sync_response import CallLogSyncResponse +from ..models.call_log_response import CallLogResponse +from ..models.call_log_record import CallLogRecord +from ..models.call_direction_enum import CallDirectionEnum + + +class CallLogService(BaseService): + + @cast_models + def read_company_call_log( + self, + account_id: str, + extension_number: str = None, + phone_number: str = None, + direction: List[CallDirectionEnum] = None, + type_: List[CallTypeEnum] = None, + view: ReadCompanyCallLogView = None, + with_recording: bool = None, + recording_type: RecordingType = None, + date_from: str = None, + date_to: str = None, + session_id: str = None, + telephony_session_id: str = None, + page: int = None, + per_page: int = None, + ) -> CallLogResponse: + """Returns call log records filtered by parameters specified. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_number: Short extension number of a user. If specified, returns call log for this particular extension only. + Cannot be combined with `phoneNumber` filter, defaults to None + :type extension_number: str, optional + :param phone_number: Phone number of a caller/callee in e.164 format without a '+' sign. If specified, all incoming/outgoing calls + from/to this phone number are returned., defaults to None + :type phone_number: str, optional + :param direction: The direction of call records to be included in the result. If omitted, both + inbound and outbound calls are returned. Multiple values are supported, defaults to None + :type direction: List[CallDirectionEnum], optional + :param type_: The type of call records to be included in the result. + If omitted, all call types are returned. Multiple values are supported, defaults to None + :type type_: List[CallTypeEnum], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param with_recording: Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. + Indicates if only recorded calls should be returned. + + If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored, defaults to None + :type with_recording: bool, optional + :param recording_type: Indicates that call records with recordings of particular type should be returned. + If omitted, then calls with and without recordings are returned, defaults to None + :type recording_type: RecordingType, optional + :param date_from: The beginning of the time range to return call records in ISO 8601 format including timezone, + for example 2016-03-10T18:07:52.534Z. The default value is `dateTo` minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: The end of the time range to return call records in ISO 8601 format including timezone, + for example 2016-03-10T18:07:52.534Z. The default value is current time, defaults to None + :type date_to: str, optional + :param session_id: Internal identifier of a call session, defaults to None + :type session_id: str, optional + :param telephony_session_id: Internal identifier of a telephony session, defaults to None + :type telephony_session_id: str, optional + :param page: Indicates the page number to retrieve. Only positive number values are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates the page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallLogResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(extension_number) + Validator(str).is_optional().validate(phone_number) + Validator(CallDirectionEnum).is_array().is_optional().validate(direction) + Validator(CallTypeEnum).is_array().is_optional().validate(type_) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(bool).is_optional().validate(with_recording) + Validator(RecordingType).is_optional().validate(recording_type) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(str).is_optional().validate(session_id) + Validator(str).is_optional().validate(telephony_session_id) + Validator(int).is_optional().min(1).validate(page) + Validator(int).is_optional().min(1).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-log", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("extensionNumber", extension_number) + .add_query("phoneNumber", phone_number) + .add_query("direction", direction) + .add_query("type", type_) + .add_query("view", view) + .add_query("withRecording", with_recording) + .add_query("recordingType", recording_type) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("sessionId", session_id) + .add_query("telephonySessionId", telephony_session_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogResponse._unmap(response) + + @cast_models + def read_company_call_record( + self, + account_id: str, + call_record_id: List[str], + view: ReadCompanyCallLogView = None, + ) -> CallLogRecord: + """Returns individual call log record(s) by ID. Batch syntax is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param call_record_id: Internal identifier of a call log record. Multiple values are supported + :type call_record_id: List[str] + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CallLogRecord + """ + + Validator(str).validate(account_id) + Validator(str).is_array().validate(call_record_id) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-log/{{callRecordId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("callRecordId", call_record_id) + .add_query("view", view) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogRecord._unmap(response) + + @cast_models + def sync_account_call_log( + self, + account_id: str, + sync_type: SyncAccountCallLogSyncType = None, + sync_token: str = None, + date_from: str = None, + record_count: int = None, + status_group: List[StatusGroup] = None, + view: ReadCompanyCallLogView = None, + show_deleted: bool = None, + with_recording: bool = None, + recording_type: RecordingType = None, + ) -> CallLogSyncResponse: + """Synchronizes company call log records. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param sync_type: Type of call log synchronization request, defaults to None + :type sync_type: SyncAccountCallLogSyncType, optional + :param sync_token: Value of syncToken property of last sync request response. Mandatory parameter for 'ISync' sync type, defaults to None + :type sync_token: str, optional + :param date_from: The start datetime for resulting records in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is the current moment, defaults to None + :type date_from: str, optional + :param record_count: For `FSync` mode this parameter is mandatory, it limits the number of records to be returned in response. + + For `ISync` mode this parameter specifies the number of records to extend the sync frame with to the past + (the maximum number of records is 250), defaults to None + :type record_count: int, optional + :param status_group: Type of calls to be returned, defaults to None + :type status_group: List[StatusGroup], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param show_deleted: Supported for `ISync` mode. Indicates that deleted call records should be returned, defaults to None + :type show_deleted: bool, optional + :param with_recording: Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. + Indicates if only recorded calls should be returned. + + If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored, defaults to None + :type with_recording: bool, optional + :param recording_type: Indicates that call records with recordings of particular type should be returned. + If omitted, then calls with and without recordings are returned, defaults to None + :type recording_type: RecordingType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallLogSyncResponse + """ + + Validator(str).validate(account_id) + Validator(SyncAccountCallLogSyncType).is_optional().validate(sync_type) + Validator(str).is_optional().validate(sync_token) + Validator(str).is_optional().validate(date_from) + Validator(int).is_optional().min(1).validate(record_count) + Validator(StatusGroup).is_array().is_optional().validate(status_group) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(bool).is_optional().validate(show_deleted) + Validator(bool).is_optional().validate(with_recording) + Validator(RecordingType).is_optional().validate(recording_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-log-sync", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("syncType", sync_type) + .add_query("syncToken", sync_token) + .add_query("dateFrom", date_from) + .add_query("recordCount", record_count) + .add_query("statusGroup", status_group) + .add_query("view", view) + .add_query("showDeleted", show_deleted) + .add_query("withRecording", with_recording) + .add_query("recordingType", recording_type) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogSyncResponse._unmap(response) + + @cast_models + def list_company_active_calls( + self, + account_id: str, + direction: List[CallDirectionEnum] = None, + view: ReadCompanyCallLogView = None, + type_: List[CallTypeEnum] = None, + transport: List[CallTransportEnum] = None, + conference_type: List[ConferenceType] = None, + page: int = None, + per_page: int = None, + ) -> CallLogResponse: + """Returns records of all calls that are in progress, ordered by start time in descending order. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param direction: The direction of call records to be included in the result. If omitted, both + inbound and outbound calls are returned. Multiple values are supported, defaults to None + :type direction: List[CallDirectionEnum], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param type_: The type of call records to be included in the result. + If omitted, all call types are returned. Multiple values are supported, defaults to None + :type type_: List[CallTypeEnum], optional + :param transport: The type of call transport. Multiple values are supported. By default, this filter is disabled, defaults to None + :type transport: List[CallTransportEnum], optional + :param conference_type: Conference call type: RCC or RC Meetings. If not specified, no conference call filter applied, defaults to None + :type conference_type: List[ConferenceType], optional + :param page: Indicates the page number to retrieve. Only positive number values are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates the page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CallLogResponse + """ + + Validator(str).validate(account_id) + Validator(CallDirectionEnum).is_array().is_optional().validate(direction) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(CallTypeEnum).is_array().is_optional().validate(type_) + Validator(CallTransportEnum).is_array().is_optional().validate(transport) + Validator(ConferenceType).is_array().is_optional().validate(conference_type) + Validator(int).is_optional().min(1).validate(page) + Validator(int).is_optional().min(1).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/active-calls", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("direction", direction) + .add_query("view", view) + .add_query("type", type_) + .add_query("transport", transport) + .add_query("conferenceType", conference_type) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogResponse._unmap(response) + + @cast_models + def read_user_call_log( + self, + account_id: str, + extension_id: str, + extension_number: str = None, + phone_number: str = None, + show_blocked: bool = None, + direction: List[CallDirectionEnum] = None, + session_id: str = None, + type_: List[CallTypeEnum] = None, + transport: List[CallTransportEnum] = None, + view: ReadCompanyCallLogView = None, + with_recording: bool = None, + recording_type: RecordingType = None, + date_to: str = None, + date_from: str = None, + telephony_session_id: str = None, + page: int = None, + per_page: int = None, + show_deleted: bool = None, + ) -> CallLogResponse: + """Returns call log records filtered by parameters specified. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param extension_number: Short extension number of a user. If specified, returns call log for this particular extension only. + Cannot be combined with `phoneNumber` filter, defaults to None + :type extension_number: str, optional + :param phone_number: Phone number of a caller/callee in e.164 format without a '+' sign. If specified, all incoming/outgoing calls + from/to this phone number are returned., defaults to None + :type phone_number: str, optional + :param show_blocked: Indicates then calls from/to blocked numbers are returned, defaults to None + :type show_blocked: bool, optional + :param direction: The direction of call records to be included in the result. If omitted, both + inbound and outbound calls are returned. Multiple values are supported, defaults to None + :type direction: List[CallDirectionEnum], optional + :param session_id: Internal identifier of a call session, defaults to None + :type session_id: str, optional + :param type_: The type of call records to be included in the result. + If omitted, all call types are returned. Multiple values are supported, defaults to None + :type type_: List[CallTypeEnum], optional + :param transport: The type of call transport. Multiple values are supported. By default, this filter is disabled, defaults to None + :type transport: List[CallTransportEnum], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param with_recording: Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. + Indicates if only recorded calls should be returned. + + If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored, defaults to None + :type with_recording: bool, optional + :param recording_type: Indicates that call records with recordings of particular type should be returned. + If omitted, then calls with and without recordings are returned, defaults to None + :type recording_type: RecordingType, optional + :param date_to: The end of the time range to return call records in ISO 8601 format including timezone, + for example 2016-03-10T18:07:52.534Z. The default value is current time, defaults to None + :type date_to: str, optional + :param date_from: The beginning of the time range to return call records in ISO 8601 format including timezone, + for example 2016-03-10T18:07:52.534Z. The default value is `dateTo` minus 24 hours, defaults to None + :type date_from: str, optional + :param telephony_session_id: Internal identifier of a telephony session, defaults to None + :type telephony_session_id: str, optional + :param page: Indicates the page number to retrieve. Only positive number values are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates the page size (number of items). The default value is 100. + The maximum value for `Simple` view is 1000, for `Detailed` view - 250, defaults to None + :type per_page: int, optional + :param show_deleted: Indicates that deleted calls records should be returned, defaults to None + :type show_deleted: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallLogResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(extension_number) + Validator(str).is_optional().validate(phone_number) + Validator(bool).is_optional().validate(show_blocked) + Validator(CallDirectionEnum).is_array().is_optional().validate(direction) + Validator(str).is_optional().validate(session_id) + Validator(CallTypeEnum).is_array().is_optional().validate(type_) + Validator(CallTransportEnum).is_array().is_optional().validate(transport) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(bool).is_optional().validate(with_recording) + Validator(RecordingType).is_optional().validate(recording_type) + Validator(str).is_optional().validate(date_to) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(telephony_session_id) + Validator(int).is_optional().min(1).validate(page) + Validator(int).is_optional().min(1).validate(per_page) + Validator(bool).is_optional().validate(show_deleted) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-log", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("extensionNumber", extension_number) + .add_query("phoneNumber", phone_number) + .add_query("showBlocked", show_blocked) + .add_query("direction", direction) + .add_query("sessionId", session_id) + .add_query("type", type_) + .add_query("transport", transport) + .add_query("view", view) + .add_query("withRecording", with_recording) + .add_query("recordingType", recording_type) + .add_query("dateTo", date_to) + .add_query("dateFrom", date_from) + .add_query("telephonySessionId", telephony_session_id) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("showDeleted", show_deleted) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogResponse._unmap(response) + + @cast_models + def delete_user_call_log( + self, account_id: str, extension_id: str, date_to: str = None + ): + """Deletes filtered call log records. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param date_to: The time boundary to delete all older records in ISO 8601 format including + timezone, for example *2016-03-10T18:07:52.534Z*. The default value is current time, defaults to None + :type date_to: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(date_to) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-log", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("dateTo", date_to) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_user_call_record( + self, + account_id: str, + extension_id: str, + call_record_id: List[str], + view: ReadCompanyCallLogView = None, + ) -> CallLogRecord: + """Returns call log records by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param call_record_id: Internal identifier of a call log record. Multiple values are supported + :type call_record_id: List[str] + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call Log Record + :rtype: CallLogRecord + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().validate(call_record_id) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-log/{{callRecordId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("callRecordId", call_record_id) + .add_query("view", view) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogRecord._unmap(response) + + @cast_models + def sync_user_call_log( + self, + account_id: str, + extension_id: str, + sync_type: SyncAccountCallLogSyncType = None, + sync_token: str = None, + date_from: str = None, + record_count: int = None, + status_group: List[StatusGroup] = None, + view: ReadCompanyCallLogView = None, + show_deleted: bool = None, + with_recording: bool = None, + recording_type: RecordingType = None, + ) -> CallLogSyncResponse: + """Synchronizes the user call log records. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param sync_type: Type of call log synchronization request, defaults to None + :type sync_type: SyncAccountCallLogSyncType, optional + :param sync_token: A `syncToken` value from the previous sync response (for `ISync` mode only, mandatory), defaults to None + :type sync_token: str, optional + :param date_from: The start datetime for resulting records in ISO 8601 format including + timezone, for example 2016-03-10T18:07:52.534Z. The default value is the + current moment, defaults to None + :type date_from: str, optional + :param record_count: For `FSync` mode this parameter is mandatory, it limits the number of records to be returned in response. + + For `ISync` mode this parameter specifies the number of records to extend the sync frame with to the past + (the maximum number of records is 250), defaults to None + :type record_count: int, optional + :param status_group: Type of calls to be returned, defaults to None + :type status_group: List[StatusGroup], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param show_deleted: Supported for `ISync` mode. Indicates that deleted call records should be returned, defaults to None + :type show_deleted: bool, optional + :param with_recording: Deprecated, replaced with `recordingType` filter, still supported for compatibility reasons. + Indicates if only recorded calls should be returned. + + If both `withRecording` and `recordingType` parameters are specified, then `withRecording` is ignored, defaults to None + :type with_recording: bool, optional + :param recording_type: Indicates that call records with recordings of particular type should be returned. + If omitted, then calls with and without recordings are returned, defaults to None + :type recording_type: RecordingType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CallLogSyncResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(SyncAccountCallLogSyncType).is_optional().validate(sync_type) + Validator(str).is_optional().validate(sync_token) + Validator(str).is_optional().validate(date_from) + Validator(int).is_optional().validate(record_count) + Validator(StatusGroup).is_array().is_optional().validate(status_group) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(bool).is_optional().validate(show_deleted) + Validator(bool).is_optional().validate(with_recording) + Validator(RecordingType).is_optional().validate(recording_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-log-sync", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("syncType", sync_type) + .add_query("syncToken", sync_token) + .add_query("dateFrom", date_from) + .add_query("recordCount", record_count) + .add_query("statusGroup", status_group) + .add_query("view", view) + .add_query("showDeleted", show_deleted) + .add_query("withRecording", with_recording) + .add_query("recordingType", recording_type) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogSyncResponse._unmap(response) + + @cast_models + def list_extension_active_calls( + self, + account_id: str, + extension_id: str, + direction: List[CallDirectionEnum] = None, + view: ReadCompanyCallLogView = None, + type_: List[CallTypeEnum] = None, + transport: List[CallTransportEnum] = None, + conference_type: List[ConferenceType] = None, + page: int = None, + per_page: int = None, + ) -> CallLogResponse: + """Returns records of all extension calls that are in progress, ordered + by start time in descending order. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param direction: The direction of call records to be included in the result. If omitted, both + inbound and outbound calls are returned. Multiple values are supported, defaults to None + :type direction: List[CallDirectionEnum], optional + :param view: Defines the level of details for returned call records, defaults to None + :type view: ReadCompanyCallLogView, optional + :param type_: The type of call records to be included in the result. + If omitted, all call types are returned. Multiple values are supported, defaults to None + :type type_: List[CallTypeEnum], optional + :param transport: The type of call transport. Multiple values are supported. By default, this filter is disabled, defaults to None + :type transport: List[CallTransportEnum], optional + :param conference_type: Conference call type: RCC or RC Meetings. If not specified, no conference call filter applied, defaults to None + :type conference_type: List[ConferenceType], optional + :param page: Indicates the page number to retrieve. Only positive number values are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates the page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CallLogResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(CallDirectionEnum).is_array().is_optional().validate(direction) + Validator(ReadCompanyCallLogView).is_optional().validate(view) + Validator(CallTypeEnum).is_array().is_optional().validate(type_) + Validator(CallTransportEnum).is_array().is_optional().validate(transport) + Validator(ConferenceType).is_array().is_optional().validate(conference_type) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/active-calls", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("direction", direction) + .add_query("view", view) + .add_query("type", type_) + .add_query("transport", transport) + .add_query("conferenceType", conference_type) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallLogResponse._unmap(response) diff --git a/src/ring_central/services/call_monitoring_groups.py b/src/ring_central/services/call_monitoring_groups.py new file mode 100644 index 00000000..13681524 --- /dev/null +++ b/src/ring_central/services/call_monitoring_groups.py @@ -0,0 +1,260 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.create_call_monitoring_group_request import ( + CreateCallMonitoringGroupRequest, +) +from ..models.call_monitoring_groups import CallMonitoringGroups +from ..models.call_monitoring_group_member_list import CallMonitoringGroupMemberList +from ..models.call_monitoring_group import CallMonitoringGroup +from ..models.call_monitoring_bulk_assign import CallMonitoringBulkAssign + + +class CallMonitoringGroupsService(BaseService): + + @cast_models + def list_call_monitoring_groups( + self, + account_id: str, + page: int = None, + per_page: int = None, + member_extension_id: str = None, + ) -> CallMonitoringGroups: + """Returns a list of call monitoring groups filtered by an extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param member_extension_id: Internal identifier of an extension that is a member of every + group within the result, defaults to None + :type member_extension_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call monitoring groups information + :rtype: CallMonitoringGroups + """ + + Validator(str).validate(account_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(str).is_optional().validate(member_extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("memberExtensionId", member_extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallMonitoringGroups._unmap(response) + + @cast_models + def create_call_monitoring_group( + self, request_body: CreateCallMonitoringGroupRequest, account_id: str + ) -> CallMonitoringGroup: + """Creates a new call monitoring group. + + :param request_body: The request body. + :type request_body: CreateCallMonitoringGroupRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call monitoring group information + :rtype: CallMonitoringGroup + """ + + Validator(CreateCallMonitoringGroupRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallMonitoringGroup._unmap(response) + + @cast_models + def update_call_monitoring_group( + self, + request_body: CreateCallMonitoringGroupRequest, + account_id: str, + group_id: str, + ) -> CallMonitoringGroup: + """Updates a call monitoring group name. + + :param request_body: The request body. + :type request_body: CreateCallMonitoringGroupRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call monitoring group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated call monitoring group information + :rtype: CallMonitoringGroup + """ + + Validator(CreateCallMonitoringGroupRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups/{{groupId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallMonitoringGroup._unmap(response) + + @cast_models + def delete_call_monitoring_group(self, account_id: str, group_id: str): + """Removes information about a call monitoring group specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call monitoring group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups/{{groupId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def update_call_monitoring_group_list( + self, request_body: CallMonitoringBulkAssign, account_id: str, group_id: str + ): + """Updates a list of call monitoring groups. + + :param request_body: The request body. + :type request_body: CallMonitoringBulkAssign + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call monitoring group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(CallMonitoringBulkAssign).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups/{{groupId}}/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_call_monitoring_group_members( + self, account_id: str, group_id: str, page: int = None, per_page: int = None + ) -> CallMonitoringGroupMemberList: + """Returns a list of members for a call monitoring group specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call monitoring group + :type group_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call monitoring group members information + :rtype: CallMonitoringGroupMemberList + """ + + Validator(str).validate(account_id) + Validator(str).validate(group_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-monitoring-groups/{{groupId}}/members", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallMonitoringGroupMemberList._unmap(response) diff --git a/src/ring_central/services/call_queues.py b/src/ring_central/services/call_queues.py new file mode 100644 index 00000000..8020a14a --- /dev/null +++ b/src/ring_central/services/call_queues.py @@ -0,0 +1,443 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.user_call_queues import UserCallQueues +from ..models.department_member_list import DepartmentMemberList +from ..models.department_bulk_assign_resource import DepartmentBulkAssignResource +from ..models.call_queues import CallQueues +from ..models.call_queue_overflow_settings_request_resource import ( + CallQueueOverflowSettingsRequestResource, +) +from ..models.call_queue_overflow_settings import CallQueueOverflowSettings +from ..models.call_queue_members import CallQueueMembers +from ..models.call_queue_details import CallQueueDetails +from ..models.call_queue_bulk_assign_resource import CallQueueBulkAssignResource + + +class CallQueuesService(BaseService): + + @cast_models + def list_call_queues( + self, + account_id: str, + page: int = None, + per_page: int = None, + member_extension_id: str = None, + ) -> CallQueues: + """Returns a call queue list. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: Indicates a page number to retrieve. Only positive number values are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param member_extension_id: Internal identifier of an extension that is a member of every group within the result, defaults to None + :type member_extension_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallQueues + """ + + Validator(str).validate(account_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(str).is_optional().validate(member_extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("memberExtensionId", member_extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallQueues._unmap(response) + + @cast_models + def read_call_queue_info(self, account_id: str, group_id: str) -> CallQueueDetails: + """Returns basic information on a call queue group extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: group_id + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call queue information + :rtype: CallQueueDetails + """ + + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallQueueDetails._unmap(response) + + @cast_models + def update_call_queue_info( + self, request_body: CallQueueDetails, account_id: str, group_id: str + ) -> CallQueueDetails: + """Updates information on a call queue group extension. + + :param request_body: The request body. + :type request_body: CallQueueDetails + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call queue group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated call queue information + :rtype: CallQueueDetails + """ + + Validator(CallQueueDetails).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallQueueDetails._unmap(response) + + @cast_models + def assign_multiple_call_queue_members( + self, request_body: CallQueueBulkAssignResource, account_id: str, group_id: str + ): + """Assigns multiple call queue members to call queue group. + + :param request_body: The request body. + :type request_body: CallQueueBulkAssignResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call queue group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(CallQueueBulkAssignResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_call_queue_members( + self, account_id: str, group_id: str, page: int = None, per_page: int = None + ) -> CallQueueMembers: + """Returns a list of call queue group members. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call queue group + :type group_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call queue group members information + :rtype: CallQueueMembers + """ + + Validator(str).validate(account_id) + Validator(str).validate(group_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}/members", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallQueueMembers._unmap(response) + + @cast_models + def list_department_members( + self, + account_id: str, + department_id: int, + page: int = None, + per_page: int = None, + ) -> DepartmentMemberList: + """Viewing user account information (including name, business name, address + and phone number/account number). Please note, that this method is + deprecated and legacy 'Department' entity corresponds to 'Call Queue' + in modern RingCentral product terminology. In order to retrieve call + queue members please use the following method + `GET/restapi/v1.0/account/{accountId}/call-queues/{groupId}/members`. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param department_id: Internal identifier of a Department extension (same as extensionId + but only the ID of a department extension is valid). Please note that + legacy 'Department' extension type corresponds to 'Call Queue' extensions + in modern RingCentral product terminology + :type department_id: int + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Department members information + :rtype: DepartmentMemberList + """ + + Validator(str).validate(account_id) + Validator(int).validate(department_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/department/{{departmentId}}/members", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("departmentId", department_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DepartmentMemberList._unmap(response) + + @cast_models + def assign_multiple_department_members( + self, account_id: str, request_body: DepartmentBulkAssignResource = None + ): + """Adds and/or removes multiple call queue members. Please note, + that this method is deprecated and legacy 'Department' entity + corresponds to 'Call Queue' in modern RingCentral product terminology. + In order to assign multiple call queue members please use the following + method `POST/restapi/v1.0/account/{accountId}/call-queues/{groupId}/bulk-assign`. + + :param request_body: The request body., defaults to None + :type request_body: DepartmentBulkAssignResource, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(DepartmentBulkAssignResource).is_optional().validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/department/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def update_user_call_queues( + self, request_body: UserCallQueues, account_id: str, extension_id: str + ) -> UserCallQueues: + """Updates a list of call queues where the user is an agent. This + is a full update request, which means that if any call queue where the user is + an agent is not mentioned in request, then the user is automatically removed + from this queue. + + :param request_body: The request body. + :type request_body: UserCallQueues + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: UserCallQueues + """ + + Validator(UserCallQueues).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-queues", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return UserCallQueues._unmap(response) + + @cast_models + def get_call_queue_overflow_settings( + self, account_id: str, call_queue_id: str + ) -> CallQueueOverflowSettings: + """Returns overflow settings for a call queue specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param call_queue_id: Internal identifier of a call queue + :type call_queue_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Call queue overflow settings + :rtype: CallQueueOverflowSettings + """ + + Validator(str).validate(account_id) + Validator(str).validate(call_queue_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{callQueueId}}/overflow-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("callQueueId", call_queue_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallQueueOverflowSettings._unmap(response) + + @cast_models + def update_call_queue_overflow_settings( + self, + request_body: CallQueueOverflowSettingsRequestResource, + account_id: str, + call_queue_id: str, + ) -> CallQueueOverflowSettings: + """Updates overflow settings for a call queue specified in path. + + :param request_body: The request body. + :type request_body: CallQueueOverflowSettingsRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param call_queue_id: Internal identifier of a call queue + :type call_queue_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated call queue overflow settings + :rtype: CallQueueOverflowSettings + """ + + Validator(CallQueueOverflowSettingsRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(call_queue_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{callQueueId}}/overflow-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("callQueueId", call_queue_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallQueueOverflowSettings._unmap(response) diff --git a/src/ring_central/services/call_recording_settings.py b/src/ring_central/services/call_recording_settings.py new file mode 100644 index 00000000..622b1f66 --- /dev/null +++ b/src/ring_central/services/call_recording_settings.py @@ -0,0 +1,248 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_call_recording_custom_greetings_type import ( + ListCallRecordingCustomGreetingsType, +) +from ..models.call_recording_settings_resource import CallRecordingSettingsResource +from ..models.call_recording_extensions import CallRecordingExtensions +from ..models.call_recording_custom_greetings import CallRecordingCustomGreetings +from ..models.bulk_account_call_recordings_resource import ( + BulkAccountCallRecordingsResource, +) + + +class CallRecordingSettingsService(BaseService): + + @cast_models + def read_call_recording_settings( + self, account_id: str + ) -> CallRecordingSettingsResource: + """Returns call recording settings. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CallRecordingSettingsResource + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallRecordingSettingsResource._unmap(response) + + @cast_models + def update_call_recording_settings( + self, account_id: str, request_body: CallRecordingSettingsResource = None + ) -> CallRecordingSettingsResource: + """Updates current call recording settings. + + :param request_body: The request body., defaults to None + :type request_body: CallRecordingSettingsResource, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Updated Call Recording Settings + :rtype: CallRecordingSettingsResource + """ + + Validator(CallRecordingSettingsResource).is_optional().validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallRecordingSettingsResource._unmap(response) + + @cast_models + def list_call_recording_custom_greetings( + self, account_id: str, type_: ListCallRecordingCustomGreetingsType = None + ) -> CallRecordingCustomGreetings: + """Returns call recording custom greetings. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param type_: type_, defaults to None + :type type_: ListCallRecordingCustomGreetingsType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CallRecordingCustomGreetings + """ + + Validator(str).validate(account_id) + Validator(ListCallRecordingCustomGreetingsType).is_optional().validate(type_) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording/custom-greetings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("type", type_) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallRecordingCustomGreetings._unmap(response) + + @cast_models + def delete_call_recording_custom_greeting_list(self, account_id: str): + """Deletes call recording custom greetings. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording/custom-greetings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def delete_call_recording_custom_greeting(self, account_id: str, greeting_id: str): + """Deletes call recording custom greeting(s). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param greeting_id: Internal identifier of a greeting + :type greeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(greeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording/custom-greetings/{{greetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("greetingId", greeting_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def update_call_recording_extension_list( + self, request_body: BulkAccountCallRecordingsResource, account_id: str + ): + """Creates or updates the list of extensions to be recorded. + + :param request_body: The request body. + :type request_body: BulkAccountCallRecordingsResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(BulkAccountCallRecordingsResource).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_call_recording_extensions( + self, account_id: str + ) -> CallRecordingExtensions: + """Returns the list of extensions to be recorded. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Extension List + :rtype: CallRecordingExtensions + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recording/extensions", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallRecordingExtensions._unmap(response) diff --git a/src/ring_central/services/call_recordings.py b/src/ring_central/services/call_recordings.py new file mode 100644 index 00000000..b033e88b --- /dev/null +++ b/src/ring_central/services/call_recordings.py @@ -0,0 +1,133 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.get_call_recording_response import GetCallRecordingResponse +from ..models.content_disposition import ContentDisposition +from ..models.call_recording_ids import CallRecordingIds + + +class CallRecordingsService(BaseService): + + @cast_models + def read_call_recording_content( + self, + account_id: str, + recording_id: str, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> any: + """Returns media content of a call recording (`audio/mpeg` or `audio/wav`) + + **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param recording_id: Internal identifier of a call recording (returned in Call Log) + :type recording_id: str + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: any + """ + + Validator(str).validate(account_id) + Validator(str).validate(recording_id) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/recording/{{recordingId}}/content", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("recordingId", recording_id) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def delete_company_call_recordings( + self, request_body: CallRecordingIds, account_id: str + ): + """Deletes company call recordings by their IDs. *Please note:* This method deletes the recording file itself, + not the record of it in the call log. + + :param request_body: The request body. + :type request_body: CallRecordingIds + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(CallRecordingIds).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_call_recording( + self, account_id: str, recording_id: str + ) -> GetCallRecordingResponse: + """Returns call recordings by ID(s). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param recording_id: Internal identifier of a call recording (returned in Call Log) + :type recording_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: GetCallRecordingResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(recording_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/recording/{{recordingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("recordingId", recording_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetCallRecordingResponse._unmap(response) diff --git a/src/ring_central/services/chats.py b/src/ring_central/services/chats.py new file mode 100644 index 00000000..bc01f266 --- /dev/null +++ b/src/ring_central/services/chats.py @@ -0,0 +1,219 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_chat_list_without_navigation import TmChatListWithoutNavigation +from ..models.tm_chat_list import TmChatList +from ..models.tm_chat_info import TmChatInfo +from ..models.list_recent_chats_new_type import ListRecentChatsNewType +from ..models.list_glip_chats_new_type import ListGlipChatsNewType + + +class ChatsService(BaseService): + + @cast_models + def list_recent_chats_new( + self, type_: List[ListRecentChatsNewType] = None, record_count: int = None + ) -> TmChatListWithoutNavigation: + """Returns recent chats where the user is a member. All records in response are sorted by the `lastModifiedTime` in descending order (the latest changed chat is displayed first on page) + + :param type_: Type of chats to be fetched. By default, all chat types are returned, defaults to None + :type type_: List[ListRecentChatsNewType], optional + :param record_count: Max number of chats to be fetched by one request (Not more than 250)., defaults to None + :type record_count: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmChatListWithoutNavigation + """ + + Validator(ListRecentChatsNewType).is_array().is_optional().validate(type_) + Validator(int).is_optional().max(250).validate(record_count) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/recent/chats", + self.get_default_headers(), + ) + .add_query("type", type_) + .add_query("recordCount", record_count) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmChatListWithoutNavigation._unmap(response) + + @cast_models + def list_glip_chats_new( + self, + type_: List[ListGlipChatsNewType] = None, + record_count: int = None, + page_token: str = None, + ) -> TmChatList: + """Returns the list of chats where the user is a member and also public teams that can be joined. + + All records in response are sorted by creation time of a chat in ascending order. + + **Chat types** + + There are multiple types of chats, including: + + * **Personal** - each user is given a dedicated "personal chat" in which they are the only member. + * **Direct** - a chat between two individuals. + * **Group** - a chat between three or more named individuals. A "group" chat has no name. + * **Team** - a chat related to a specific topic. Members can come and go freely from this chat type. + * **Everyone** - a special chat containing every individual in a company. + + :param type_: Type of chats to be fetched. By default, all type of chats will be fetched, defaults to None + :type type_: List[ListGlipChatsNewType], optional + :param record_count: Number of chats to be fetched by one request. The maximum value is 250, by default - 30., defaults to None + :type record_count: int, optional + :param page_token: Pagination token., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmChatList + """ + + Validator(ListGlipChatsNewType).is_array().is_optional().validate(type_) + Validator(int).is_optional().max(250).validate(record_count) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats", self.get_default_headers() + ) + .add_query("type", type_) + .add_query("recordCount", record_count) + .add_query("pageToken", page_token) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmChatList._unmap(response) + + @cast_models + def read_glip_chat_new(self, chat_id: str) -> TmChatInfo: + """Returns information about a chat by ID. + + **Note** 'Chat' is a general name for all types of threads including *Personal* (user's own me-chat), *Direct* (one on one chat), *Group* (chat of 3-15 participants without specific name), *Team* (chat of 2 and more participants, with a specific name), *Everyone* (company chat including all employees, with a specific name)." + + :param chat_id: Internal identifier of a chat. If tilde (~) is specified, then `/me` (Personal) chat will be returned + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmChatInfo + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmChatInfo._unmap(response) + + @cast_models + def unfavorite_glip_chat_new(self, chat_id: str): + """Removes the specified chat from the users's list of favorite chats. + + :param chat_id: Internal identifier of a chat to remove from favorite list. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/unfavorite", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def favorite_glip_chat_new(self, chat_id: str): + """Adds the specified chat to the users's list of favorite chats. + + :param chat_id: Internal identifier of a chat to add to favorite list. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/favorite", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_favorite_chats_new( + self, record_count: int = None + ) -> TmChatListWithoutNavigation: + """Returns a list of the current user's favorite chats. + + :param record_count: Max number of chats to be fetched by one request (Not more than 250)., defaults to None + :type record_count: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmChatListWithoutNavigation + """ + + Validator(int).is_optional().max(250).validate(record_count) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/favorites", + self.get_default_headers(), + ) + .add_query("recordCount", record_count) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmChatListWithoutNavigation._unmap(response) diff --git a/src/ring_central/services/company.py b/src/ring_central/services/company.py new file mode 100644 index 00000000..aeedddeb --- /dev/null +++ b/src/ring_central/services/company.py @@ -0,0 +1,318 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.send_welcome_email_v2_request import SendWelcomeEmailV2Request +from ..models.modify_account_business_address_request import ( + ModifyAccountBusinessAddressRequest, +) +from ..models.get_account_info_response import GetAccountInfoResponse +from ..models.country_list_dictionary_model import CountryListDictionaryModel +from ..models.contracted_country_list_response import ContractedCountryListResponse +from ..models.account_service_info import AccountServiceInfo +from ..models.account_info import AccountInfo +from ..models.account_business_address_resource import AccountBusinessAddressResource + + +class CompanyService(BaseService): + + @cast_models + def get_account_info_v2(self, account_id: str) -> AccountInfo: + """Returns basic information about particular RingCentral account + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: AccountInfo + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountInfo._unmap(response) + + @cast_models + def send_welcome_email_v2( + self, account_id: str, request_body: SendWelcomeEmailV2Request = None + ): + """Sends/resends welcome email to the system user of confirmed account + + :param request_body: The request body., defaults to None + :type request_body: SendWelcomeEmailV2Request, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(SendWelcomeEmailV2Request).is_optional().validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/send-welcome-email", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def send_activation_email_v2(self, account_id: str): + """Sends/resends activation email to the system user of unconfirmed account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/send-activation-email", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_account_info(self, account_id: str) -> GetAccountInfoResponse: + """Returns basic information about a particular RingCentral customer account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Account information + :rtype: GetAccountInfoResponse + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetAccountInfoResponse._unmap(response) + + @cast_models + def read_account_service_info(self, account_id: str) -> AccountServiceInfo: + """Returns the information about service plan, available features + and limitations for a particular RingCentral customer account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: AccountServiceInfo + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/service-info", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountServiceInfo._unmap(response) + + @cast_models + def read_account_business_address( + self, account_id: str + ) -> AccountBusinessAddressResource: + """Returns business address of a company. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: AccountBusinessAddressResource + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/business-address", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountBusinessAddressResource._unmap(response) + + @cast_models + def update_account_business_address( + self, request_body: ModifyAccountBusinessAddressRequest, account_id: str + ) -> AccountBusinessAddressResource: + """Updates the business address of a company that account is linked + to. + + :param request_body: The request body. + :type request_body: ModifyAccountBusinessAddressRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated company business address + :rtype: AccountBusinessAddressResource + """ + + Validator(ModifyAccountBusinessAddressRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/business-address", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AccountBusinessAddressResource._unmap(response) + + @cast_models + def list_contracted_countries(self, brand_id: str) -> ContractedCountryListResponse: + """Returns the list of contracted countries for the given brand. + + :param brand_id: brand_id + :type brand_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ContractedCountryListResponse + """ + + Validator(str).validate(brand_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/brand/{{brandId}}/contracted-country", + self.get_default_headers(), + ) + .add_path("brandId", brand_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ContractedCountryListResponse._unmap(response) + + @cast_models + def list_domestic_countries( + self, + brand_id: str, + contracted_country_id: str, + page: int = None, + per_page: int = None, + ) -> CountryListDictionaryModel: + """Returns the list of domestic countries for account contracted country and brand. + + :param brand_id: Internal identifier of a brand + :type brand_id: str + :param contracted_country_id: Internal identifier of a country + :type contracted_country_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Domestic countries list + :rtype: CountryListDictionaryModel + """ + + Validator(str).validate(brand_id) + Validator(str).validate(contracted_country_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/brand/{{brandId}}/contracted-country/{{contractedCountryId}}", + self.get_default_headers(), + ) + .add_path("brandId", brand_id) + .add_path("contractedCountryId", contracted_country_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CountryListDictionaryModel._unmap(response) diff --git a/src/ring_central/services/compliance_exports.py b/src/ring_central/services/compliance_exports.py new file mode 100644 index 00000000..7602a748 --- /dev/null +++ b/src/ring_central/services/compliance_exports.py @@ -0,0 +1,115 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_data_export_tasks_new_status import ListDataExportTasksNewStatus +from ..models.data_export_task_list import DataExportTaskList +from ..models.data_export_task import DataExportTask +from ..models.create_data_export_task_request import CreateDataExportTaskRequest + + +class ComplianceExportsService(BaseService): + + @cast_models + def list_data_export_tasks_new( + self, + status: ListDataExportTasksNewStatus = None, + page: int = None, + per_page: int = None, + ) -> DataExportTaskList: + """Returns the list of Glip data export tasks. + + :param status: Status of the task(s) to be returned. Multiple values are supported, defaults to None + :type status: ListDataExportTasksNewStatus, optional + :param page: Page number to be retrieved; value range is > 0, defaults to None + :type page: int, optional + :param per_page: Number of records to be returned per page; value range is 1 - 250, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Data Export Task List + :rtype: DataExportTaskList + """ + + Validator(ListDataExportTasksNewStatus).is_optional().validate(status) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/data-export", + self.get_default_headers(), + ) + .add_query("status", status) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DataExportTaskList._unmap(response) + + @cast_models + def create_data_export_task_new( + self, request_body: CreateDataExportTaskRequest = None + ) -> DataExportTask: + """Creates a task for Glip data export and returns a link at which the exported data will be available in future once the task is implemented. The exported data can be downloaded by calling Get Data Export Task method with the specified task ID. Simultaneously no more than 2 tasks per company can be created. + + :param request_body: The request body., defaults to None + :type request_body: CreateDataExportTaskRequest, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The task is accepted + :rtype: DataExportTask + """ + + Validator(CreateDataExportTaskRequest).is_optional().validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/data-export", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DataExportTask._unmap(response) + + @cast_models + def read_data_export_task_new(self, task_id: str) -> DataExportTask: + """Returns the links for downloading Glip data exported within the specified task. If the export task is still in progress, then only the task status will be returned. If the data is ready for downloading, then the list of URLs will be returned. + + :param task_id: Internal identifier of a task to be retrieved + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: DataExportTask + """ + + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/data-export/{{taskId}}", + self.get_default_headers(), + ) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DataExportTask._unmap(response) diff --git a/src/ring_central/services/contents.py b/src/ring_central/services/contents.py new file mode 100644 index 00000000..a5dab846 --- /dev/null +++ b/src/ring_central/services/contents.py @@ -0,0 +1,183 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.soc_msg_creation_time_order import SocMsgCreationTimeOrder +from ..models.create_content_request import CreateContentRequest +from ..models.content_status import ContentStatus +from ..models.content_model import ContentModel +from ..models.content_list import ContentList + + +class ContentsService(BaseService): + + @cast_models + def soc_msg_list_contents( + self, + intervention: List[str] = None, + identity: List[str] = None, + identity_group: List[str] = None, + source: List[str] = None, + thread: List[str] = None, + text: List[str] = None, + status: List[ContentStatus] = None, + order_by: SocMsgCreationTimeOrder = None, + page_token: str = None, + per_page: int = None, + ) -> ContentList: + """List contents by creation date. The default creation order is descending. + + The account context of this request is determined by the RC Account Id associated with the access token provided + in the Authorization header. + + The query parameters provided shall be considered an AND operation to filter the list. + + A query parameter not specified or a query parameter provided with no value is treated as not required for + filtering the list. + + :param intervention: Filter based on the specified intervention identifiers., defaults to None + :type intervention: List[str], optional + :param identity: Filter based on the specified identity identifiers., defaults to None + :type identity: List[str], optional + :param identity_group: Filter based on the specified identity group identifiers., defaults to None + :type identity_group: List[str], optional + :param source: Filter based on the specified channel identifiers., defaults to None + :type source: List[str], optional + :param thread: Filter based on the specified thread identifiers., defaults to None + :type thread: List[str], optional + :param text: Filter based on the specified text(s). Provided multiple times, the values are ANDed., defaults to None + :type text: List[str], optional + :param status: Filter for specified status., defaults to None + :type status: List[ContentStatus], optional + :param order_by: Order results by specified field., defaults to None + :type order_by: SocMsgCreationTimeOrder, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response. + :rtype: ContentList + """ + + Validator(str).is_array().is_optional().validate(intervention) + Validator(str).is_array().is_optional().validate(identity) + Validator(str).is_array().is_optional().validate(identity_group) + Validator(str).is_array().is_optional().validate(source) + Validator(str).is_array().is_optional().validate(thread) + Validator(str).is_array().is_optional().validate(text) + Validator(ContentStatus).is_array().is_optional().validate(status) + Validator(SocMsgCreationTimeOrder).is_optional().validate(order_by) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/cx/social-messaging/v1/contents", + self.get_default_headers(), + ) + .add_query("intervention", intervention) + .add_query("identity", identity) + .add_query("identityGroup", identity_group) + .add_query("source", source) + .add_query("thread", thread) + .add_query("text", text) + .add_query("status", status) + .add_query("orderBy", order_by) + .add_query("pageToken", page_token, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ContentList._unmap(response) + + @cast_models + def soc_msg_create_content( + self, request_body: CreateContentRequest + ) -> ContentModel: + """Creates new content for use in discussions. + + This request is used to reply to already-posted content or to initiate a discussion. If authorized, the + authenticated user will be used as the content author. + + Content will be created and pushed asynchronously to the channel. When the content is successfully pushed to + the channel, the Content.Exported event will be reported. + + The account context of this request is determined by the RC Account Id associated with the access token provided + in the Authorization header. + + Replying to customer content is usually possible unless the channel or conversation is read only. Composing + content, on the contrary, depends on the channel itself. + + * The channel may not support it (and be purely reactive like Instagram, Messenger, etc.). + + * Some channels (usually public accounts like Twitter or Facebook pages) allow for the publishing of content + without targeting specific individuals. + + * Some channels (usually non-public media) require specific targeting (phone number for SMS, email address + for email, customer_id, etc.) to be able to create content. This is channel-specific and detailed under the + generic parameters. + + :param request_body: The request body. + :type request_body: CreateContentRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response. + :rtype: ContentModel + """ + + Validator(CreateContentRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/cx/social-messaging/v1/contents", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ContentModel._unmap(response) + + @cast_models + def soc_msg_get_content(self, content_id: str) -> ContentModel: + """Retrieves the content from the given id. + + :param content_id: content_id + :type content_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response. + :rtype: ContentModel + """ + + Validator(str).validate(content_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/cx/social-messaging/v1/contents/{{contentId}}", + self.get_default_headers(), + ) + .add_path("contentId", content_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ContentModel._unmap(response) diff --git a/src/ring_central/services/conversations.py b/src/ring_central/services/conversations.py new file mode 100644 index 00000000..2e437822 --- /dev/null +++ b/src/ring_central/services/conversations.py @@ -0,0 +1,107 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_conversation_list import TmConversationList +from ..models.tm_conversation_info import TmConversationInfo +from ..models.create_conversation_request import CreateConversationRequest + + +class ConversationsService(BaseService): + + @cast_models + def list_glip_conversations_new( + self, record_count: int = None, page_token: str = None + ) -> TmConversationList: + """Returns the list of conversations where the user is a member. All records in response are sorted by creation time of a conversation in ascending order. Conversation is a chat of the *Group* type. + + :param record_count: Number of conversations to be fetched by one request. The maximum value is 250, by default - 30, defaults to None + :type record_count: int, optional + :param page_token: Pagination token., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmConversationList + """ + + Validator(int).is_optional().max(250).validate(record_count) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/conversations", + self.get_default_headers(), + ) + .add_query("recordCount", record_count) + .add_query("pageToken", page_token) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmConversationList._unmap(response) + + @cast_models + def create_glip_conversation_new( + self, request_body: CreateConversationRequest + ) -> TmConversationInfo: + """Creates a new conversation or opens the existing one. If the conversation already exists, then its ID will be returned in response. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation (group), it creates a whole new conversation. + + :param request_body: The request body. + :type request_body: CreateConversationRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Conversation is opened + :rtype: TmConversationInfo + """ + + Validator(CreateConversationRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/conversations", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmConversationInfo._unmap(response) + + @cast_models + def read_glip_conversation_new(self, chat_id: str) -> TmConversationInfo: + """Returns information about the specified conversation, including the list of conversation participants. A conversation is an adhoc discussion between a particular set of users, not featuring any specific name or description; it is a chat of 'Group' type. If you add a person to the existing conversation, it creates a whole new conversation. + + :param chat_id: Internal identifier of a conversation to be returned. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmConversationInfo + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/conversations/{{chatId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmConversationInfo._unmap(response) diff --git a/src/ring_central/services/custom_fields.py b/src/ring_central/services/custom_fields.py new file mode 100644 index 00000000..be2e9a0e --- /dev/null +++ b/src/ring_central/services/custom_fields.py @@ -0,0 +1,151 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.custom_field_update_request import CustomFieldUpdateRequest +from ..models.custom_field_model import CustomFieldModel +from ..models.custom_field_list import CustomFieldList +from ..models.custom_field_create_request import CustomFieldCreateRequest + + +class CustomFieldsService(BaseService): + + @cast_models + def list_custom_fields(self, account_id: str) -> CustomFieldList: + """Returns the list of created custom fields. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CustomFieldList + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/custom-fields", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CustomFieldList._unmap(response) + + @cast_models + def create_custom_field( + self, request_body: CustomFieldCreateRequest, account_id: str + ) -> CustomFieldModel: + """Creates custom field attached to the object. + + :param request_body: The request body. + :type request_body: CustomFieldCreateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CustomFieldModel + """ + + Validator(CustomFieldCreateRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/custom-fields", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CustomFieldModel._unmap(response) + + @cast_models + def update_custom_field( + self, request_body: CustomFieldUpdateRequest, account_id: str, field_id: str + ) -> CustomFieldModel: + """Updates custom field by ID specified in path. + + :param request_body: The request body. + :type request_body: CustomFieldUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param field_id: Custom field identifier + :type field_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: CustomFieldModel + """ + + Validator(CustomFieldUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(field_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/custom-fields/{{fieldId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("fieldId", field_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CustomFieldModel._unmap(response) + + @cast_models + def delete_custom_field(self, account_id: str, field_id: str): + """Deletes custom field(s) by ID(s) with the corresponding values. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param field_id: Custom field identifier + :type field_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(field_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/custom-fields/{{fieldId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("fieldId", field_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/delegation_management.py b/src/ring_central/services/delegation_management.py new file mode 100644 index 00000000..252624e3 --- /dev/null +++ b/src/ring_central/services/delegation_management.py @@ -0,0 +1,45 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.delegators_list_result import DelegatorsListResult + + +class DelegationManagementService(BaseService): + + @cast_models + def rcv_list_delegators( + self, account_id: str, extension_id: str + ) -> DelegatorsListResult: + """Returns the list of users who can delegate bridge/meeting creation to the given user. + + :param account_id: account_id + :type account_id: str + :param extension_id: extension_id + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: DelegatorsListResult + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v1/accounts/{{accountId}}/extensions/{{extensionId}}/delegators", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DelegatorsListResult._unmap(response) diff --git a/src/ring_central/services/device_sip_registration.py b/src/ring_central/services/device_sip_registration.py new file mode 100644 index 00000000..47ba41e9 --- /dev/null +++ b/src/ring_central/services/device_sip_registration.py @@ -0,0 +1,42 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.create_sip_registration_response import CreateSipRegistrationResponse +from ..models.create_sip_registration_request import CreateSipRegistrationRequest + + +class DeviceSipRegistrationService(BaseService): + + @cast_models + def create_sip_registration( + self, request_body: CreateSipRegistrationRequest + ) -> CreateSipRegistrationResponse: + """Creates SIP registration of a device/application (WebPhone, Mobile, Softphone). + + :param request_body: The request body. + :type request_body: CreateSipRegistrationRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: CreateSipRegistrationResponse + """ + + Validator(CreateSipRegistrationRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/client-info/sip-provision", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CreateSipRegistrationResponse._unmap(response) diff --git a/src/ring_central/services/devices.py b/src/ring_central/services/devices.py new file mode 100644 index 00000000..9a5142f5 --- /dev/null +++ b/src/ring_central/services/devices.py @@ -0,0 +1,477 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.swap_device_request import SwapDeviceRequest +from ..models.sip_info_resource import SipInfoResource +from ..models.remove_line_response import RemoveLineResponse +from ..models.remove_line_request import RemoveLineRequest +from ..models.phone_line_type_enum import PhoneLineTypeEnum +from ..models.list_extension_devices_type import ListExtensionDevicesType +from ..models.line_pooling import LinePooling +from ..models.get_extension_devices_response import GetExtensionDevicesResponse +from ..models.device_resource import DeviceResource +from ..models.device_feature_enum import DeviceFeatureEnum +from ..models.delete_device_from_inventory_response import ( + DeleteDeviceFromInventoryResponse, +) +from ..models.delete_device_from_inventory_request import ( + DeleteDeviceFromInventoryRequest, +) +from ..models.bulk_add_devices_response import BulkAddDevicesResponse +from ..models.bulk_add_devices_request import BulkAddDevicesRequest +from ..models.add_device_to_inventory_response import AddDeviceToInventoryResponse +from ..models.add_device_to_inventory_request import AddDeviceToInventoryRequest +from ..models.account_device_update import AccountDeviceUpdate + + +class DevicesService(BaseService): + + @cast_models + def add_device_to_inventory( + self, request_body: AddDeviceToInventoryRequest, account_id: str + ) -> AddDeviceToInventoryResponse: + """Adds an existing phone (customer provided device - BYOD) as an unassigned device to the account inventory. + + :param request_body: The request body. + :type request_body: AddDeviceToInventoryRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: AddDeviceToInventoryResponse + """ + + Validator(AddDeviceToInventoryRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/device-inventory", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AddDeviceToInventoryResponse._unmap(response) + + @cast_models + def delete_device_from_inventory( + self, request_body: DeleteDeviceFromInventoryRequest, account_id: str + ) -> DeleteDeviceFromInventoryResponse: + """Deletes an existing unassigned (without digital line or phone number) device or multiple devices + from the account inventory. It is possible to delete up to 10 devices per request. + + :param request_body: The request body. + :type request_body: DeleteDeviceFromInventoryRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful operation + :rtype: DeleteDeviceFromInventoryResponse + """ + + Validator(DeleteDeviceFromInventoryRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/device-inventory", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DeleteDeviceFromInventoryResponse._unmap(response) + + @cast_models + def remove_line_jws_public( + self, account_id: str, device_id: str, request_body: RemoveLineRequest = None + ) -> RemoveLineResponse: + """Disassociates a phone line (DL & Device) from an extension: + + - if the value of `keepAssetsInInventory` is `true`, + the given device is moved to unassigned devices and the number is moved to the number inventory; + - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account; + - if the parameter `keepAssetsInInventory` is not set (empty body), default value `true` is set. + + :param request_body: The request body., defaults to None + :type request_body: RemoveLineRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param device_id: Internal identifier of a source device + :type device_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (when `keepAssetsInInventory` is `true`) + + :rtype: RemoveLineResponse + """ + + Validator(RemoveLineRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(device_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/devices/{{deviceId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("deviceId", device_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return RemoveLineResponse._unmap(response) + + @cast_models + def bulk_add_devices_v2( + self, request_body: BulkAddDevicesRequest, account_id: str + ) -> BulkAddDevicesResponse: + """Adds multiple BYOD (customer provided) devices to an account. + + :param request_body: The request body. + :type request_body: BulkAddDevicesRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: BulkAddDevicesResponse + """ + + Validator(BulkAddDevicesRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/devices/bulk-add", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BulkAddDevicesResponse._unmap(response) + + @cast_models + def replace_devices_jws_public( + self, + request_body: SwapDeviceRequest, + account_id: str, + extension_id: str, + device_id: str, + ): + """Replaces the user device with another device, which is assigned to an extension + or is stored in the inventory of the same account. + Currently, the following device types can be swapped - `HardPhone` and `OtherPhone`. + + Please note: + + - This method allows replacing a device itself, while a phone number, + a digital Line and an emergency address associated with this device remain unchanged + and will still work together in a chain with the replacement device. + - If a target device is from the inventory, then a source device will be moved + to the inventory, and a target device will be assigned to the current extension. + - If a target device is currently assigned to another extension, + then the devices will be just swapped. + + :param request_body: The request body. + :type request_body: SwapDeviceRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param device_id: Internal identifier of a source device that is currently assigned to the given extension + :type device_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(SwapDeviceRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(device_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/extensions/{{extensionId}}/devices/{{deviceId}}/replace", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("deviceId", device_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_device( + self, account_id: str, device_id: str, sync_emergency_address: bool = None + ) -> DeviceResource: + """Returns account device(s) by their ID(s). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param device_id: Internal identifier of a device + :type device_id: str + :param sync_emergency_address: Specifies if an emergency address should be synchronized or not, defaults to None + :type sync_emergency_address: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Account device(s) information + :rtype: DeviceResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(device_id) + Validator(bool).is_optional().validate(sync_emergency_address) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/device/{{deviceId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("deviceId", device_id) + .add_query("syncEmergencyAddress", sync_emergency_address) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DeviceResource._unmap(response) + + @cast_models + def update_device( + self, + request_body: AccountDeviceUpdate, + account_id: str, + device_id: str, + prestatement: bool = None, + ) -> DeviceResource: + """Updates account device(s) by their ID(s). + + :param request_body: The request body. + :type request_body: AccountDeviceUpdate + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param device_id: Internal identifier of a device + :type device_id: str + :param prestatement: prestatement, defaults to None + :type prestatement: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated device(s) information + :rtype: DeviceResource + """ + + Validator(AccountDeviceUpdate).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(device_id) + Validator(bool).is_optional().validate(prestatement) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/device/{{deviceId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("deviceId", device_id) + .add_query("prestatement", prestatement) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DeviceResource._unmap(response) + + @cast_models + def read_device_sip_info(self, account_id: str, device_id: str) -> SipInfoResource: + """Returns device SIP information. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param device_id: Internal identifier of a device + :type device_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Device SIP information + :rtype: SipInfoResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(device_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/device/{{deviceId}}/sip-info", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("deviceId", device_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SipInfoResource._unmap(response) + + @cast_models + def update_device_emergency( + self, request_body: AccountDeviceUpdate, account_id: str, device_id: str + ) -> DeviceResource: + """Updates account device emergency information. + + :param request_body: The request body. + :type request_body: AccountDeviceUpdate + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param device_id: Internal identifier of a device + :type device_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated emergency information of a device + :rtype: DeviceResource + """ + + Validator(AccountDeviceUpdate).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(device_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/device/{{deviceId}}/emergency", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("deviceId", device_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DeviceResource._unmap(response) + + @cast_models + def list_extension_devices( + self, + account_id: str, + extension_id: str, + page: int = None, + per_page: int = None, + line_pooling: LinePooling = None, + feature: DeviceFeatureEnum = None, + type_: ListExtensionDevicesType = None, + line_type: PhoneLineTypeEnum = None, + ) -> GetExtensionDevicesResponse: + """Returns devices of an extension or multiple extensions by their ID(s). Batch request + is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param line_pooling: Pooling type of device - Host - a device with standalone paid phone line which can be linked to a soft client instance - Guest - a device with a linked phone line - None - a device without a phone line or with specific line (free, BLA, etc.), defaults to None + :type line_pooling: LinePooling, optional + :param feature: Device feature or multiple features supported, defaults to None + :type feature: DeviceFeatureEnum, optional + :param type_: Device type, defaults to None + :type type_: ListExtensionDevicesType, optional + :param line_type: Phone line type, defaults to None + :type line_type: PhoneLineTypeEnum, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Extension devices information + :rtype: GetExtensionDevicesResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(LinePooling).is_optional().validate(line_pooling) + Validator(DeviceFeatureEnum).is_optional().validate(feature) + Validator(ListExtensionDevicesType).is_optional().validate(type_) + Validator(PhoneLineTypeEnum).is_optional().validate(line_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/device", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("linePooling", line_pooling) + .add_query("feature", feature) + .add_query("type", type_) + .add_query("lineType", line_type) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionDevicesResponse._unmap(response) diff --git a/src/ring_central/services/extensions.py b/src/ring_central/services/extensions.py new file mode 100644 index 00000000..5519a695 --- /dev/null +++ b/src/ring_central/services/extensions.py @@ -0,0 +1,280 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.user_templates import UserTemplates +from ..models.template_info import TemplateInfo +from ..models.list_user_templates_type import ListUserTemplatesType +from ..models.list_extensions_type import ListExtensionsType +from ..models.list_extensions_status import ListExtensionsStatus +from ..models.get_extension_list_response import GetExtensionListResponse +from ..models.extension_creation_response import ExtensionCreationResponse +from ..models.extension_creation_request import ExtensionCreationRequest +from ..models.extension_bulk_update_task_resource import ExtensionBulkUpdateTaskResource +from ..models.extension_bulk_update_request import ExtensionBulkUpdateRequest + + +class ExtensionsService(BaseService): + + @cast_models + def extension_bulk_update( + self, request_body: ExtensionBulkUpdateRequest, account_id: str + ) -> ExtensionBulkUpdateTaskResource: + """Updates multiple extensions at once. Maximum 500 extensions can be updated per request. + + :param request_body: The request body. + :type request_body: ExtensionBulkUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated extensions + :rtype: ExtensionBulkUpdateTaskResource + """ + + Validator(ExtensionBulkUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension-bulk-update", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ExtensionBulkUpdateTaskResource._unmap(response) + + @cast_models + def get_extension_bulk_update_task( + self, account_id: str, task_id: str + ) -> ExtensionBulkUpdateTaskResource: + """Returns a status of a task to update multiple extensions. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Bulk update task status + :rtype: ExtensionBulkUpdateTaskResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension-bulk-update/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ExtensionBulkUpdateTaskResource._unmap(response) + + @cast_models + def list_user_templates( + self, + account_id: str, + type_: ListUserTemplatesType = None, + page: int = None, + per_page: int = None, + ) -> UserTemplates: + """Returns the list of user templates for the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param type_: Type of template, defaults to None + :type type_: ListUserTemplatesType, optional + :param page: Indicates a page number to retrieve. Only positive number values + are allowed. Default value is '1', defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items). If not specified, the value is '100' by default, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User templates information + :rtype: UserTemplates + """ + + Validator(str).validate(account_id) + Validator(ListUserTemplatesType).is_optional().validate(type_) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/templates", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("type", type_) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return UserTemplates._unmap(response) + + @cast_models + def read_user_template(self, account_id: str, template_id: str) -> TemplateInfo: + """Returns the user template by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param template_id: Internal identifier of a template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User template information + :rtype: TemplateInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("templateId", template_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TemplateInfo._unmap(response) + + @cast_models + def list_extensions( + self, + account_id: str, + extension_number: str = None, + email: str = None, + page: int = None, + per_page: int = None, + status: List[ListExtensionsStatus] = None, + type_: List[ListExtensionsType] = None, + ) -> GetExtensionListResponse: + """Returns the list of extensions created for a particular account. + All types of extensions are included in this list. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_number: Extension short number to filter records, defaults to None + :type extension_number: str, optional + :param email: Extension email address. Multiple values are accepted, defaults to None + :type email: str, optional + :param page: Indicates a page number to retrieve. Only positive number values + are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param status: Extension current state. Multiple values are supported. If 'Unassigned' + is specified, then extensions without `extensionNumber` attribute are returned. + If not specified, then all extensions are returned, defaults to None + :type status: List[ListExtensionsStatus], optional + :param type_: Extension type. Multiple values are supported. Please note + that legacy 'Department' extension type corresponds to 'Call Queue' + extensions in modern RingCentral product terminology, defaults to None + :type type_: List[ListExtensionsType], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Extension list information + :rtype: GetExtensionListResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(extension_number) + Validator(str).is_optional().validate(email) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(ListExtensionsStatus).is_array().is_optional().validate(status) + Validator(ListExtensionsType).is_array().is_optional().validate(type_) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("extensionNumber", extension_number) + .add_query("email", email) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("status", status, nullable=True) + .add_query("type", type_, nullable=True) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionListResponse._unmap(response) + + @cast_models + def create_extension( + self, request_body: ExtensionCreationRequest, account_id: str + ) -> ExtensionCreationResponse: + """Creates an extension. + + :param request_body: The request body. + :type request_body: ExtensionCreationRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created extension information + :rtype: ExtensionCreationResponse + """ + + Validator(ExtensionCreationRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ExtensionCreationResponse._unmap(response) diff --git a/src/ring_central/services/external_contacts.py b/src/ring_central/services/external_contacts.py new file mode 100644 index 00000000..39010b5e --- /dev/null +++ b/src/ring_central/services/external_contacts.py @@ -0,0 +1,553 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.sync_address_book_sync_type import SyncAddressBookSyncType +from ..models.sort_by import SortBy +from ..models.personal_contact_resource import PersonalContactResource +from ..models.personal_contact_request import PersonalContactRequest +from ..models.favorite_contact_list import FavoriteContactList +from ..models.favorite_collection import FavoriteCollection +from ..models.contact_list import ContactList +from ..models.address_book_sync import AddressBookSync +from ..models.address_book_bulk_upload_response import AddressBookBulkUploadResponse +from ..models.address_book_bulk_upload_request import AddressBookBulkUploadRequest + + +class ExternalContactsService(BaseService): + + @cast_models + def address_book_bulk_upload( + self, request_body: AddressBookBulkUploadRequest, account_id: str + ) -> AddressBookBulkUploadResponse: + """Uploads multiple contacts for multiple extensions at once. + Maximum 500 extensions can be uploaded per request. Max amount + of contacts that can be uploaded per extension is 10,000. + Each contact uploaded for a certain extension is not visible + to other extensions. + + :param request_body: The request body. + :type request_body: AddressBookBulkUploadRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Accepted + :rtype: AddressBookBulkUploadResponse + """ + + Validator(AddressBookBulkUploadRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/address-book-bulk-upload", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AddressBookBulkUploadResponse._unmap(response) + + @cast_models + def get_address_book_bulk_upload_task( + self, account_id: str, task_id: str + ) -> AddressBookBulkUploadResponse: + """Returns the status of a task on adding multiple contacts to multiple extensions. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Contacts upload task + :rtype: AddressBookBulkUploadResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/address-book-bulk-upload/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AddressBookBulkUploadResponse._unmap(response) + + @cast_models + def list_favorite_contacts( + self, account_id: str, extension_id: str + ) -> FavoriteContactList: + """Returns the list of favorite contacts of the current extension. + Favorite contacts include both company contacts (extensions) and personal + contacts (address book records). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Favorite Contact List + :rtype: FavoriteContactList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/favorite", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return FavoriteContactList._unmap(response) + + @cast_models + def update_favorite_contact_list( + self, request_body: FavoriteCollection, account_id: str, extension_id: str + ) -> FavoriteContactList: + """Updates the list of favorite contacts of the current extension. + Favorite contacts include both company contacts (extensions) and personal + contacts (address book records).**Please note**: Currently personal address + book size is limited to 10 000 contacts. + + :param request_body: The request body. + :type request_body: FavoriteCollection + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Favorite contacts list + :rtype: FavoriteContactList + """ + + Validator(FavoriteCollection).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/favorite", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return FavoriteContactList._unmap(response) + + @cast_models + def list_contacts( + self, + account_id: str, + extension_id: str, + starts_with: str = None, + sort_by: List[SortBy] = None, + page: int = None, + per_page: int = None, + phone_number: List[str] = None, + ) -> ContactList: + """Returns the user personal contacts. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param starts_with: If specified, only contacts which 'First name' or 'Last name' start + with the mentioned substring will be returned. Case-insensitive, defaults to None + :type starts_with: str, optional + :param sort_by: Sorts results by the specified property, defaults to None + :type sort_by: List[SortBy], optional + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param phone_number: Phone number in e.164 format, defaults to None + :type phone_number: List[str], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Contact list + :rtype: ContactList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(starts_with) + Validator(SortBy).is_array().is_optional().validate(sort_by) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_array().is_optional().validate(phone_number) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("startsWith", starts_with) + .add_query("sortBy", sort_by) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("phoneNumber", phone_number) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ContactList._unmap(response) + + @cast_models + def create_contact( + self, + request_body: PersonalContactRequest, + account_id: str, + extension_id: str, + dialing_plan: str = None, + ) -> PersonalContactResource: + """Creates the user personal contact. + + :param request_body: The request body. + :type request_body: PersonalContactRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param dialing_plan: Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) + format. The default value is home country of the current extension, defaults to None + :type dialing_plan: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created contact information + :rtype: PersonalContactResource + """ + + Validator(PersonalContactRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(dialing_plan) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("dialingPlan", dialing_plan) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PersonalContactResource._unmap(response) + + @cast_models + def read_contact( + self, account_id: str, extension_id: str, contact_id: List[int] + ) -> PersonalContactResource: + """Returns the user personal contact(s). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param contact_id: The list of contact identifiers (comma-separated) + :type contact_id: List[int] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User personal contact(s) information + :rtype: PersonalContactResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_array().validate(contact_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact/{{contactId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("contactId", contact_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PersonalContactResource._unmap(response) + + @cast_models + def update_contact( + self, + request_body: PersonalContactRequest, + account_id: str, + extension_id: str, + contact_id: List[int], + dialing_plan: str = None, + ) -> PersonalContactResource: + """Updates the user personal contact(s) (full resource update). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param request_body: The request body. + :type request_body: PersonalContactRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param contact_id: The list of contact identifiers (comma-separated) + :type contact_id: List[int] + :param dialing_plan: Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. + The default value is home country of the current extension, defaults to None + :type dialing_plan: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: PersonalContactResource + """ + + Validator(PersonalContactRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_array().validate(contact_id) + Validator(str).is_optional().validate(dialing_plan) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact/{{contactId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("contactId", contact_id) + .add_query("dialingPlan", dialing_plan) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PersonalContactResource._unmap(response) + + @cast_models + def patch_contact( + self, + request_body: PersonalContactRequest, + account_id: str, + extension_id: str, + contact_id: int, + dialing_plan: str = None, + ) -> PersonalContactResource: + """Updates particular values of a personal contact attributes specified in request (partial resource update). Omitted attributes will remain unchanged. + If any attribute is passed in request body with the null value, then this attribute value will be removed. + + :param request_body: The request body. + :type request_body: PersonalContactRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param contact_id: Internal identifier of a contact record in the RingCentral database + :type contact_id: int + :param dialing_plan: Country code value complying with the [ISO 3166-1 alpha-2](https://ru.wikipedia.org/wiki/ISO_3166-1_alpha-2) + format. The default value is home country of the current extension, defaults to None + :type dialing_plan: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Edited personal contact information + :rtype: PersonalContactResource + """ + + Validator(PersonalContactRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).validate(contact_id) + Validator(str).is_optional().validate(dialing_plan) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact/{{contactId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("contactId", contact_id) + .add_query("dialingPlan", dialing_plan) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PersonalContactResource._unmap(response) + + @cast_models + def delete_contact(self, account_id: str, extension_id: str, contact_id: List[int]): + """Deletes the user personal contact(s). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param contact_id: The list of contact identifiers (comma-separated) + :type contact_id: List[int] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_array().validate(contact_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book/contact/{{contactId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("contactId", contact_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def sync_address_book( + self, + account_id: str, + extension_id: str, + sync_type: SyncAddressBookSyncType = None, + sync_token: str = None, + per_page: int = None, + page_id: int = None, + ) -> AddressBookSync: + """Synchronizes user contacts. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param sync_type: Type of synchronization, defaults to None + :type sync_type: SyncAddressBookSyncType, optional + :param sync_token: Value of syncToken property of the last sync request response, defaults to None + :type sync_token: str, optional + :param per_page: Number of records per page to be returned. Max number of + records is 250, which is also the default. + For 'FSync' - if the number of records exceeds the parameter value + (either specified or default), all of the pages can be retrieved + in several requests. For 'ISync' - if the number of records exceeds + page size, then the number of incoming changes to this + number is limited, defaults to None + :type per_page: int, optional + :param page_id: Internal identifier of a page. It can be obtained from the 'nextPageId' + parameter passed in response body, defaults to None + :type page_id: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Synchronized user contacts + :rtype: AddressBookSync + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(SyncAddressBookSyncType).is_optional().validate(sync_type) + Validator(str).is_optional().validate(sync_token) + Validator(int).is_optional().validate(per_page) + Validator(int).is_optional().validate(page_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/address-book-sync", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("syncType", sync_type) + .add_query("syncToken", sync_token) + .add_query("perPage", per_page) + .add_query("pageId", page_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AddressBookSync._unmap(response) diff --git a/src/ring_central/services/fax.py b/src/ring_central/services/fax.py new file mode 100644 index 00000000..a74c5877 --- /dev/null +++ b/src/ring_central/services/fax.py @@ -0,0 +1,91 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_fax_cover_pages_response import ListFaxCoverPagesResponse +from ..models.fax_response import FaxResponse +from ..models.create_fax_message_request import CreateFaxMessageRequest + + +class FaxService(BaseService): + + @cast_models + def create_fax_message( + self, request_body: dict, account_id: str, extension_id: str + ) -> FaxResponse: + """Creates and sends/re-sends a fax message. Re-send can be implemented + if sending has failed. Fax attachment size (both single and total) is + limited to 50Mb. + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Fax message + :rtype: FaxResponse + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/fax", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return FaxResponse._unmap(response) + + @cast_models + def list_fax_cover_pages( + self, page: int = None, per_page: int = None + ) -> ListFaxCoverPagesResponse: + """Returns fax cover pages available for the current extension. + + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of fax cover pages + :rtype: ListFaxCoverPagesResponse + """ + + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/fax-cover-page", + self.get_default_headers(), + ) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ListFaxCoverPagesResponse._unmap(response) diff --git a/src/ring_central/services/features.py b/src/ring_central/services/features.py new file mode 100644 index 00000000..7515bda1 --- /dev/null +++ b/src/ring_central/services/features.py @@ -0,0 +1,87 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.feature_list import FeatureList + + +class FeaturesService(BaseService): + + @cast_models + def read_extension_features( + self, + account_id: str, + extension_id: str, + available_only: bool = None, + feature_id: List[str] = None, + ) -> FeatureList: + """Returns a list of supported features and the information on their + availability for the current extension. Particular feature(s) can + be checked by providing `featureId` query parameter. Multiple values + are supported in the format: `?featureId=Feature1&featureId=Feature2`. + To get only available features in order to decrease response size, + `availableOnly=true` query param can be specified. If a feature + is available for the current user, `"available": true` is returned in + response for the record with the corresponding feature ID. Otherwise, + the additional attribute `reason` is returned with the appropriate code: + - `ServicePlanLimitation` - a feature is not included in account service plan; + - `AccountLimitation` - a feature is turned off for account; + - `ExtensionTypeLimitation` - a feature is not applicable for extension type; + - `ExtensionLimitation` - a feature is not available for extension, e.g., additional license required; + - `InsufficientPermissions` - required permission is not granted to the current user (not the one, who is specified in the URL, but the one who is calling this API); + - `ConfigurationLimitation` - a feature is turned off for extension, e.g., by account administrator. + + Also, some features may have additional parameters, e.g. limits, which are returned in `params` attribute as a name-value collection: + + { + "id": "HUD", + "available": true, + "params": [ + { + "name": "limitMax", + "value": "100" + } + ] + } + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param available_only: Allows to filter features by availability for an extension, defaults to None + :type available_only: bool, optional + :param feature_id: Internal identifier(s) of the feature(s), defaults to None + :type feature_id: List[str], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Feature list + :rtype: FeatureList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(available_only) + Validator(str).is_array().is_optional().validate(feature_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/features", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("availableOnly", available_only) + .add_query("featureId", feature_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return FeatureList._unmap(response) diff --git a/src/ring_central/services/greetings.py b/src/ring_central/services/greetings.py new file mode 100644 index 00000000..2c0c9ae2 --- /dev/null +++ b/src/ring_central/services/greetings.py @@ -0,0 +1,329 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_standard_greetings_usage_type import ListStandardGreetingsUsageType +from ..models.list_standard_greetings_type import ListStandardGreetingsType +from ..models.greetings_create_custom_user_greeting_request_1 import ( + GreetingsCreateCustomUserGreetingRequest1, +) +from ..models.greetings_create_company_greeting_request_1 import ( + GreetingsCreateCompanyGreetingRequest1, +) +from ..models.dictionary_greeting_list import DictionaryGreetingList +from ..models.dictionary_greeting_info import DictionaryGreetingInfo +from ..models.custom_user_greeting_info import CustomUserGreetingInfo +from ..models.custom_company_greeting_info import CustomCompanyGreetingInfo +from ..models.content_disposition import ContentDisposition + + +class GreetingsService(BaseService): + + @cast_models + def read_account_greeting_content( + self, + account_id: str, + greeting_id: str, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> any: + """Returns account-level greeting media contents. + + **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param greeting_id: Internal identifier of a greeting + :type greeting_id: str + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: any + """ + + Validator(str).validate(account_id) + Validator(str).validate(greeting_id) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/greeting/{{greetingId}}/content", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("greetingId", greeting_id) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_greeting_content( + self, + account_id: str, + extension_id: str, + greeting_id: str, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> any: + """Returns extension-level greeting media contents. + + **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param greeting_id: Internal identifier of a greeting + :type greeting_id: str + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: any + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(greeting_id) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/greeting/{{greetingId}}/content", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("greetingId", greeting_id) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def create_company_greeting( + self, request_body: any, account_id: str + ) -> CustomCompanyGreetingInfo: + """Creates a custom company greeting. + + :param request_body: The request body. + :type request_body: any + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CustomCompanyGreetingInfo + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/greeting", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/mixed") + ) + + response = self.send_request(serialized_request) + + return CustomCompanyGreetingInfo._unmap(response) + + @cast_models + def create_custom_user_greeting( + self, request_body: any, account_id: str, extension_id: str, apply: bool = None + ) -> CustomUserGreetingInfo: + """Creates custom greeting for an extension user. + + :param request_body: The request body. + :type request_body: any + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param apply: Specifies whether to apply an answering rule or not. If set to + true then `answeringRule` parameter is mandatory. If set to false, then + the answering rule is not applied even if specified, defaults to None + :type apply: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CustomUserGreetingInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(apply) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/greeting", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("apply", apply) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/mixed") + ) + + response = self.send_request(serialized_request) + + return CustomUserGreetingInfo._unmap(response) + + @cast_models + def read_custom_greeting( + self, account_id: str, extension_id: str, greeting_id: str + ) -> CustomUserGreetingInfo: + """Returns a custom user greeting by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param greeting_id: Internal identifier of a greeting + :type greeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CustomUserGreetingInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(greeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/greeting/{{greetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("greetingId", greeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CustomUserGreetingInfo._unmap(response) + + @cast_models + def list_standard_greetings( + self, + page: int = None, + per_page: int = None, + type_: ListStandardGreetingsType = None, + usage_type: ListStandardGreetingsUsageType = None, + ) -> DictionaryGreetingList: + """Returns the list of predefined standard greetings. Custom greetings + recorded by user are not returned in response to this request. See Get Extension + Custom Greetings. + + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param type_: Type of greeting, specifying the case when the greeting is played, defaults to None + :type type_: ListStandardGreetingsType, optional + :param usage_type: Usage type of greeting, specifying if the greeting is applied for user extension or department (call queue) extension, defaults to None + :type usage_type: ListStandardGreetingsUsageType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: DictionaryGreetingList + """ + + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(ListStandardGreetingsType).is_optional().validate(type_) + Validator(ListStandardGreetingsUsageType).is_optional().validate(usage_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/greeting", + self.get_default_headers(), + ) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("type", type_) + .add_query("usageType", usage_type) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DictionaryGreetingList._unmap(response) + + @cast_models + def read_standard_greeting(self, greeting_id: str) -> DictionaryGreetingInfo: + """Returns a standard greeting by ID. + + :param greeting_id: Internal identifier of a greeting + :type greeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: DictionaryGreetingInfo + """ + + Validator(str).validate(greeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/greeting/{{greetingId}}", + self.get_default_headers(), + ) + .add_path("greetingId", greeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DictionaryGreetingInfo._unmap(response) diff --git a/src/ring_central/services/high_volume_sms.py b/src/ring_central/services/high_volume_sms.py new file mode 100644 index 00000000..266ae57b --- /dev/null +++ b/src/ring_central/services/high_volume_sms.py @@ -0,0 +1,425 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.sms_direction_enum import SmsDirectionEnum +from ..models.read_a2_psms_opt_outs_status import ReadA2PsmsOptOutsStatus +from ..models.opt_out_list_response import OptOutListResponse +from ..models.opt_out_bulk_assign_response import OptOutBulkAssignResponse +from ..models.opt_out_bulk_assign_request import OptOutBulkAssignRequest +from ..models.message_statuses_response import MessageStatusesResponse +from ..models.message_list_response import MessageListResponse +from ..models.message_details_response import MessageDetailsResponse +from ..models.message_batch_response import MessageBatchResponse +from ..models.message_batch_create_request import MessageBatchCreateRequest +from ..models.list_a2_psms_view import ListA2PsmsView +from ..models.list_a2_p_batches_status import ListA2PBatchesStatus +from ..models.batch_list_response import BatchListResponse + + +class HighVolumeSmsService(BaseService): + + @cast_models + def aggregate_a2_psms_statuses( + self, + account_id: str, + batch_id: str = None, + direction: SmsDirectionEnum = None, + date_from: str = None, + date_to: str = None, + phone_number: List[str] = None, + ) -> MessageStatusesResponse: + """Retrieves a set of message counts by message status and error codes filtered by dates, batchId and message direction. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param batch_id: Internal identifier of a message batch to filter the response, defaults to None + :type batch_id: str, optional + :param direction: Direction of a message to filter the message list result. + By default, there is no filter applied - both Inbound and Outbound messages are returned, defaults to None + :type direction: SmsDirectionEnum, optional + :param date_from: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time, defaults to None + :type date_to: str, optional + :param phone_number: List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum number of phone numbers allowed to be specified as filters is 15, defaults to None + :type phone_number: List[str], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The statuses of the messages sent by the account filtered by criteria specified in the query + :rtype: MessageStatusesResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(batch_id) + Validator(SmsDirectionEnum).is_optional().validate(direction) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(str).is_array().is_optional().validate(phone_number) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/statuses", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("batchId", batch_id) + .add_query("direction", direction) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("phoneNumber", phone_number) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageStatusesResponse._unmap(response) + + @cast_models + def list_a2_psms( + self, + account_id: str, + batch_id: str = None, + direction: SmsDirectionEnum = None, + date_from: str = None, + date_to: str = None, + view: ListA2PsmsView = None, + phone_number: List[str] = None, + page_token: str = None, + per_page: int = None, + ) -> MessageListResponse: + """Returns the list of outbound/inbound A2P messages sent from/to A2P phone numbers of the current account. The list can be filtered by message batch ID and/or phone number. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param batch_id: Internal identifier of a message batch to filter the response, defaults to None + :type batch_id: str, optional + :param direction: Direction of a message to filter the message list result. + By default, there is no filter applied - both Inbound and Outbound messages are returned, defaults to None + :type direction: SmsDirectionEnum, optional + :param date_from: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time, defaults to None + :type date_to: str, optional + :param view: Indicates if the response has to be detailed, includes text in the response if detailed, defaults to None + :type view: ListA2PsmsView, optional + :param phone_number: List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum number of phone numbers allowed to be specified as filters is 15, defaults to None + :type phone_number: List[str], optional + :param page_token: The page token of the page to be retrieved., defaults to None + :type page_token: str, optional + :param per_page: The number of messages to be returned per request, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The list of messages sent by the account and filtered by the criteria specified in the query parameters + + :rtype: MessageListResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(batch_id) + Validator(SmsDirectionEnum).is_optional().validate(direction) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(ListA2PsmsView).is_optional().validate(view) + Validator(str).is_array().is_optional().validate(phone_number) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/messages", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("batchId", batch_id) + .add_query("direction", direction) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("view", view) + .add_query("phoneNumber", phone_number) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageListResponse._unmap(response) + + @cast_models + def read_a2_psms(self, account_id: str, message_id: str) -> MessageDetailsResponse: + """Returns the details of an A2P SMS message by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param message_id: Internal identifier of a message to be retrieved + :type message_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The message is found and returned + :rtype: MessageDetailsResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(message_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/messages/{{messageId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("messageId", message_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageDetailsResponse._unmap(response) + + @cast_models + def read_a2_psms_opt_outs( + self, + account_id: str, + from_: str = None, + to: str = None, + status: ReadA2PsmsOptOutsStatus = None, + page_token: str = None, + per_page: int = None, + ) -> OptOutListResponse: + """Returns the list of numbers opted out from the account. The list + can be filtered by `to`/`from` phone number query parameters. Specifying `text/csv` + in the `Accept` header lets download the data in the CSV format. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param from_: The sender's phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format for filtering messages. + The asterisk value "*" means any number in `from` field, defaults to None + :type from_: str, optional + :param to: The receiver's phone number (`to` field) in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format for filtering messages, defaults to None + :type to: str, optional + :param status: The status (opted out, opted in, or both) to be used as the filter, defaults to None + :type status: ReadA2PsmsOptOutsStatus, optional + :param page_token: The page token of the page to be retrieved, defaults to None + :type page_token: str, optional + :param per_page: The number of records to be returned for the page, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: OptOutListResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(from_) + Validator(str).is_optional().validate(to) + Validator(ReadA2PsmsOptOutsStatus).is_optional().validate(status) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/opt-outs", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("from", from_) + .add_query("to", to) + .add_query("status", status) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return OptOutListResponse._unmap(response) + + @cast_models + def add_a2_psms_opt_outs( + self, request_body: OptOutBulkAssignRequest, account_id: str + ) -> OptOutBulkAssignResponse: + """Adds multiple opt-outs and/or opt-ins for the specified sender number and a set of recipient numbers. + + :param request_body: The request body. + :type request_body: OptOutBulkAssignRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The results of adding opt-outs and opt-ins. + :rtype: OptOutBulkAssignResponse + """ + + Validator(OptOutBulkAssignRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/opt-outs/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return OptOutBulkAssignResponse._unmap(response) + + @cast_models + def list_a2_p_batches( + self, + account_id: str, + date_from: str = None, + date_to: str = None, + from_: str = None, + status: List[ListA2PBatchesStatus] = None, + page_token: str = None, + per_page: int = None, + ) -> BatchListResponse: + """Returns the list of A2P batches sent from the current account. + The list can be filtered by message batch ID and/or from phone number. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param date_from: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the 'dateTo' minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: The end of the time range to filter the results in ISO 8601 format including timezone. Default is the current time, defaults to None + :type date_to: str, optional + :param from_: Phone number in E.164 format from which the messages are going to be sent, defaults to None + :type from_: str, optional + :param status: A list of batch statuses to filter the results, defaults to None + :type status: List[ListA2PBatchesStatus], optional + :param page_token: The page token of the page to be retrieved, defaults to None + :type page_token: str, optional + :param per_page: The number of records to be returned per page, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: The list of batches sent by the account and filtered by the criteria specified in the query parameters + + :rtype: BatchListResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(str).is_optional().validate(from_) + Validator(ListA2PBatchesStatus).is_array().is_optional().validate(status) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/batches", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("from", from_) + .add_query("status", status) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BatchListResponse._unmap(response) + + @cast_models + def create_a2_psms( + self, request_body: MessageBatchCreateRequest, account_id: str + ) -> MessageBatchResponse: + """Allows to send high volume of A2P (Application-to-Person) SMS messages + (in message batches). Only phone number with the `A2PSmsSender` feature can + be used as a sender. + + :param request_body: The request body. + :type request_body: MessageBatchCreateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Message batch created + :rtype: MessageBatchResponse + """ + + Validator(MessageBatchCreateRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/batches", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageBatchResponse._unmap(response) + + @cast_models + def read_a2_p_batch(self, account_id: str, batch_id: str) -> MessageBatchResponse: + """Returns information on a message batch. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param batch_id: Internal identifier of a message batch to be retrieved + :type batch_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Message batch information + :rtype: MessageBatchResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(batch_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/a2p-sms/batches/{{batchId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("batchId", batch_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageBatchResponse._unmap(response) diff --git a/src/ring_central/services/historical_recordings.py b/src/ring_central/services/historical_recordings.py new file mode 100644 index 00000000..146b1df6 --- /dev/null +++ b/src/ring_central/services/historical_recordings.py @@ -0,0 +1,242 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.recording_status_model import RecordingStatusModel +from ..models.recording_media_type import RecordingMediaType +from ..models.recording_list_resource import RecordingListResource +from ..models.recording_item_extended_model import RecordingItemExtendedModel +from ..models.recording_download_model import RecordingDownloadModel +from ..models.recording_admin_list_resource import RecordingAdminListResource +from ..models.recording_admin_extended_item_model import RecordingAdminExtendedItemModel + + +class HistoricalRecordingsService(BaseService): + + @cast_models + def rcw_history_admin_list_recordings( + self, + creation_time_from: str, + creation_time_to: str, + name_fragment: str = None, + status: List[RecordingStatusModel] = None, + host_user_id: List[str] = None, + per_page: int = None, + page_token: str = None, + ) -> RecordingAdminListResource: + """Returns the list of webinar recordings (Administrator's interface). + The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + + :param creation_time_from: The beginning of the time window by 'creationTime' . + :type creation_time_from: str + :param creation_time_to: The end of the time window by 'creationTime' . + :type creation_time_to: str + :param name_fragment: Filter to return only webinar recordings containing particular substring within their names, defaults to None + :type name_fragment: str, optional + :param status: The status of the recording., defaults to None + :type status: List[RecordingStatusModel], optional + :param host_user_id: Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned), defaults to None + :type host_user_id: List[str], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RecordingAdminListResource + """ + + Validator(str).validate(creation_time_from) + Validator(str).validate(creation_time_to) + Validator(str).is_optional().validate(name_fragment) + Validator(RecordingStatusModel).is_array().is_optional().validate(status) + Validator(str).is_array().is_optional().validate(host_user_id) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/company/recordings", + self.get_default_headers(), + ) + .add_query("nameFragment", name_fragment) + .add_query("creationTimeFrom", creation_time_from, explode=False) + .add_query("creationTimeTo", creation_time_to, explode=False) + .add_query("status", status) + .add_query("hostUserId", host_user_id, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RecordingAdminListResource._unmap(response) + + @cast_models + def rcw_history_admin_get_recording( + self, recording_id: str + ) -> RecordingAdminExtendedItemModel: + """Returns the webinar recording by ID (Administrator's interface). + + The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + + :param recording_id: Identifier of the Webinar recording. + :type recording_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RecordingAdminExtendedItemModel + """ + + Validator(str).validate(recording_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/company/recordings/{{recordingId}}", + self.get_default_headers(), + ) + .add_path("recordingId", recording_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RecordingAdminExtendedItemModel._unmap(response) + + @cast_models + def rcw_history_list_recordings( + self, + creation_time_from: str, + creation_time_to: str, + status: List[RecordingStatusModel] = None, + per_page: int = None, + page_token: str = None, + ) -> RecordingListResource: + """Returns the list of webinar recordings for a given webinar host user + + :param creation_time_from: The beginning of the time window by 'creationTime' . + :type creation_time_from: str + :param creation_time_to: The end of the time window by 'creationTime' . + :type creation_time_to: str + :param status: The status of the recording., defaults to None + :type status: List[RecordingStatusModel], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RecordingListResource + """ + + Validator(str).validate(creation_time_from) + Validator(str).validate(creation_time_to) + Validator(RecordingStatusModel).is_array().is_optional().validate(status) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/recordings", + self.get_default_headers(), + ) + .add_query("creationTimeFrom", creation_time_from, explode=False) + .add_query("creationTimeTo", creation_time_to, explode=False) + .add_query("status", status) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RecordingListResource._unmap(response) + + @cast_models + def rcw_history_get_recording( + self, recording_id: str + ) -> RecordingItemExtendedModel: + """Returns the webinar recording by ID (Webinar host's interface). + This API also returns sharing link if sharing is enabled. + + :param recording_id: Identifier of the Webinar recording. + :type recording_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RecordingItemExtendedModel + """ + + Validator(str).validate(recording_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/recordings/{{recordingId}}", + self.get_default_headers(), + ) + .add_path("recordingId", recording_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RecordingItemExtendedModel._unmap(response) + + @cast_models + def rcw_history_get_recording_download( + self, recording_id: str, recording_media_type: RecordingMediaType = None + ) -> RecordingDownloadModel: + """Returns the webinar recording download link (both Webinar host's and admin interface). + + If called by a webinar host, the API returns error (403) if recording downloading is prohibited by company settings. + The admin user who has "WebinarSettings" permission should be able to download recording regardless of current company settings. + + :param recording_id: Identifier of the Webinar recording. + :type recording_id: str + :param recording_media_type: Download file media type. + - Type 'Video' refers to a multiplexed audio and video file. + - Type 'Audio' refers to an audio only file. + - Unless specified by this query parameter, a video file is returned by default when a recording is downloaded., defaults to None + :type recording_media_type: RecordingMediaType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RecordingDownloadModel + """ + + Validator(str).validate(recording_id) + Validator(RecordingMediaType).is_optional().validate(recording_media_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/recordings/{{recordingId}}/download", + self.get_default_headers(), + ) + .add_path("recordingId", recording_id) + .add_query("recordingMediaType", recording_media_type) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RecordingDownloadModel._unmap(response) diff --git a/src/ring_central/services/historical_webinars.py b/src/ring_central/services/historical_webinars.py new file mode 100644 index 00000000..2df99490 --- /dev/null +++ b/src/ring_central/services/historical_webinars.py @@ -0,0 +1,400 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.webinar_resource import WebinarResource +from ..models.utils.cast_models import cast_models +from ..models.session_resource import SessionResource +from ..models.session_global_list_resource import SessionGlobalListResource +from ..models.rcw_session_status_model import RcwSessionStatusModel +from ..models.rcw_role_enum import RcwRoleEnum +from ..models.participant_reduced_model import ParticipantReducedModel +from ..models.participant_list_resource import ParticipantListResource +from ..models.invitee_model import InviteeModel +from ..models.invitee_list_resource import InviteeListResource + + +class HistoricalWebinarsService(BaseService): + + @cast_models + def rcw_history_get_webinar(self, webinar_id: str) -> WebinarResource: + """Returns a historical webinar information by ID (host interface) + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WebinarResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WebinarResource._unmap(response) + + @cast_models + def rcw_history_get_session( + self, webinar_id: str, session_id: str + ) -> SessionResource: + """Returns a historical webinar Session by ID. Access allowed to participants with original role as Host or CoHost. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SessionResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SessionResource._unmap(response) + + @cast_models + def rcw_history_list_participants( + self, + webinar_id: str, + session_id: str, + role: List[RcwRoleEnum] = None, + original_role: List[RcwRoleEnum] = None, + per_page: int = None, + page_token: str = None, + ) -> ParticipantListResource: + """Returns the list of participants of a given Webinar Session (host interface). + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param role: The role of the invitee/participant., defaults to None + :type role: List[RcwRoleEnum], optional + :param original_role: The original role of the invitee/participant., defaults to None + :type original_role: List[RcwRoleEnum], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ParticipantListResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(RcwRoleEnum).is_array().is_optional().validate(role) + Validator(RcwRoleEnum).is_array().is_optional().validate(original_role) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/participants", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_query("role", role) + .add_query("originalRole", original_role) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ParticipantListResource._unmap(response) + + @cast_models + def rcw_history_get_participant_info( + self, webinar_id: str, session_id: str + ) -> ParticipantReducedModel: + """Returns the participant information specific to a webinar session. Accessible by any authenticated participant. + For a non-authenticated participant, API returns error. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ParticipantReducedModel + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/participants/self", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ParticipantReducedModel._unmap(response) + + @cast_models + def rcw_history_list_invitees( + self, + webinar_id: str, + session_id: str, + role: List[RcwRoleEnum] = None, + original_role: List[RcwRoleEnum] = None, + per_page: int = None, + page_token: str = None, + ) -> InviteeListResource: + """Returns the list of Invitees (co-hosts and panelists) of a given Webinar Session (host interface). + An implicit record created for a Webinar 'Host' is always returned. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param role: The role of the invitee/participant., defaults to None + :type role: List[RcwRoleEnum], optional + :param original_role: The original role of the invitee/participant., defaults to None + :type original_role: List[RcwRoleEnum], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: InviteeListResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(RcwRoleEnum).is_array().is_optional().validate(role) + Validator(RcwRoleEnum).is_array().is_optional().validate(original_role) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_query("role", role) + .add_query("originalRole", original_role) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return InviteeListResource._unmap(response) + + @cast_models + def rcw_history_get_invitee( + self, webinar_id: str, session_id: str, invitee_id: str + ) -> InviteeModel: + """Returns a historical session invitee information by ID (host interface). + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param invitee_id: Identifier of the Session Invitee. + :type invitee_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: InviteeModel + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(invitee_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees/{{inviteeId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_path("inviteeId", invitee_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return InviteeModel._unmap(response) + + @cast_models + def rcw_history_list_all_company_sessions( + self, + end_time_from: str, + end_time_to: str, + host_user_id: List[str] = None, + status: List[RcwSessionStatusModel] = None, + per_page: int = None, + page_token: str = None, + ) -> SessionGlobalListResource: + """Returns the list of historical Webinar Sessions hosted by particular user(s) or all company users + sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can + represent actual end time or scheduled end time. + The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + + :param end_time_from: The beginning of the time window by 'endTime' . + :type end_time_from: str + :param end_time_to: The end of the time window by 'endTime' . + :type end_time_to: str + :param host_user_id: Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned), defaults to None + :type host_user_id: List[str], optional + :param status: Filter to return only webinar sessions in certain status. Multiple values are supported., defaults to None + :type status: List[RcwSessionStatusModel], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SessionGlobalListResource + """ + + Validator(str).validate(end_time_from) + Validator(str).validate(end_time_to) + Validator(str).is_array().is_optional().validate(host_user_id) + Validator(RcwSessionStatusModel).is_array().is_optional().validate(status) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/company/sessions", + self.get_default_headers(), + ) + .add_query("hostUserId", host_user_id, explode=False) + .add_query("status", status) + .add_query("endTimeFrom", end_time_from, explode=False) + .add_query("endTimeTo", end_time_to, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SessionGlobalListResource._unmap(response) + + @cast_models + def rcw_history_list_all_sessions( + self, + end_time_from: str, + end_time_to: str, + name_fragment: str = None, + status: List[RcwSessionStatusModel] = None, + per_page: int = None, + page_token: str = None, + ) -> SessionGlobalListResource: + """Returns the list of historical Webinar Sessions hosted by a current authorized user + sorted by 'endTime' in the descending order. Depending on a session status 'endTime' can + represent actual end time or scheduled end time. + + :param end_time_from: The beginning of the time window by 'endTime' . + :type end_time_from: str + :param end_time_to: The end of the time window by 'endTime' . + :type end_time_to: str + :param name_fragment: Filter to return only webinar sessions containing particular substring within their names, defaults to None + :type name_fragment: str, optional + :param status: Filter to return only webinar sessions in certain status. Multiple values are supported., defaults to None + :type status: List[RcwSessionStatusModel], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SessionGlobalListResource + """ + + Validator(str).validate(end_time_from) + Validator(str).validate(end_time_to) + Validator(str).is_optional().validate(name_fragment) + Validator(RcwSessionStatusModel).is_array().is_optional().validate(status) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/history/v1/sessions", + self.get_default_headers(), + ) + .add_query("nameFragment", name_fragment) + .add_query("status", status) + .add_query("endTimeFrom", end_time_from, explode=False) + .add_query("endTimeTo", end_time_to, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SessionGlobalListResource._unmap(response) diff --git a/src/ring_central/services/identities.py b/src/ring_central/services/identities.py new file mode 100644 index 00000000..bb4f7577 --- /dev/null +++ b/src/ring_central/services/identities.py @@ -0,0 +1,114 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.soc_msg_creation_time_order import SocMsgCreationTimeOrder +from ..models.identity_model import IdentityModel +from ..models.identities_list import IdentitiesList + + +class IdentitiesService(BaseService): + + @cast_models + def soc_msg_list_identities( + self, + source_id: str = None, + identity_group_ids: List[str] = None, + user_id: str = None, + uuid: str = None, + order_by: SocMsgCreationTimeOrder = None, + page_token: str = None, + per_page: int = None, + ) -> IdentitiesList: + """List identities by creation date. The default order is descending. + + The account context of this request is determined by the RC Account Id associated with the access token provided + in the Authorization header. + + The query parameters provided shall be considered an AND operation to filter the list. + + A query parameter not specified or a query parameter provided with no value is treated as not required for + filtering the list. + + :param source_id: Filter based on the specified sourceId., defaults to None + :type source_id: str, optional + :param identity_group_ids: Filter based on the specified identityGroupIds (separated by commas)., defaults to None + :type identity_group_ids: List[str], optional + :param user_id: Filter based on the specified userId., defaults to None + :type user_id: str, optional + :param uuid: Filter based on the specified uuid., defaults to None + :type uuid: str, optional + :param order_by: Order results by specified field., defaults to None + :type order_by: SocMsgCreationTimeOrder, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response. + :rtype: IdentitiesList + """ + + Validator(str).is_optional().validate(source_id) + Validator(str).is_array().is_optional().validate(identity_group_ids) + Validator(str).is_optional().validate(user_id) + Validator(str).is_optional().validate(uuid) + Validator(SocMsgCreationTimeOrder).is_optional().validate(order_by) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/cx/social-messaging/v1/identities", + self.get_default_headers(), + ) + .add_query("sourceId", source_id) + .add_query("identityGroupIds", identity_group_ids, explode=False) + .add_query("userId", user_id) + .add_query("uuid", uuid) + .add_query("orderBy", order_by) + .add_query("pageToken", page_token, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return IdentitiesList._unmap(response) + + @cast_models + def soc_msg_get_identity(self, identity_id: str) -> IdentityModel: + """Renders an identity from given id. + + :param identity_id: identity_id + :type identity_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response. + :rtype: IdentityModel + """ + + Validator(str).validate(identity_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/cx/social-messaging/v1/identities/{{identityId}}", + self.get_default_headers(), + ) + .add_path("identityId", identity_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return IdentityModel._unmap(response) diff --git a/src/ring_central/services/incoming_webhooks.py b/src/ring_central/services/incoming_webhooks.py new file mode 100644 index 00000000..e43672ea --- /dev/null +++ b/src/ring_central/services/incoming_webhooks.py @@ -0,0 +1,204 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_webhook_list import TmWebhookList +from ..models.tm_webhook_info import TmWebhookInfo + + +class IncomingWebhooksService(BaseService): + + @cast_models + def list_glip_webhooks_new(self) -> TmWebhookList: + """Returns the list of all webhooks associated with the current account. + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmWebhookList + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/webhooks", + self.get_default_headers(), + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmWebhookList._unmap(response) + + @cast_models + def read_glip_webhook_new(self, webhook_id: List[str]) -> TmWebhookList: + """Returns webhooks(s) with the specified id(s). + + :param webhook_id: Internal identifier of a webhook or comma separated list of webhooks IDs + :type webhook_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmWebhookList + """ + + Validator(str).is_array().validate(webhook_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/webhooks/{{webhookId}}", + self.get_default_headers(), + ) + .add_path("webhookId", webhook_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmWebhookList._unmap(response) + + @cast_models + def delete_glip_webhook_new(self, webhook_id: str): + """Deletes a webhook by ID. + + :param webhook_id: Internal identifier of a webhook + :type webhook_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(webhook_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/webhooks/{{webhookId}}", + self.get_default_headers(), + ) + .add_path("webhookId", webhook_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def activate_glip_webhook_new(self, webhook_id: str): + """Activates a webhook by ID. + + :param webhook_id: Internal identifier of a webhook + :type webhook_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(webhook_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/webhooks/{{webhookId}}/activate", + self.get_default_headers(), + ) + .add_path("webhookId", webhook_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def suspend_glip_webhook_new(self, webhook_id: str): + """Suspends a webhook by ID. + + :param webhook_id: Internal identifier of a webhook + :type webhook_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(webhook_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/webhooks/{{webhookId}}/suspend", + self.get_default_headers(), + ) + .add_path("webhookId", webhook_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_glip_group_webhooks_new(self, group_id: str) -> TmWebhookList: + """Returns webhooks which are available for the current user by group ID. + + :param group_id: Internal identifier of a group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmWebhookList + """ + + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/groups/{{groupId}}/webhooks", + self.get_default_headers(), + ) + .add_path("groupId", group_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmWebhookList._unmap(response) + + @cast_models + def create_glip_group_webhook_new(self, group_id: str) -> TmWebhookInfo: + """Creates a new webhook. + + :param group_id: Internal identifier of a group + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmWebhookInfo + """ + + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/groups/{{groupId}}/webhooks", + self.get_default_headers(), + ) + .add_path("groupId", group_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return TmWebhookInfo._unmap(response) diff --git a/src/ring_central/services/insights.py b/src/ring_central/services/insights.py new file mode 100644 index 00000000..54f362ad --- /dev/null +++ b/src/ring_central/services/insights.py @@ -0,0 +1,46 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.interaction_input import InteractionInput +from ..models.cai_async_api_response import CaiAsyncApiResponse + + +class InsightsService(BaseService): + + @cast_models + def cai_analyze_interaction( + self, request_body: InteractionInput, webhook: str + ) -> CaiAsyncApiResponse: + """Returns multiple insights including summaries, emotion, key phrases, questions asked, and more in a single API call. + + :param request_body: The request body. + :type request_body: InteractionInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(InteractionInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/insights/v1/async/analyze-interaction", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) diff --git a/src/ring_central/services/internal_contacts.py b/src/ring_central/services/internal_contacts.py new file mode 100644 index 00000000..a368db13 --- /dev/null +++ b/src/ring_central/services/internal_contacts.py @@ -0,0 +1,230 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.type_group import TypeGroup +from ..models.search_directory_extension_type import SearchDirectoryExtensionType +from ..models.search_directory_entries_request import SearchDirectoryEntriesRequest +from ..models.per_page import PerPage +from ..models.list_directory_entries_type import ListDirectoryEntriesType +from ..models.federation_types import FederationTypes +from ..models.federation_resource import FederationResource +from ..models.directory_resource import DirectoryResource +from ..models.contact_resource import ContactResource + + +class InternalContactsService(BaseService): + + @cast_models + def list_directory_entries( + self, + account_id: str, + show_federated: bool = None, + type_: ListDirectoryEntriesType = None, + type_group: TypeGroup = None, + page: int = None, + per_page: PerPage = None, + site_id: str = None, + if_none_match: str = None, + ) -> DirectoryResource: + """Returns contact information on corporate users of federated accounts. Please note: 1. `User`, `DigitalUser`, `VirtualUser` and `FaxUser` types are returned as `User` type. 2. `ApplicationExtension` type is not returned. 3. Only extensions in `Enabled`, `Disabled` and `NotActivated` state are returned. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param show_federated: If `true` then contacts of all accounts in federation are returned. If `false` then only contacts of the current account are returned, and account section is eliminated in this case, defaults to None + :type show_federated: bool, optional + :param type_: Type of an extension. Please note that legacy 'Department' extension type corresponds to 'Call Queue' extensions in modern RingCentral product terminology, defaults to None + :type type_: ListDirectoryEntriesType, optional + :param type_group: Type of extension group, defaults to None + :type type_group: TypeGroup, optional + :param page: Page number, defaults to None + :type page: int, optional + :param per_page: Records count to be returned per one page. It can be either integer or string with the specific keyword values: + - `all` - all records are returned in one page + - `max` - maximum count of records that can be returned in one page, defaults to None + :type per_page: PerPage, optional + :param site_id: Internal identifier of the business site to which extensions belong, defaults to None + :type site_id: str, optional + :param if_none_match: User in GET requests to skip retrieving the data if the provided value matches current `ETag` associated with this resource. + The server checks the current resource ETag and returns the data only if mismatches the `If-None-Match` value, + otherwise `HTTP 304 Not Modified` status is returned., defaults to None + :type if_none_match: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Paged collection of all contacts information for a given account. Records can be empty if no data found. + :rtype: DirectoryResource + """ + + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(show_federated) + Validator(ListDirectoryEntriesType).is_optional().validate(type_) + Validator(TypeGroup).is_optional().validate(type_group) + Validator(int).is_optional().validate(page) + Validator(PerPage).is_optional().validate(per_page) + Validator(str).is_optional().validate(site_id) + Validator(str).is_optional().validate(if_none_match) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/directory/entries", + self.get_default_headers(), + ) + .add_header("If-None-Match", if_none_match) + .add_path("accountId", account_id) + .add_query("showFederated", show_federated) + .add_query("type", type_) + .add_query("typeGroup", type_group) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("siteId", site_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DirectoryResource._unmap(response) + + @cast_models + def read_directory_entry(self, account_id: str, entry_id: str) -> ContactResource: + """Returns contact information on a particular corporate user of a federated account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param entry_id: Internal identifier of extension to read information for + :type entry_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Contact information for given parameters. If value doesn't found then empty body will be returned + :rtype: ContactResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(entry_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/directory/entries/{{entryId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("entryId", entry_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ContactResource._unmap(response) + + @cast_models + def search_directory_entries( + self, + request_body: SearchDirectoryEntriesRequest, + account_id: str, + account_id_1: str = None, + department: str = None, + site_id: str = None, + extension_status: str = None, + extension_type: SearchDirectoryExtensionType = None, + ) -> DirectoryResource: + """Returns contact information on corporate users of federated accounts according to the specified filtering and ordering. + + :param request_body: The request body. + :type request_body: SearchDirectoryEntriesRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param account_id_1: A list of Account IDs, defaults to None + :type account_id_1: str, optional + :param department: A list of department names, defaults to None + :type department: str, optional + :param site_id: A list of Site IDs, defaults to None + :type site_id: str, optional + :param extension_status: Extension current state, defaults to None + :type extension_status: str, optional + :param extension_type: Extension types, defaults to None + :type extension_type: SearchDirectoryExtensionType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Paged collection of all contacts information for a given account according to filtering and ordering. Records can be empty if no data found + :rtype: DirectoryResource + """ + + Validator(SearchDirectoryEntriesRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).is_optional().validate(account_id_1) + Validator(str).is_optional().validate(department) + Validator(str).is_optional().validate(site_id) + Validator(str).is_optional().validate(extension_status) + Validator(SearchDirectoryExtensionType).is_optional().validate(extension_type) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/directory/entries/search", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("accountId", account_id_1) + .add_query("department", department) + .add_query("siteId", site_id) + .add_query("extensionStatus", extension_status) + .add_query("extensionType", extension_type) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DirectoryResource._unmap(response) + + @cast_models + def read_directory_federation( + self, + account_id: str, + types: FederationTypes = None, + rc_extension_id: str = None, + ) -> FederationResource: + """Returns information on a federation and associated accounts. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param types: Filter by federation types. Default is Regular, defaults to None + :type types: FederationTypes, optional + :param rc_extension_id: RingCentral extension id, defaults to None + :type rc_extension_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of found federations. Records array can be empty if no data found + :rtype: FederationResource + """ + + Validator(str).validate(account_id) + Validator(FederationTypes).is_optional().validate(types) + Validator(str).is_optional().validate(rc_extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/directory/federation", + self.get_default_headers(), + ) + .add_header("RCExtensionId", rc_extension_id) + .add_path("accountId", account_id) + .add_query("types", types) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return FederationResource._unmap(response) diff --git a/src/ring_central/services/invitees.py b/src/ring_central/services/invitees.py new file mode 100644 index 00000000..573c26d3 --- /dev/null +++ b/src/ring_central/services/invitees.py @@ -0,0 +1,241 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.wcs_invitee_list_resource import WcsInviteeListResource +from ..models.utils.cast_models import cast_models +from ..models.update_invitee_request import UpdateInviteeRequest +from ..models.invitee_resource import InviteeResource +from ..models.bulk_update_invitees_response import BulkUpdateInviteesResponse +from ..models.bulk_update_invitees_request import BulkUpdateInviteesRequest + + +class InviteesService(BaseService): + + @cast_models + def rcw_config_list_invitees( + self, + webinar_id: str, + session_id: str, + per_page: int = None, + page_token: str = None, + ) -> WcsInviteeListResource: + """Returns the list of Invitees (co-hosts and panelists in phase 1 + and also invited attendees in subsequent phases) of a given Webinar Session. + An implicit record created for a Webinar 'Host' is always returned. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsInviteeListResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WcsInviteeListResource._unmap(response) + + @cast_models + def rcw_config_update_invitees( + self, request_body: BulkUpdateInviteesRequest, webinar_id: str, session_id: str + ) -> BulkUpdateInviteesResponse: + """Adds, updates and deletes Webinar Session invitees in bulk (co-hosts and panelists in phase 1 + and also invited attendees in subsequent phases). + The payload may contain multiple added, updated or deleted invitees. + For each added record 'role' and either 'firstName'/'lastName'/'email' (for non-authenticated users) + or 'linkedUser.*' (for authenticated users) must be specified, but not both. + For updated invitees 'id' and 'role' must be specified, 'linkedUser' change is not supported. + For deleted invitees only there ids should be specified. + The response contains added/updated records (full) and deleted records (ids only). + + Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited. + + :param request_body: The request body. + :type request_body: BulkUpdateInviteesRequest + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: BulkUpdateInviteesResponse + """ + + Validator(BulkUpdateInviteesRequest).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BulkUpdateInviteesResponse._unmap(response) + + @cast_models + def rcw_config_get_invitee( + self, webinar_id: str, session_id: str, invitee_id: str + ) -> InviteeResource: + """Returns a Session Invitee information by ID + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param invitee_id: Identifier of the Session Invitee. + :type invitee_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: InviteeResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(invitee_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees/{{inviteeId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_path("inviteeId", invitee_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return InviteeResource._unmap(response) + + @cast_models + def rcw_config_update_invitee( + self, + request_body: UpdateInviteeRequest, + webinar_id: str, + session_id: str, + invitee_id: str, + ) -> InviteeResource: + """Updates a Session Invitee. 'role' is required (it can be changed from 'Panelist' to 'CoHost' or vise versa). + It is disallowed to update 'linkedUser': it should be done by deleting then adding an invitee. + For non-authenticated users 'firstName'/'lastName'/'email' can be specified, but not both. + Implicit record created for a Webinar 'Host' cannot be modified. + Also it is disallowed to change any other role to 'Host'. + + :param request_body: The request body. + :type request_body: UpdateInviteeRequest + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param invitee_id: Identifier of the Session Invitee. + :type invitee_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: InviteeResource + """ + + Validator(UpdateInviteeRequest).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(invitee_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees/{{inviteeId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_path("inviteeId", invitee_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return InviteeResource._unmap(response) + + @cast_models + def rcw_config_delete_invitee( + self, webinar_id: str, session_id: str, invitee_id: str + ): + """Deletes a Session Invitee. Implicit record created for a Webinar 'Host' cannot be deleted. + Deleting an invitee for a Session in 'Active' or 'Finished' status is prohibited (HTTP 403). + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + :param invitee_id: Identifier of the Session Invitee. + :type invitee_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(invitee_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}/invitees/{{inviteeId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .add_path("inviteeId", invitee_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/ivr.py b/src/ring_central/services/ivr.py new file mode 100644 index 00000000..b9673eac --- /dev/null +++ b/src/ring_central/services/ivr.py @@ -0,0 +1,377 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_ivr_prompt_request import UpdateIvrPromptRequest +from ..models.prompt_info import PromptInfo +from ..models.ivr_prompts import IvrPrompts +from ..models.ivr_menu_list import IvrMenuList +from ..models.ivr_menu_info import IvrMenuInfo +from ..models.create_ivr_prompt_request import CreateIvrPromptRequest +from ..models.content_disposition import ContentDisposition + + +class IvrService(BaseService): + + @cast_models + def read_ivr_prompt_content( + self, + account_id: str, + prompt_id: str, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> any: + """Returns media content of an IVR prompt by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param prompt_id: Internal identifier of an IVR prompt + :type prompt_id: str + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: IVR Prompt Media Data + :rtype: any + """ + + Validator(str).validate(account_id) + Validator(str).validate(prompt_id) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts/{{promptId}}/content", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("promptId", prompt_id) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_ivr_prompts(self, account_id: str) -> IvrPrompts: + """Returns the list of IVR prompts. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: IvrPrompts + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return IvrPrompts._unmap(response) + + @cast_models + def create_ivr_prompt(self, request_body: dict, account_id: str) -> PromptInfo: + """Creates an IVR prompt. + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: PromptInfo + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return PromptInfo._unmap(response) + + @cast_models + def read_ivr_prompt(self, account_id: str, prompt_id: str) -> PromptInfo: + """Returns an IVR prompt by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param prompt_id: Internal identifier of an IVR prompt + :type prompt_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Prompt Information + :rtype: PromptInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(prompt_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts/{{promptId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("promptId", prompt_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PromptInfo._unmap(response) + + @cast_models + def update_ivr_prompt( + self, + account_id: str, + prompt_id: str, + request_body: UpdateIvrPromptRequest = None, + ) -> PromptInfo: + """Updates an IVR prompt by ID + + :param request_body: The request body., defaults to None + :type request_body: UpdateIvrPromptRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param prompt_id: Internal identifier of an IVR prompt + :type prompt_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated Prompt Information + :rtype: PromptInfo + """ + + Validator(UpdateIvrPromptRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(prompt_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts/{{promptId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("promptId", prompt_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PromptInfo._unmap(response) + + @cast_models + def delete_ivr_prompt(self, account_id: str, prompt_id: str): + """Deletes an IVR prompt by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param prompt_id: Internal identifier of an IVR prompt + :type prompt_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(prompt_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-prompts/{{promptId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("promptId", prompt_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_ivr_menu_list(self, account_id: str) -> IvrMenuList: + """Returns a company IVR menus. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: IvrMenuList + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-menus", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return IvrMenuList._unmap(response) + + @cast_models + def create_ivr_menu( + self, request_body: IvrMenuInfo, account_id: str + ) -> IvrMenuInfo: + """Creates a company IVR menu. + + :param request_body: The request body. + :type request_body: IvrMenuInfo + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: IvrMenuInfo + """ + + Validator(IvrMenuInfo).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-menus", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return IvrMenuInfo._unmap(response) + + @cast_models + def read_ivr_menu(self, account_id: str, ivr_menu_id: str) -> IvrMenuInfo: + """Returns a company IVR menu by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param ivr_menu_id: Internal identifier of an IVR menu + :type ivr_menu_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: IvrMenuInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(ivr_menu_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-menus/{{ivrMenuId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("ivrMenuId", ivr_menu_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return IvrMenuInfo._unmap(response) + + @cast_models + def update_ivr_menu( + self, request_body: IvrMenuInfo, account_id: str, ivr_menu_id: str + ) -> IvrMenuInfo: + """Updates a company IVR menu by ID. + + :param request_body: The request body. + :type request_body: IvrMenuInfo + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param ivr_menu_id: Internal identifier of an IVR menu + :type ivr_menu_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: IvrMenuInfo + """ + + Validator(IvrMenuInfo).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(ivr_menu_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/ivr-menus/{{ivrMenuId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("ivrMenuId", ivr_menu_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return IvrMenuInfo._unmap(response) diff --git a/src/ring_central/services/meeting_recordings.py b/src/ring_central/services/meeting_recordings.py new file mode 100644 index 00000000..a66cb389 --- /dev/null +++ b/src/ring_central/services/meeting_recordings.py @@ -0,0 +1,101 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.cloud_recordings import CloudRecordings + + +class MeetingRecordingsService(BaseService): + + @cast_models + def get_account_recordings( + self, account_id: str, page_token: str = None, per_page: int = None + ) -> CloudRecordings: + """Returns all account recordings. + This endpoint is used in Admin recording service, not regular web + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page_token: Token to get the next page, defaults to None + :type page_token: str, optional + :param per_page: Number of records returned, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Ok + :rtype: CloudRecordings + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v1/account/{{accountId}}/recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CloudRecordings._unmap(response) + + @cast_models + def get_extension_recordings( + self, + account_id: str, + extension_id: str, + page_token: str = None, + per_page: int = None, + ) -> CloudRecordings: + """Returns all recordings available for specific extension. + This endpoint is used in admin recording service, not regular web + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param page_token: Token to get the next page, defaults to None + :type page_token: str, optional + :param per_page: Number of records returned, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Ok + :rtype: CloudRecordings + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v1/account/{{accountId}}/extension/{{extensionId}}/recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CloudRecordings._unmap(response) diff --git a/src/ring_central/services/meetings_history.py b/src/ring_central/services/meetings_history.py new file mode 100644 index 00000000..1e76eccf --- /dev/null +++ b/src/ring_central/services/meetings_history.py @@ -0,0 +1,104 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.meeting_page import MeetingPage +from ..models.meeting import Meeting +from ..models.list_video_meetings_type import ListVideoMeetingsType + + +class MeetingsHistoryService(BaseService): + + @cast_models + def list_video_meetings( + self, + text: str = None, + page_token: str = None, + per_page: int = None, + type_: ListVideoMeetingsType = None, + start_time: int = None, + end_time: int = None, + ) -> MeetingPage: + """Returns the list of user meetings. + + :param text: Search text, defaults to None + :type text: str, optional + :param page_token: Token to get the next page, defaults to None + :type page_token: str, optional + :param per_page: Number of records returned, defaults to None + :type per_page: int, optional + :param type_: Specify what kind of meeting should be returned. Possible values: All, My, Deleted, Shared + Request type meaning in meeting search: + `None` (not passed) - take meetings only where requested acc/ext is participant OR host OR deputy OR watcher. + `ALL`- access rights of meeting is equal to Alive AND requested acc/ext is in watchers list OR host OR deputy + `My`- access rights of meeting is equal to Alive AND requested acc/ext is host OR deputy + `Shared` - access rights of meeting is equal to Alive AND requested acc/ext is in watcher list AND not HOST + `Deleted` - access rights of meeting is equal to Delete and requested acc/ext is host OR deputy, defaults to None + :type type_: ListVideoMeetingsType, optional + :param start_time: Unix timestamp in milliseconds (inclusive) indicates the start time of meetings which should be included in response, defaults to None + :type start_time: int, optional + :param end_time: Unix timestamp in milliseconds (inclusive) indicates the end time of meetings which should be included in response, defaults to None + :type end_time: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Returns meetings list with pagination + :rtype: MeetingPage + """ + + Validator(str).is_optional().validate(text) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().validate(per_page) + Validator(ListVideoMeetingsType).is_optional().validate(type_) + Validator(int).is_optional().validate(start_time) + Validator(int).is_optional().validate(end_time) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v1/history/meetings", + self.get_default_headers(), + ) + .add_query("text", text) + .add_query("pageToken", page_token) + .add_query("perPage", per_page) + .add_query("type", type_) + .add_query("startTime", start_time) + .add_query("endTime", end_time) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingPage._unmap(response) + + @cast_models + def get_video_meeting(self, meeting_id: str) -> Meeting: + """Returns a user meeting by ID. + + :param meeting_id: Meeting id + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Return meeting + :rtype: Meeting + """ + + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/rcvideo/v1/history/meetings/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return Meeting._unmap(response) diff --git a/src/ring_central/services/message_exports.py b/src/ring_central/services/message_exports.py new file mode 100644 index 00000000..f2666dae --- /dev/null +++ b/src/ring_central/services/message_exports.py @@ -0,0 +1,121 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.message_store_report_archive import MessageStoreReportArchive +from ..models.message_store_report import MessageStoreReport +from ..models.create_message_store_report_request import CreateMessageStoreReportRequest + + +class MessageExportsService(BaseService): + + @cast_models + def create_message_store_report( + self, request_body: CreateMessageStoreReportRequest, account_id: str + ) -> MessageStoreReport: + """Creates a task to collect all account messages within the specified + time interval. Maximum number of simultaneous tasks per account is 2. + + :param request_body: The request body. + :type request_body: CreateMessageStoreReportRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: MessageStoreReport + """ + + Validator(CreateMessageStoreReportRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-report", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageStoreReport._unmap(response) + + @cast_models + def read_message_store_report_task( + self, account_id: str, task_id: str + ) -> MessageStoreReport: + """Returns the current status of a task on report creation. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: MessageStoreReport + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-report/{{taskId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageStoreReport._unmap(response) + + @cast_models + def read_message_store_report_archive( + self, account_id: str, task_id: str + ) -> MessageStoreReportArchive: + """Returns the created report with message data not including attachments. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: MessageStoreReportArchive + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-report/{{taskId}}/archive", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageStoreReportArchive._unmap(response) diff --git a/src/ring_central/services/message_store.py b/src/ring_central/services/message_store.py new file mode 100644 index 00000000..c092f862 --- /dev/null +++ b/src/ring_central/services/message_store.py @@ -0,0 +1,631 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_message_request import UpdateMessageRequest +from ..models.sync_type_enum import SyncTypeEnum +from ..models.patch_message_request import PatchMessageRequest +from ..models.message_type_enum import MessageTypeEnum +from ..models.message_store_configuration import MessageStoreConfiguration +from ..models.message_read_status_enum import MessageReadStatusEnum +from ..models.message_direction_enum import MessageDirectionEnum +from ..models.message_availability_enum import MessageAvailabilityEnum +from ..models.get_message_sync_response import GetMessageSyncResponse +from ..models.get_message_list import GetMessageList +from ..models.get_message_info_response import GetMessageInfoResponse +from ..models.delete_message_by_filter_type import DeleteMessageByFilterType +from ..models.content_disposition import ContentDisposition + + +class MessageStoreService(BaseService): + + @cast_models + def read_message_content( + self, + account_id: str, + extension_id: str, + message_id: str, + attachment_id: str, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> any: + """Returns media content of a message attachment. + The content is typically an audio file (`audio/mpeg` or `audio/wav`) for voicemails, + TIFF or PDF for faxes and image/audio/video for MMS. + + **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param message_id: message_id + :type message_id: str + :param attachment_id: attachment_id + :type attachment_id: str + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: any + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(message_id) + Validator(str).validate(attachment_id) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store/{{messageId}}/content/{{attachmentId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("messageId", message_id) + .add_path("attachmentId", attachment_id) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_message_store_configuration( + self, account_id: str + ) -> MessageStoreConfiguration: + """Returns message store settings. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Message store configuration + :rtype: MessageStoreConfiguration + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-configuration", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageStoreConfiguration._unmap(response) + + @cast_models + def update_message_store_configuration( + self, request_body: MessageStoreConfiguration, account_id: str + ) -> MessageStoreConfiguration: + """Updates message store settings. + + :param request_body: The request body. + :type request_body: MessageStoreConfiguration + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated message store configuration + :rtype: MessageStoreConfiguration + """ + + Validator(MessageStoreConfiguration).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-configuration", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageStoreConfiguration._unmap(response) + + @cast_models + def sync_messages( + self, + account_id: str, + extension_id: str, + conversation_id: int = None, + date_from: str = None, + date_to: str = None, + direction: List[MessageDirectionEnum] = None, + distinct_conversations: bool = None, + message_type: List[MessageTypeEnum] = None, + record_count: int = None, + sync_token: str = None, + sync_type: SyncTypeEnum = None, + voicemail_owner: List[str] = None, + ) -> GetMessageSyncResponse: + """Synchronizes messages. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param conversation_id: Conversation identifier for the resulting messages. Meaningful + for SMS and Pager messages only., defaults to None + :type conversation_id: int, optional + :param date_from: The start date/time for resulting messages in ISO 8601 format + including timezone, for example 2016-03-10T18:07:52.534Z. The default value + is dateTo minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: The end date/time for resulting messages in ISO 8601 format including + timezone, for example 2016-03-10T18:07:52.534Z. The default value is current + time, defaults to None + :type date_to: str, optional + :param direction: Direction for the resulting messages. If not specified, both + inbound and outbound messages are returned. Multiple values are accepted, defaults to None + :type direction: List[MessageDirectionEnum], optional + :param distinct_conversations: If `true`, then the latest messages per every conversation ID + are returned, defaults to None + :type distinct_conversations: bool, optional + :param message_type: Type for the resulting messages. If not specified, all types + of messages are returned. Multiple values are accepted, defaults to None + :type message_type: List[MessageTypeEnum], optional + :param record_count: Limits the number of records to be returned (works in combination + with dateFrom and dateTo if specified), defaults to None + :type record_count: int, optional + :param sync_token: A `syncToken` value from the previous sync response (for `ISync` mode only, mandatory), defaults to None + :type sync_token: str, optional + :param sync_type: Type of message synchronization, defaults to None + :type sync_type: SyncTypeEnum, optional + :param voicemail_owner: This query parameter will filter voicemail messages based on its owner. + This parameter should be controlled by the 'SharedVoicemail' feature. + If the feature is disabled this filter shouldn't be applied., defaults to None + :type voicemail_owner: List[str], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: GetMessageSyncResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_optional().validate(conversation_id) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(MessageDirectionEnum).is_array().is_optional().validate(direction) + Validator(bool).is_optional().validate(distinct_conversations) + Validator(MessageTypeEnum).is_array().is_optional().validate(message_type) + Validator(int).is_optional().validate(record_count) + Validator(str).is_optional().validate(sync_token) + Validator(SyncTypeEnum).is_optional().validate(sync_type) + Validator(str).is_array().is_optional().validate(voicemail_owner) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-sync", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("conversationId", conversation_id) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("direction", direction) + .add_query("distinctConversations", distinct_conversations) + .add_query("messageType", message_type) + .add_query("recordCount", record_count) + .add_query("syncToken", sync_token) + .add_query("syncType", sync_type) + .add_query("voicemailOwner", voicemail_owner) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetMessageSyncResponse._unmap(response) + + @cast_models + def list_messages( + self, + account_id: str, + extension_id: str, + availability: List[MessageAvailabilityEnum] = None, + conversation_id: str = None, + date_from: str = None, + date_to: str = None, + direction: List[MessageDirectionEnum] = None, + distinct_conversations: bool = None, + message_type: List[MessageTypeEnum] = None, + read_status: List[MessageReadStatusEnum] = None, + page: int = None, + per_page: int = None, + phone_number: str = None, + ) -> GetMessageList: + """Returns a list of messages from an extension mailbox. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param availability: Specifies the availability status for resulting messages. + Multiple values are accepted, defaults to None + :type availability: List[MessageAvailabilityEnum], optional + :param conversation_id: Specifies a conversation identifier for the resulting messages, defaults to None + :type conversation_id: str, optional + :param date_from: Start date/time for resulting messages in ISO 8601 format + including timezone, for example 2016-03-10T18:07:52.534Z. The default value + is dateTo minus 24 hours, defaults to None + :type date_from: str, optional + :param date_to: End date/time for resulting messages in ISO 8601 format including + timezone, for example 2016-03-10T18:07:52.534Z. The default value is current + time, defaults to None + :type date_to: str, optional + :param direction: Direction for resulting messages. If not specified, both + inbound and outbound messages are returned. Multiple values are accepted, defaults to None + :type direction: List[MessageDirectionEnum], optional + :param distinct_conversations: If `true`, then the latest messages per every conversation ID + are returned, defaults to None + :type distinct_conversations: bool, optional + :param message_type: Type of resulting messages. If not specified, all messages + without message type filtering are returned. Multiple values are accepted, defaults to None + :type message_type: List[MessageTypeEnum], optional + :param read_status: Read status for resulting messages. Multiple values are + accepted, defaults to None + :type read_status: List[MessageReadStatusEnum], optional + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param phone_number: Phone number. If specified, messages are returned for this + particular phone number only, defaults to None + :type phone_number: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Message list + :rtype: GetMessageList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(MessageAvailabilityEnum).is_array().is_optional().validate( + availability + ) + Validator(str).is_optional().validate(conversation_id) + Validator(str).is_optional().validate(date_from) + Validator(str).is_optional().validate(date_to) + Validator(MessageDirectionEnum).is_array().is_optional().validate(direction) + Validator(bool).is_optional().validate(distinct_conversations) + Validator(MessageTypeEnum).is_array().is_optional().validate(message_type) + Validator(MessageReadStatusEnum).is_array().is_optional().validate(read_status) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(str).is_optional().validate(phone_number) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("availability", availability) + .add_query("conversationId", conversation_id) + .add_query("dateFrom", date_from) + .add_query("dateTo", date_to) + .add_query("direction", direction) + .add_query("distinctConversations", distinct_conversations) + .add_query("messageType", message_type) + .add_query("readStatus", read_status) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("phoneNumber", phone_number) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetMessageList._unmap(response) + + @cast_models + def delete_message_by_filter( + self, + account_id: str, + extension_id: str, + conversation_id: List[str] = None, + date_to: str = None, + type_: DeleteMessageByFilterType = None, + ): + """Deletes conversation(s) by conversation ID(s). Batch request is + supported, max number of IDs passed as query/path parameters is 50. Alternative + syntax is supported - user conversations can be deleted by passing multiple + IDs in request body as an array of string, max number of conversation IDs + passed in request body is 100. In this case asterisk is used in the path instead + of IDs + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param conversation_id: conversation_id, defaults to None + :type conversation_id: List[str], optional + :param date_to: Messages received earlier then the date specified will be deleted. + The default value is current date/time, defaults to None + :type date_to: str, optional + :param type_: Type of messages to be deleted, defaults to None + :type type_: DeleteMessageByFilterType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().is_optional().validate(conversation_id) + Validator(str).is_optional().validate(date_to) + Validator(DeleteMessageByFilterType).is_optional().validate(type_) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("conversationId", conversation_id) + .add_query("dateTo", date_to) + .add_query("type", type_) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_message( + self, account_id: str, extension_id: str, message_id: List[str] + ) -> GetMessageInfoResponse: + """Returns an individual message record or multiple records by the given message ID(s). + The length of inbound messages is unlimited. Bulk syntax is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param message_id: Internal identifier of a message (or multiple messages in case of bulk operation) + :type message_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (single message) + :rtype: GetMessageInfoResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().validate(message_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store/{{messageId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("messageId", message_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetMessageInfoResponse._unmap(response) + + @cast_models + def update_message( + self, + request_body: UpdateMessageRequest, + account_id: str, + extension_id: str, + message_id: List[str], + ) -> GetMessageInfoResponse: + """Updates message(s) by their ID(s). Currently, only the `readStatus` + can be updated using this method. + + Bulk syntax is supported, max number of IDs passed as query/path + parameters is 50. Alternative bulk syntax is also supported - user messages can be updated + by passing multiple IDs in request body as an array of string, max number + of IDs passed in the body is 1000. In this case asterisk is used in the + path instead of IDs. + + :param request_body: The request body. + :type request_body: UpdateMessageRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param message_id: Internal identifier of a message (or multiple messages in case of bulk operation) + :type message_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (single message) + :rtype: GetMessageInfoResponse + """ + + Validator(UpdateMessageRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().validate(message_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store/{{messageId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("messageId", message_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetMessageInfoResponse._unmap(response) + + @cast_models + def patch_message( + self, + request_body: PatchMessageRequest, + account_id: str, + extension_id: str, + message_id: List[str], + ) -> GetMessageInfoResponse: + """Patches message(s) by ID(s). Currently, only updating the `readStatus` and + restoring deleted messages are supported through this method. + + For changing status of a message send `readStatus` set to either 'Read' or 'Unread' in request. + It is possible to restore a message and its attachments (if message status is 'Deleted') by sending + `availability` attribute set to 'Alive' in request body. If a message is already in 'Purged' state + then its attachments cannot be restored and the message itself is about to be physically deleted. + + Bulk syntax (both traditional and alternative one) is supported. + + :param request_body: The request body. + :type request_body: PatchMessageRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param message_id: Internal identifier of a message (or multiple messages in case of bulk operation) + :type message_id: List[str] + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (single message) + :rtype: GetMessageInfoResponse + """ + + Validator(PatchMessageRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().validate(message_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store/{{messageId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("messageId", message_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetMessageInfoResponse._unmap(response) + + @cast_models + def delete_message( + self, + account_id: str, + extension_id: str, + message_id: List[str], + request_body: List[str] = None, + purge: bool = None, + ): + """Deletes message(s) by the given message ID(s). The first call of + this method transfers the message to the 'Delete' status. The second call + transfers the deleted message to the 'Purged' status. If it is required to + make the message 'Purged' immediately (from the first call), then set the + query parameter purge to `true`. + + :param request_body: The request body., defaults to None + :type request_body: List[str], optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param message_id: Internal identifier of a message (or multiple messages in case of bulk operation) + :type message_id: List[str] + :param purge: If the value is `true`, then the message is purged immediately + with all the attachments, defaults to None + :type purge: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).is_array().is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().validate(message_id) + Validator(bool).is_optional().validate(purge) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store/{{messageId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("messageId", message_id) + .add_query("purge", purge) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/multi_site.py b/src/ring_central/services/multi_site.py new file mode 100644 index 00000000..3df9949d --- /dev/null +++ b/src/ring_central/services/multi_site.py @@ -0,0 +1,333 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.sites_list import SitesList +from ..models.site_update_request import SiteUpdateRequest +from ..models.site_members_list import SiteMembersList +from ..models.site_members_bulk_update import SiteMembersBulkUpdate +from ..models.site_ivr_settings_update import SiteIvrSettingsUpdate +from ..models.site_ivr_settings import SiteIvrSettings +from ..models.site_info import SiteInfo +from ..models.create_site_request import CreateSiteRequest + + +class MultiSiteService(BaseService): + + @cast_models + def list_sites(self, account_id: str) -> SitesList: + """Returns a list of sites for the specified account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Sites information + :rtype: SitesList + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SitesList._unmap(response) + + @cast_models + def create_site(self, request_body: CreateSiteRequest, account_id: str) -> SiteInfo: + """Creates a site for the specified account. + + :param request_body: The request body. + :type request_body: CreateSiteRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Added site information + :rtype: SiteInfo + """ + + Validator(CreateSiteRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SiteInfo._unmap(response) + + @cast_models + def read_site(self, account_id: str, site_id: str) -> SiteInfo: + """Returns a site by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Site information + :rtype: SiteInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SiteInfo._unmap(response) + + @cast_models + def update_site( + self, account_id: str, site_id: str, request_body: SiteUpdateRequest = None + ) -> SiteInfo: + """Updates a site specified in path. + + :param request_body: The request body., defaults to None + :type request_body: SiteUpdateRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated site information + :rtype: SiteInfo + """ + + Validator(SiteUpdateRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SiteInfo._unmap(response) + + @cast_models + def delete_site(self, account_id: str, site_id: str): + """Deletes a site specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def assign_multiple_sites( + self, account_id: str, site_id: str, request_body: SiteMembersBulkUpdate = None + ): + """Assigns multiple sites to an account specified in path. + + :param request_body: The request body., defaults to None + :type request_body: SiteMembersBulkUpdate, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(SiteMembersBulkUpdate).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_site_members(self, account_id: str, site_id: str) -> SiteMembersList: + """Returns members of a site specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Site members information + :rtype: SiteMembersList + """ + + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}/members", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SiteMembersList._unmap(response) + + @cast_models + def read_site_ivr_settings(self, account_id: str, site_id: str) -> SiteIvrSettings: + """Returns IVR settings for a site specified in path. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Site IVR settings + :rtype: SiteIvrSettings + """ + + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}/ivr", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SiteIvrSettings._unmap(response) + + @cast_models + def update_site_ivr_settings( + self, request_body: SiteIvrSettingsUpdate, account_id: str, site_id: str + ) -> SiteIvrSettings: + """Updates IVR settings for a site specified in path. + + :param request_body: The request body. + :type request_body: SiteIvrSettingsUpdate + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_id: Internal identifier of a site. *Please note* that `siteId` cannot take the 'main-site' value + :type site_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated IVR settings of a site + :rtype: SiteIvrSettings + """ + + Validator(SiteIvrSettingsUpdate).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(site_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/sites/{{siteId}}/ivr", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("siteId", site_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SiteIvrSettings._unmap(response) diff --git a/src/ring_central/services/notes.py b/src/ring_central/services/notes.py new file mode 100644 index 00000000..b353a759 --- /dev/null +++ b/src/ring_central/services/notes.py @@ -0,0 +1,294 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_note_with_body_info import TmNoteWithBodyInfo +from ..models.tm_note_list import TmNoteList +from ..models.tm_note_info import TmNoteInfo +from ..models.tm_create_note_request import TmCreateNoteRequest +from ..models.list_chat_notes_new_status import ListChatNotesNewStatus + + +class NotesService(BaseService): + + @cast_models + def list_chat_notes_new( + self, + chat_id: str, + creation_time_to: str = None, + creation_time_from: str = None, + creator_id: str = None, + status: ListChatNotesNewStatus = None, + page_token: str = None, + record_count: int = None, + ) -> TmNoteList: + """Returns the list of chat notes. + + :param chat_id: Internal identifier of a chat to fetch notes from. + :type chat_id: str + :param creation_time_to: The end datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format including timezone, e.g. 2019-03-10T18:23:45. The default value is + Now., defaults to None + :type creation_time_to: str, optional + :param creation_time_from: The start datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format including timezone, defaults to None + :type creation_time_from: str, optional + :param creator_id: Internal identifier of the user that created the note. Multiple + values are supported, defaults to None + :type creator_id: str, optional + :param status: Status of notes to be fetched; if not specified all notes are + fetched by default., defaults to None + :type status: ListChatNotesNewStatus, optional + :param page_token: Pagination token, defaults to None + :type page_token: str, optional + :param record_count: Max number of notes to be fetched by one request; the value range is 1-250., defaults to None + :type record_count: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmNoteList + """ + + Validator(str).validate(chat_id) + Validator(str).is_optional().validate(creation_time_to) + Validator(str).is_optional().validate(creation_time_from) + Validator(str).is_optional().validate(creator_id) + Validator(ListChatNotesNewStatus).is_optional().validate(status) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().max(250).validate(record_count) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/notes", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_query("creationTimeTo", creation_time_to) + .add_query("creationTimeFrom", creation_time_from) + .add_query("creatorId", creator_id) + .add_query("status", status) + .add_query("pageToken", page_token) + .add_query("recordCount", record_count) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmNoteList._unmap(response) + + @cast_models + def create_chat_note_new( + self, request_body: TmCreateNoteRequest, chat_id: str + ) -> TmNoteInfo: + """Creates a new note in the specified chat. + + :param request_body: The request body. + :type request_body: TmCreateNoteRequest + :param chat_id: Internal identifier of a chat to create a note in + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmNoteInfo + """ + + Validator(TmCreateNoteRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/notes", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmNoteInfo._unmap(response) + + @cast_models + def read_user_note_new(self, note_id: str) -> TmNoteWithBodyInfo: + """Returns the specified note(s). It is possible to fetch up to 50 notes per request. + + :param note_id: Internal identifier of a note to be fetched + :type note_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmNoteWithBodyInfo + """ + + Validator(str).validate(note_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmNoteWithBodyInfo._unmap(response) + + @cast_models + def patch_note_new( + self, request_body: TmCreateNoteRequest, note_id: str, release_lock: bool = None + ) -> TmNoteInfo: + """Edits a note. Notes can be edited by any user if posted to a chat. the user belongs to. + + :param request_body: The request body. + :type request_body: TmCreateNoteRequest + :param note_id: Internal identifier of a note to be updated + :type note_id: str + :param release_lock: If true then note lock (if any) will be released upon request, defaults to None + :type release_lock: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmNoteInfo + """ + + Validator(TmCreateNoteRequest).validate(request_body) + Validator(str).validate(note_id) + Validator(bool).is_optional().validate(release_lock) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .add_query("releaseLock", release_lock) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmNoteInfo._unmap(response) + + @cast_models + def delete_note_new(self, note_id: str): + """Deletes the specified note. + + :param note_id: Internal identifier of a note to be deleted + :type note_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(note_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def lock_note_new(self, note_id: str): + """Locks a note providing the user with the unique write access for 5 hours. + + :param note_id: Internal identifier of a note to be locked + :type note_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(note_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}/lock", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def publish_note_new(self, note_id: str) -> TmNoteInfo: + """Publishes a note making it visible to other users. + + :param note_id: Internal identifier of a note to be published + :type note_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmNoteInfo + """ + + Validator(str).validate(note_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}/publish", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return TmNoteInfo._unmap(response) + + @cast_models + def unlock_note_new(self, note_id: str): + """Unlocks a note letting other users edit this note. Once the note is locked (by another user) it cannot be unlocked during 5 hours since the lock datetime. + + :param note_id: Internal identifier of a note to be unlocked + :type note_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(note_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/notes/{{noteId}}/unlock", + self.get_default_headers(), + ) + .add_path("noteId", note_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/o_auth_2_0_open_id_connect.py b/src/ring_central/services/o_auth_2_0_open_id_connect.py new file mode 100644 index 00000000..9ff07013 --- /dev/null +++ b/src/ring_central/services/o_auth_2_0_open_id_connect.py @@ -0,0 +1,243 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.token_info import TokenInfo +from ..models.revoke_token_request import RevokeTokenRequest +from ..models.get_token_request import GetTokenRequest +from ..models.display_modes_enum import DisplayModesEnum +from ..models.code_challenge_method_enum import CodeChallengeMethodEnum +from ..models.authorize_response_type import AuthorizeResponseType +from ..models.authorize_request import AuthorizeRequest + + +class OAuth2_0OpenIdConnectService(BaseService): + + @cast_models + def get_token(self, request_body: GetTokenRequest) -> TokenInfo: + """Returns access (and potentially refresh) tokens for making API requests. + + For confidential client application types + this endpoint requires client authentication using one of the supported + methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) + + For non-confidential client application types + the client identifier must be provided via `client_id` request attribute. + + :param request_body: The request body. + :type request_body: GetTokenRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Access/Refresh Tokens + :rtype: TokenInfo + """ + + Validator(GetTokenRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/oauth/token", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body, "application/x-www-form-urlencoded") + ) + + response = self.send_request(serialized_request) + + return TokenInfo._unmap(response) + + @cast_models + def authorize( + self, + client_id: str, + response_type: AuthorizeResponseType, + redirect_uri: str = None, + state: str = None, + scope: str = None, + display: DisplayModesEnum = None, + prompt: str = None, + ui_locales: str = None, + locale_id: str = None, + code_challenge: str = None, + code_challenge_method: CodeChallengeMethodEnum = None, + nonce: str = None, + ui_options: str = None, + login_hint: str = None, + brand_id: str = None, + ): + """Performs Authentication of the End-User by sending the User Agent to the Authorization Server's + Authorization Endpoint for Authentication and Authorization, + using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) + and additional parameters and parameter values defined by + [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). + + This is the version that uses HTTP `GET` method. + + :param client_id: The registered identifier of a client application + :type client_id: str + :param response_type: Determines authorization flow type. The only supported value is `code` which corresponds to OAuth 2.0 "Authorization Code Flow" + :type response_type: AuthorizeResponseType + :param redirect_uri: This is the URI where the Authorization Server redirects the User Agent to at the end of the authorization flow. + The value of this parameter must exactly match one of the URIs registered for this client application. + This parameter is required if there are more than one redirect URIs registered for the app., defaults to None + :type redirect_uri: str, optional + :param state: An opaque value used by the client to maintain state between the request and callback. + The authorization server includes this value when redirecting the User Agent back + to the client. The parameter SHOULD be used for preventing cross-site request forgery attacks., defaults to None + :type state: str, optional + :param scope: The list of space separated application permissions (OAuth scopes), defaults to None + :type scope: str, optional + :param display: Specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User., defaults to None + :type display: DisplayModesEnum, optional + :param prompt: Space-delimited, case-sensitive list of ASCII string values that specifies whether the Authorization Server prompts the End-User for + re-authentication and consent. The defined values are: + + - `login` - RingCentral native login form, + - `sso` - Single Sign-On login form, + - `consent` - form to show the requested scope and prompt user for consent. + + Either `login` or `sso` (or both) must be specified. The default + value is `login sso`, defaults to None + :type prompt: str, optional + :param ui_locales: End-User's preferred languages and scripts for the user interface, represented as a space-separated list of + [RFC-5646](https://datatracker.ietf.org/doc/html/rfc5646) language tag values, ordered by preference. + + If this parameter is provided, its value overrides 'Accept-Language' header value and 'localeId' parameter value (if any), defaults to None + :type ui_locales: str, optional + :param locale_id: DEPRECATED: `ui_locales` parameter should be used instead, defaults to None + :type locale_id: str, optional + :param code_challenge: The code challenge value as defined by the PKCE specification - + [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636), defaults to None + :type code_challenge: str, optional + :param code_challenge_method: The code challenge method as defined by by the PKCE specification - + [RFC-7636 "Proof Key for Code Exchange by OAuth Public Clients"](https://datatracker.ietf.org/doc/html/rfc7636), defaults to None + :type code_challenge_method: CodeChallengeMethodEnum, optional + :param nonce: String value used to associate a Client session with an ID Token, and to mitigate replay attacks. The value is passed through unmodified from the Authentication Request to the ID Token., defaults to None + :type nonce: str, optional + :param ui_options: Login form user interface options (space-separated). By default, the UI options that are registered for this client application will be used, defaults to None + :type ui_options: str, optional + :param login_hint: Hint to the Authorization Server about the login identifier the End-User might use to log in., defaults to None + :type login_hint: str, optional + :param brand_id: RingCentral Brand identifier. If it is not provided in the request, + server will try to determine brand from the client application profile., defaults to None + :type brand_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(client_id) + Validator(AuthorizeResponseType).validate(response_type) + Validator(str).is_optional().validate(redirect_uri) + Validator(str).is_optional().validate(state) + Validator(str).is_optional().validate(scope) + Validator(DisplayModesEnum).is_optional().validate(display) + Validator(str).is_optional().validate(prompt) + Validator(str).is_optional().validate(ui_locales) + Validator(str).is_optional().validate(locale_id) + Validator(str).is_optional().validate(code_challenge) + Validator(CodeChallengeMethodEnum).is_optional().validate(code_challenge_method) + Validator(str).is_optional().validate(nonce) + Validator(str).is_optional().validate(ui_options) + Validator(str).is_optional().validate(login_hint) + Validator(str).is_optional().validate(brand_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/oauth/authorize", self.get_default_headers() + ) + .add_query("client_id", client_id) + .add_query("response_type", response_type) + .add_query("redirect_uri", redirect_uri) + .add_query("state", state) + .add_query("scope", scope) + .add_query("display", display) + .add_query("prompt", prompt) + .add_query("ui_locales", ui_locales) + .add_query("localeId", locale_id) + .add_query("code_challenge", code_challenge) + .add_query("code_challenge_method", code_challenge_method) + .add_query("nonce", nonce) + .add_query("ui_options", ui_options) + .add_query("login_hint", login_hint) + .add_query("brand_id", brand_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def authorize2(self, request_body: AuthorizeRequest): + """Performs Authentication of the End-User by sending the User Agent to the Authorization Server's + Authorization Endpoint for Authentication and Authorization, + using request parameters defined by OAuth 2.0 [RFC-6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1) + and additional parameters and parameter values defined by + [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint). + + This is the version that uses HTTP `POST` method. + + :param request_body: The request body. + :type request_body: AuthorizeRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(AuthorizeRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/oauth/authorize", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body, "application/x-www-form-urlencoded") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def revoke_token(self, request_body: RevokeTokenRequest = None, token: str = None): + """Revokes all active access/refresh tokens and invalidates the OAuth session basing on token provided. + The `token` parameter may be passed in query string or body and may represent access or refresh token. + + This endpoint is defined by [RFC-7009 "OAuth 2.0 Token Revocation"](https://datatracker.ietf.org/doc/html/rfc7009) + + For confidential client application types + this endpoint requires client authentication using one of the supported + methods (`client_secret_basic`, `client_secret_jwt` or `private_key_jwt`) + + :param request_body: The request body., defaults to None + :type request_body: RevokeTokenRequest, optional + :param token: Access or refresh token to be revoked (along with the entire OAuth session), defaults to None + :type token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(RevokeTokenRequest).is_optional().validate(request_body) + Validator(str).is_optional().validate(token) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/oauth/revoke", self.get_default_headers() + ) + .add_query("token", token) + .serialize() + .set_method("POST") + .set_body(request_body, "application/x-www-form-urlencoded") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/pager_messages.py b/src/ring_central/services/pager_messages.py new file mode 100644 index 00000000..c916a554 --- /dev/null +++ b/src/ring_central/services/pager_messages.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.get_internal_text_message_info_response import ( + GetInternalTextMessageInfoResponse, +) +from ..models.create_internal_text_message_request import ( + CreateInternalTextMessageRequest, +) + + +class PagerMessagesService(BaseService): + + @cast_models + def create_internal_text_message( + self, + request_body: CreateInternalTextMessageRequest, + account_id: str, + extension_id: str, + ) -> GetInternalTextMessageInfoResponse: + """Creates and sends an internal text message (company pager message). + + :param request_body: The request body. + :type request_body: CreateInternalTextMessageRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created text message + :rtype: GetInternalTextMessageInfoResponse + """ + + Validator(CreateInternalTextMessageRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/company-pager", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetInternalTextMessageInfoResponse._unmap(response) diff --git a/src/ring_central/services/paging_only_groups.py b/src/ring_central/services/paging_only_groups.py new file mode 100644 index 00000000..e33c85b7 --- /dev/null +++ b/src/ring_central/services/paging_only_groups.py @@ -0,0 +1,151 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.paging_only_group_users import PagingOnlyGroupUsers +from ..models.paging_only_group_devices import PagingOnlyGroupDevices +from ..models.edit_paging_group_request import EditPagingGroupRequest + + +class PagingOnlyGroupsService(BaseService): + + @cast_models + def list_paging_group_users( + self, + account_id: str, + paging_only_group_id: str, + page: int = None, + per_page: int = None, + ) -> PagingOnlyGroupUsers: + """Returns a list of users allowed to page this group. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param paging_only_group_id: Internal identifier of a paging group + :type paging_only_group_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Paging only group users information + :rtype: PagingOnlyGroupUsers + """ + + Validator(str).validate(account_id) + Validator(str).validate(paging_only_group_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/paging-only-groups/{{pagingOnlyGroupId}}/users", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pagingOnlyGroupId", paging_only_group_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PagingOnlyGroupUsers._unmap(response) + + @cast_models + def assign_multiple_paging_group_users_devices( + self, + account_id: str, + paging_only_group_id: str, + request_body: EditPagingGroupRequest = None, + ): + """Adds and/or removes paging group users and devices. + + :param request_body: The request body., defaults to None + :type request_body: EditPagingGroupRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param paging_only_group_id: Internal identifier of a paging group + :type paging_only_group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(EditPagingGroupRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(paging_only_group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/paging-only-groups/{{pagingOnlyGroupId}}/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pagingOnlyGroupId", paging_only_group_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_paging_group_devices( + self, + account_id: str, + paging_only_group_id: str, + page: int = None, + per_page: int = None, + ) -> PagingOnlyGroupDevices: + """Returns a list of paging devices assigned to this group. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param paging_only_group_id: Internal identifier of a paging group + :type paging_only_group_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Paging devices information + :rtype: PagingOnlyGroupDevices + """ + + Validator(str).validate(account_id) + Validator(str).validate(paging_only_group_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/paging-only-groups/{{pagingOnlyGroupId}}/devices", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("pagingOnlyGroupId", paging_only_group_id) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PagingOnlyGroupDevices._unmap(response) diff --git a/src/ring_central/services/phone_numbers.py b/src/ring_central/services/phone_numbers.py new file mode 100644 index 00000000..e69fb569 --- /dev/null +++ b/src/ring_central/services/phone_numbers.py @@ -0,0 +1,552 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.replace_phone_number_request import ReplacePhoneNumberRequest +from ..models.platform_payment_type import PlatformPaymentType +from ..models.phone_number_usage_type import PhoneNumberUsageType +from ..models.phone_number_type import PhoneNumberType +from ..models.phone_number_toll_type import PhoneNumberTollType +from ..models.phone_number_status import PhoneNumberStatus +from ..models.parse_phone_number_response import ParsePhoneNumberResponse +from ..models.parse_phone_number_request import ParsePhoneNumberRequest +from ..models.list_extension_phone_numbers_usage_type import ( + ListExtensionPhoneNumbersUsageType, +) +from ..models.list_extension_phone_numbers_status import ListExtensionPhoneNumbersStatus +from ..models.list_account_phone_numbers_usage_type import ( + ListAccountPhoneNumbersUsageType, +) +from ..models.list_account_phone_numbers_status import ListAccountPhoneNumbersStatus +from ..models.get_extension_phone_numbers_response import ( + GetExtensionPhoneNumbersResponse, +) +from ..models.get_bulk_add_task_results_v2_ok_response import ( + GetBulkAddTaskResultsV2OkResponse, + GetBulkAddTaskResultsV2OkResponseGuard, +) +from ..models.extension_status import ExtensionStatus +from ..models.delete_phone_numbers_response import DeletePhoneNumbersResponse +from ..models.delete_phone_numbers_request import DeletePhoneNumbersRequest +from ..models.company_phone_number_info import CompanyPhoneNumberInfo +from ..models.assign_phone_number_request import AssignPhoneNumberRequest +from ..models.add_phone_numbers_response import AddPhoneNumbersResponse +from ..models.add_phone_numbers_request import AddPhoneNumbersRequest +from ..models.account_phone_numbers import AccountPhoneNumbers +from ..models.account_phone_number_list import AccountPhoneNumberList +from ..models.account_phone_number_info import AccountPhoneNumberInfo + + +class PhoneNumbersService(BaseService): + + @cast_models + def list_account_phone_numbers_v2( + self, + account_id: str, + page: int = None, + per_page: int = None, + type_: List[PhoneNumberType] = None, + usage_type: List[PhoneNumberUsageType] = None, + status: PhoneNumberStatus = None, + toll_type: PhoneNumberTollType = None, + extension_status: ExtensionStatus = None, + byoc_number: bool = None, + phone_number: str = None, + ) -> AccountPhoneNumberList: + """Returns the list of phone numbers assigned to RingCentral customer + account. Both company-level and extension-level numbers are returned. + Conferencing numbers, hot desk and ELIN numbers are not returned. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param type_: Types of phone numbers to be returned, defaults to None + :type type_: List[PhoneNumberType], optional + :param usage_type: Usage type(s) of phone numbers to be returned, defaults to None + :type usage_type: List[PhoneNumberUsageType], optional + :param status: Status of the phone number(s) to be returned, defaults to None + :type status: PhoneNumberStatus, optional + :param toll_type: Toll type of phone numbers to return, defaults to None + :type toll_type: PhoneNumberTollType, optional + :param extension_status: Statuses of extensions to return phone numbers for, defaults to None + :type extension_status: ExtensionStatus, optional + :param byoc_number: The parameter reflects whether this number is BYOC or not, defaults to None + :type byoc_number: bool, optional + :param phone_number: Phone number in e.164 format to be searched for. + Parameter value can include wildcards (e.g. "+165012345**") + or be an exact number "+16501234500" - single number is searched in that case. + Make sure you escape the "+" in the URL as "%2B", defaults to None + :type phone_number: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: AccountPhoneNumberList + """ + + Validator(str).validate(account_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(PhoneNumberType).is_array().is_optional().validate(type_) + Validator(PhoneNumberUsageType).is_array().is_optional().validate(usage_type) + Validator(PhoneNumberStatus).is_optional().validate(status) + Validator(PhoneNumberTollType).is_optional().validate(toll_type) + Validator(ExtensionStatus).is_optional().validate(extension_status) + Validator(bool).is_optional().validate(byoc_number) + Validator(str).is_optional().max_length(18).validate(phone_number) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("type", type_) + .add_query("usageType", usage_type) + .add_query("status", status) + .add_query("tollType", toll_type) + .add_query("extensionStatus", extension_status) + .add_query("byocNumber", byoc_number) + .add_query("phoneNumber", phone_number) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountPhoneNumberList._unmap(response) + + @cast_models + def delete_numbers_from_inventory_v2( + self, request_body: DeletePhoneNumbersRequest, account_id: str + ) -> DeletePhoneNumbersResponse: + """This method can only delete numbers that meet one of the following requirements: + - numbers that have `"usageType": "Inventory"` + - `"Forwarded"` numbers + - `"Forwarded Company"` numbers + + In other words, this method will not delete numbers which are in use on the account - extension direct numbers, + main number, etc. It is possible to indicate phone numbers to be deleted using their IDs or exact string values + in e.164 format. However, the same lookup method (by ID or by value) must be used for all numbers within the same API call. + + :param request_body: The request body. + :type request_body: DeletePhoneNumbersRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: DeletePhoneNumbersResponse + """ + + Validator(DeletePhoneNumbersRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DeletePhoneNumbersResponse._unmap(response) + + @cast_models + def assign_phone_number_v2( + self, + request_body: AssignPhoneNumberRequest, + account_id: str, + phone_number_id: str, + ) -> AccountPhoneNumberInfo: + """Assigns or reassigns a phone number as a company or extension number. + + Assign scenarios supported: + - from Inventory to a company number; + - from Inventory to an extension number. + + Reassign scenarios supported: + - from an extension to another extension; + - from an extension to a company number; + - from a company number to an extension. + + :param request_body: The request body. + :type request_body: AssignPhoneNumberRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param phone_number_id: Internal identifier of a phone number + :type phone_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: AccountPhoneNumberInfo + """ + + Validator(AssignPhoneNumberRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).max_length(18).pattern("^[1-9]\d{1,14}$").validate( + phone_number_id + ) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers/{{phoneNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("phoneNumberId", phone_number_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AccountPhoneNumberInfo._unmap(response) + + @cast_models + def replace_phone_number_v2( + self, + request_body: ReplacePhoneNumberRequest, + account_id: str, + phone_number_id: str, + ) -> AccountPhoneNumberInfo: + """Replaces (swaps) phone numbers from Inventory with the main, company, direct or company fax numbers. + This method is used to replace temporary numbers when the porting process is complete. + + :param request_body: The request body. + :type request_body: ReplacePhoneNumberRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param phone_number_id: Internal identifier of a phone number + :type phone_number_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: AccountPhoneNumberInfo + """ + + Validator(ReplacePhoneNumberRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).max_length(18).pattern("^[1-9]\d{1,14}$").validate( + phone_number_id + ) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers/{{phoneNumberId}}/replace", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("phoneNumberId", phone_number_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AccountPhoneNumberInfo._unmap(response) + + @cast_models + def add_numbers_to_inventory_v2( + self, request_body: AddPhoneNumbersRequest, account_id: str + ) -> AddPhoneNumbersResponse: + """Adds phone numbers to the account Inventory as unassigned. Currently, we support the following values: `Inventory`, + `InventoryPartnerBusinessMobileNumber` and `PartnerBusinessMobileNumber`. Later we may support some other values like `ForwardedNumber`, etc. + + :param request_body: The request body. + :type request_body: AddPhoneNumbersRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (synchronous operation) + :rtype: AddPhoneNumbersResponse + """ + + Validator(AddPhoneNumbersRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers/bulk-add", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AddPhoneNumbersResponse._unmap(response) + + @cast_models + def get_bulk_add_task_results_v2( + self, account_id: str, task_id: str + ) -> GetBulkAddTaskResultsV2OkResponse: + """Returns the result of asynchronous operation which adds phone numbers to the account Inventory. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param task_id: Identifier of a task returned by asynchronous bulk add operation + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: GetBulkAddTaskResultsV2OkResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/phone-numbers/bulk-add/{{taskId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetBulkAddTaskResultsV2OkResponseGuard.return_one_of(response) + + @cast_models + def list_extension_phone_numbers( + self, + account_id: str, + extension_id: str, + status: ListExtensionPhoneNumbersStatus = None, + usage_type: List[ListExtensionPhoneNumbersUsageType] = None, + page: int = None, + per_page: int = None, + ) -> GetExtensionPhoneNumbersResponse: + """Returns the list of phone numbers that are used by a particular extension, + can be filtered by the phone number type. The returned list contains all + numbers which are directly mapped to the given extension. Plus the features + and company-level numbers that may be used when performing different operations + on behalf of this extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param status: Status of a phone number, defaults to None + :type status: ListExtensionPhoneNumbersStatus, optional + :param usage_type: Usage type of phone number, defaults to None + :type usage_type: List[ListExtensionPhoneNumbersUsageType], optional + :param page: Indicates a page number to retrieve. Only positive number values + are allowed. Default value is '1', defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items). If not specified, the value is '100' by default, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: User Phone Number List + :rtype: GetExtensionPhoneNumbersResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(ListExtensionPhoneNumbersStatus).is_optional().validate(status) + Validator(ListExtensionPhoneNumbersUsageType).is_array().is_optional().validate( + usage_type + ) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/phone-number", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("status", status) + .add_query("usageType", usage_type) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionPhoneNumbersResponse._unmap(response) + + @cast_models + def list_account_phone_numbers( + self, + account_id: str, + page: int = None, + per_page: int = None, + usage_type: List[ListAccountPhoneNumbersUsageType] = None, + payment_type: PlatformPaymentType = None, + status: ListAccountPhoneNumbersStatus = None, + ) -> AccountPhoneNumbers: + """Returns the list of phone numbers assigned to RingCentral customer + account. Both company-level and extension-level numbers are returned. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param usage_type: Usage type of phone number, defaults to None + :type usage_type: List[ListAccountPhoneNumbersUsageType], optional + :param payment_type: Payment Type of the number, defaults to None + :type payment_type: PlatformPaymentType, optional + :param status: Status of a phone number, defaults to None + :type status: ListAccountPhoneNumbersStatus, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: AccountPhoneNumbers + """ + + Validator(str).validate(account_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(ListAccountPhoneNumbersUsageType).is_array().is_optional().validate( + usage_type + ) + Validator(PlatformPaymentType).is_optional().validate(payment_type) + Validator(ListAccountPhoneNumbersStatus).is_optional().validate(status) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/phone-number", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("usageType", usage_type) + .add_query("paymentType", payment_type) + .add_query("status", status) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountPhoneNumbers._unmap(response) + + @cast_models + def read_account_phone_number( + self, account_id: str, phone_number_id: int + ) -> CompanyPhoneNumberInfo: + """Returns phone number(s) belonging to a certain account or extension by phoneNumberId(s). + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param phone_number_id: Internal identifier of a phone number + :type phone_number_id: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Phone number information + :rtype: CompanyPhoneNumberInfo + """ + + Validator(str).validate(account_id) + Validator(int).validate(phone_number_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/phone-number/{{phoneNumberId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("phoneNumberId", phone_number_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CompanyPhoneNumberInfo._unmap(response) + + @cast_models + def parse_phone_number( + self, + request_body: ParsePhoneNumberRequest, + home_country: str = None, + national_as_priority: bool = None, + ) -> ParsePhoneNumberResponse: + """Returns one or more parsed and/or formatted phone numbers that are passed as strings. + + :param request_body: The request body. + :type request_body: ParsePhoneNumberRequest + :param home_country: ISO 3166 alpha2 code of the home country to be used if it is impossible to determine country from the number itself. + By default, this parameter is preset to the current user's home country or brand country if the user is undefined, defaults to None + :type home_country: str, optional + :param national_as_priority: The default value is `false`. If `true`, the numbers that are + closer to the home country are given higher priority, defaults to None + :type national_as_priority: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ParsePhoneNumberResponse + """ + + Validator(ParsePhoneNumberRequest).validate(request_body) + Validator(str).is_optional().validate(home_country) + Validator(bool).is_optional().validate(national_as_priority) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/number-parser/parse", + self.get_default_headers(), + ) + .add_query("homeCountry", home_country) + .add_query("nationalAsPriority", national_as_priority) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ParsePhoneNumberResponse._unmap(response) diff --git a/src/ring_central/services/posts.py b/src/ring_central/services/posts.py new file mode 100644 index 00000000..df918f58 --- /dev/null +++ b/src/ring_central/services/posts.py @@ -0,0 +1,230 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_update_post_request import TmUpdatePostRequest +from ..models.tm_posts_list import TmPostsList +from ..models.tm_post_info import TmPostInfo +from ..models.tm_create_post_request import TmCreatePostRequest +from ..models.tm_add_file_request import TmAddFileRequest +from ..models.create_glip_file_new_request import CreateGlipFileNewRequest + + +class PostsService(BaseService): + + @cast_models + def create_glip_file_new( + self, request_body: dict, group_id: int = None, name: str = None + ) -> TmAddFileRequest: + """Posts a file. + + :param request_body: The request body. + :type request_body: dict + :param group_id: Internal identifier of a group to which the post with attachment will be added to, defaults to None + :type group_id: int, optional + :param name: Name of a file attached, defaults to None + :type name: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmAddFileRequest + """ + + Validator(dict).validate(request_body) + Validator(int).is_optional().validate(group_id) + Validator(str).is_optional().validate(name) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/files", self.get_default_headers() + ) + .add_query("groupId", group_id) + .add_query("name", name) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return TmAddFileRequest._unmap(response) + + @cast_models + def read_glip_posts_new( + self, chat_id: str, record_count: int = None, page_token: str = None + ) -> TmPostsList: + """Returns a list of posts from the specified chat. + + :param chat_id: Internal identifier of a chat + :type chat_id: str + :param record_count: Max number of posts to be fetched by one request (not more than 250), defaults to None + :type record_count: int, optional + :param page_token: Pagination token., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmPostsList + """ + + Validator(str).validate(chat_id) + Validator(int).is_optional().max(250).validate(record_count) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/posts", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_query("recordCount", record_count) + .add_query("pageToken", page_token) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmPostsList._unmap(response) + + @cast_models + def create_glip_post_new( + self, request_body: TmCreatePostRequest, chat_id: str + ) -> TmPostInfo: + """Creates a post in the chat specified in path. Any mention can be added within the `text` attribute of the request body in .md format - `![:Type](id)`, where `type` is one of (Person, Team, File, Note, Task, Event, Link, Card) and `id` is a unique identifier of the mentioned object of the specified type. Attachments of the following types (File, Card, Event, Note) can also be added to a post by passing type and ID of attachment(s) in request body. + + :param request_body: The request body. + :type request_body: TmCreatePostRequest + :param chat_id: Internal identifier of a chat. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmPostInfo + """ + + Validator(TmCreatePostRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/posts", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmPostInfo._unmap(response) + + @cast_models + def read_glip_post_new(self, chat_id: str, post_id: str) -> TmPostInfo: + """Returns information about the specified post. + + :param chat_id: Internal identifier of a chat + :type chat_id: str + :param post_id: Internal identifier of a post + :type post_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmPostInfo + """ + + Validator(str).validate(chat_id) + Validator(str).validate(post_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/posts/{{postId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_path("postId", post_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmPostInfo._unmap(response) + + @cast_models + def patch_glip_post_new( + self, request_body: TmUpdatePostRequest, chat_id: str, post_id: str + ) -> TmPostInfo: + """Updates a specific post within a chat. + + :param request_body: The request body. + :type request_body: TmUpdatePostRequest + :param chat_id: Internal identifier of a chat + :type chat_id: str + :param post_id: Internal identifier of a post to be updated + :type post_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmPostInfo + """ + + Validator(TmUpdatePostRequest).validate(request_body) + Validator(str).validate(chat_id) + Validator(str).validate(post_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/posts/{{postId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_path("postId", post_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmPostInfo._unmap(response) + + @cast_models + def delete_glip_post_new(self, chat_id: str, post_id: str): + """Deletes the specified post from the chat. + + :param chat_id: Internal identifier of a chat + :type chat_id: str + :param post_id: Internal identifier of a post to be deleted + :type post_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + Validator(str).validate(post_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/posts/{{postId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_path("postId", post_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/presence.py b/src/ring_central/services/presence.py new file mode 100644 index 00000000..4d22db62 --- /dev/null +++ b/src/ring_central/services/presence.py @@ -0,0 +1,408 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_unified_presence import UpdateUnifiedPresence +from ..models.unified_presence import UnifiedPresence +from ..models.presence_info_response import PresenceInfoResponse +from ..models.presence_info_request import PresenceInfoRequest +from ..models.get_presence_info import GetPresenceInfo +from ..models.extension_call_queue_update_presence_list import ( + ExtensionCallQueueUpdatePresenceList, +) +from ..models.extension_call_queue_presence_list import ExtensionCallQueuePresenceList +from ..models.call_queue_update_presence import CallQueueUpdatePresence +from ..models.call_queue_presence import CallQueuePresence +from ..models.account_presence_info import AccountPresenceInfo + + +class PresenceService(BaseService): + + @cast_models + def read_call_queue_presence( + self, account_id: str, group_id: str + ) -> CallQueuePresence: + """Returns presence status of the call queue members. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call queue extension + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CallQueuePresence + """ + + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}/presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CallQueuePresence._unmap(response) + + @cast_models + def update_call_queue_presence( + self, request_body: CallQueueUpdatePresence, account_id: str, group_id: str + ) -> CallQueuePresence: + """Updates presence status of the call queue members in the specified queue. + + :param request_body: The request body. + :type request_body: CallQueueUpdatePresence + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param group_id: Internal identifier of a call queue extension + :type group_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: CallQueuePresence + """ + + Validator(CallQueueUpdatePresence).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(group_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/call-queues/{{groupId}}/presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("groupId", group_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CallQueuePresence._unmap(response) + + @cast_models + def read_account_presence( + self, + account_id: str, + detailed_telephony_state: bool = None, + sip_data: bool = None, + page: int = None, + per_page: int = None, + ) -> AccountPresenceInfo: + """Returns presence status of all extensions of an account. Please note: The presenceStatus is returned as Offline (the parameters telephonyStatus, message, userStatus and dndStatus are not returned at all) for the following extension types: Department, Announcement Only, Voicemail (Take Messages Only), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param detailed_telephony_state: Whether to return detailed telephony state, defaults to None + :type detailed_telephony_state: bool, optional + :param sip_data: Whether to return SIP data, defaults to None + :type sip_data: bool, optional + :param page: Page number for account presence information, defaults to None + :type page: int, optional + :param per_page: Number for account presence information items per page, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: AccountPresenceInfo + """ + + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(detailed_telephony_state) + Validator(bool).is_optional().validate(sip_data) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("detailedTelephonyState", detailed_telephony_state) + .add_query("sipData", sip_data) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountPresenceInfo._unmap(response) + + @cast_models + def read_extension_call_queue_presence( + self, account_id: str, extension_id: str, editable_member_status: bool = None + ) -> ExtensionCallQueuePresenceList: + """Returns a list of agent's call queues with the agent presence status (per queue). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param editable_member_status: Filtering by the flag 'Allow members to change their Queue Status'. If 'true' only queues where user can change his availability status are returned, defaults to None + :type editable_member_status: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ExtensionCallQueuePresenceList + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(editable_member_status) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-queue-presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("editableMemberStatus", editable_member_status) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ExtensionCallQueuePresenceList._unmap(response) + + @cast_models + def update_extension_call_queue_presence( + self, + request_body: ExtensionCallQueueUpdatePresenceList, + account_id: str, + extension_id: str, + ) -> ExtensionCallQueuePresenceList: + """Updates availability of the agent for the call queues. + + :param request_body: The request body. + :type request_body: ExtensionCallQueueUpdatePresenceList + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ExtensionCallQueuePresenceList + """ + + Validator(ExtensionCallQueueUpdatePresenceList).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/call-queue-presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ExtensionCallQueuePresenceList._unmap(response) + + @cast_models + def read_user_presence_status( + self, + account_id: str, + extension_id: str, + detailed_telephony_state: bool = None, + sip_data: bool = None, + ) -> GetPresenceInfo: + """Returns the presence status of an extension or several extensions by their ID(s). The `presenceStatus` is returned as Offline + (the parameters `telephonyStatus`, `message`, `userStatus` and `dndStatus` are not returned at all) for the following extension types: + Department/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location. + If the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off. + [Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. For batch requests the number of extensions + in one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error + code InvalidMultipartRequest and the corresponding message Extension Presence Info multipart request is limited to 30 extensions. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param detailed_telephony_state: Specifies whether to return a detailed telephony state or not, defaults to None + :type detailed_telephony_state: bool, optional + :param sip_data: Specifies whether to return SIP data or not, defaults to None + :type sip_data: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: GetPresenceInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(detailed_telephony_state) + Validator(bool).is_optional().validate(sip_data) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("detailedTelephonyState", detailed_telephony_state) + .add_query("sipData", sip_data) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetPresenceInfo._unmap(response) + + @cast_models + def update_user_presence_status( + self, + account_id: str, + extension_id: str, + request_body: PresenceInfoRequest = None, + ) -> PresenceInfoResponse: + """Updates user-defined extension presence status, status message and DnD status by extension ID. Supported for regular User extensions only. The extension types listed do not support presence status: Department, Announcement Only, Take Messages Only (Voicemail), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension. + + :param request_body: The request body., defaults to None + :type request_body: PresenceInfoRequest, optional + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: PresenceInfoResponse + """ + + Validator(PresenceInfoRequest).is_optional().validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return PresenceInfoResponse._unmap(response) + + @cast_models + def read_unified_presence( + self, account_id: str, extension_id: str + ) -> UnifiedPresence: + """Returns the unified presence status of the requested user(s). The set of parameters returned by this method differs whether you return the requester's presence or any other user presence. + + :param account_id: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session + :type account_id: str + :param extension_id: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: UnifiedPresence + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/unified-presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return UnifiedPresence._unmap(response) + + @cast_models + def update_unified_presence( + self, request_body: UpdateUnifiedPresence, account_id: str, extension_id: str + ) -> UnifiedPresence: + """Updates the unified presence for the current user specified in path. + + :param request_body: The request body. + :type request_body: UpdateUnifiedPresence + :param account_id: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session + :type account_id: str + :param extension_id: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: UnifiedPresence + """ + + Validator(UpdateUnifiedPresence).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/unified-presence", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return UnifiedPresence._unmap(response) diff --git a/src/ring_central/services/profile.py b/src/ring_central/services/profile.py new file mode 100644 index 00000000..55a76cf4 --- /dev/null +++ b/src/ring_central/services/profile.py @@ -0,0 +1,69 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_person_info import TmPersonInfo +from ..models.tm_company_info import TmCompanyInfo + + +class ProfileService(BaseService): + + @cast_models + def read_tm_company_info_new(self, company_id: str) -> TmCompanyInfo: + """Returns information about one or more companies by their IDs. + + :param company_id: Internal identifier of an RC account/Glip company, or tilde (~) to indicate a company the current user belongs to. + :type company_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmCompanyInfo + """ + + Validator(str).validate(company_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/companies/{{companyId}}", + self.get_default_headers(), + ) + .add_path("companyId", company_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmCompanyInfo._unmap(response) + + @cast_models + def read_glip_person_new(self, person_id: str) -> TmPersonInfo: + """Returns a user or multiple users by their ID(s). Batch request is supported. + + :param person_id: Internal identifier of a user to be returned, the maximum number of IDs is 30 + :type person_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmPersonInfo + """ + + Validator(str).validate(person_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/persons/{{personId}}", + self.get_default_headers(), + ) + .add_path("personId", person_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmPersonInfo._unmap(response) diff --git a/src/ring_central/services/rcm_meetings_legacy.py b/src/ring_central/services/rcm_meetings_legacy.py new file mode 100644 index 00000000..9a7a1344 --- /dev/null +++ b/src/ring_central/services/rcm_meetings_legacy.py @@ -0,0 +1,788 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.public_meeting_invitation_response import PublicMeetingInvitationResponse +from ..models.meetings_resource import MeetingsResource +from ..models.meeting_user_settings_response import MeetingUserSettingsResponse +from ..models.meeting_service_info_resource import MeetingServiceInfoResource +from ..models.meeting_service_info_request import MeetingServiceInfoRequest +from ..models.meeting_response_resource import MeetingResponseResource +from ..models.meeting_request_resource import MeetingRequestResource +from ..models.list_meeting_recordings_response import ListMeetingRecordingsResponse +from ..models.create_user_meeting_profile_image_request import ( + CreateUserMeetingProfileImageRequest, +) +from ..models.assisted_users_resource import AssistedUsersResource +from ..models.assistants_resource import AssistantsResource +from ..models.account_locked_setting_response import AccountLockedSettingResponse + + +class RcmMeetingsLegacyService(BaseService): + + @cast_models + def get_account_locked_setting( + self, account_id: str + ) -> AccountLockedSettingResponse: + """Returns the information about user meeting settings that are locked on + account level and therefore cannot be changed by a user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Account Lock Setting + :rtype: AccountLockedSettingResponse + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/meeting/locked-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AccountLockedSettingResponse._unmap(response) + + @cast_models + def read_account_meeting( + self, account_id: str, meeting_id: str + ) -> MeetingResponseResource: + """Returns a particular account-level meeting details by ID + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Meeting Info + :rtype: MeetingResponseResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/meeting/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingResponseResource._unmap(response) + + @cast_models + def list_account_meeting_recordings( + self, + account_id: str, + meeting_id: str = None, + meeting_start_time_from: str = None, + meeting_start_time_to: str = None, + page: int = None, + per_page: int = None, + ) -> ListMeetingRecordingsResponse: + """Returns the list of meeting recordings for the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param meeting_id: Internal identifier of a meeting. Either `meetingId` or `meetingStartTime`/`meetingEndTime` can be specified, defaults to None + :type meeting_id: str, optional + :param meeting_start_time_from: Recordings of meetings started after the time specified will + be returned. Either `meetingId` or `meetingStartTime`/`meetingEndTime` can + be specified, defaults to None + :type meeting_start_time_from: str, optional + :param meeting_start_time_to: Recordings of meetings started before the time specified will + be returned. The default value is current time. Either `meetingId` or `meetingStartTime`/`meetingEndTime` + can be specified, defaults to None + :type meeting_start_time_to: str, optional + :param page: Page number, defaults to None + :type page: int, optional + :param per_page: Number of items per page. The `max` value is supported to indicate the maximum size - 300, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ListMeetingRecordingsResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_optional().validate(meeting_id) + Validator(str).is_optional().validate(meeting_start_time_from) + Validator(str).is_optional().validate(meeting_start_time_to) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().max(300).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/meeting-recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("meetingId", meeting_id) + .add_query("meetingStartTimeFrom", meeting_start_time_from) + .add_query("meetingStartTimeTo", meeting_start_time_to) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ListMeetingRecordingsResponse._unmap(response) + + @cast_models + def create_user_meeting_profile_image( + self, request_body: dict, account_id: str, extension_id: str + ): + """Uploads profile picture for user meetings + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting-configuration/profile-image", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_meetings(self, account_id: str, extension_id: str) -> MeetingsResource: + """Returns a list of user meetings scheduled for the future (meetings + of 'Instant' type are not included). + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Scheduled Meeting List + :rtype: MeetingsResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingsResource._unmap(response) + + @cast_models + def create_meeting( + self, request_body: MeetingRequestResource, account_id: str, extension_id: str + ) -> MeetingResponseResource: + """Creates a new meeting. + + :param request_body: The request body. + :type request_body: MeetingRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created Meeting + :rtype: MeetingResponseResource + """ + + Validator(MeetingRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MeetingResponseResource._unmap(response) + + @cast_models + def get_user_setting( + self, account_id: str, extension_id: str + ) -> MeetingUserSettingsResponse: + """Returns user settings for meetings. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: User Setting + :rtype: MeetingUserSettingsResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/user-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingUserSettingsResponse._unmap(response) + + @cast_models + def read_meeting( + self, account_id: str, extension_id: str, meeting_id: str + ) -> MeetingResponseResource: + """Returns a particular meeting details by ID + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Meeting Info + :rtype: MeetingResponseResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingResponseResource._unmap(response) + + @cast_models + def update_meeting( + self, + request_body: MeetingRequestResource, + account_id: str, + extension_id: str, + meeting_id: str, + ) -> MeetingResponseResource: + """Modifies a particular meeting + + :param request_body: The request body. + :type request_body: MeetingRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Updated Meeting Info + :rtype: MeetingResponseResource + """ + + Validator(MeetingRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MeetingResponseResource._unmap(response) + + @cast_models + def patch_meeting( + self, + request_body: MeetingRequestResource, + account_id: str, + extension_id: str, + meeting_id: str, + ) -> MeetingResponseResource: + """Modifies a particular meeting + + :param request_body: The request body. + :type request_body: MeetingRequestResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Updated Meeting Info + :rtype: MeetingResponseResource + """ + + Validator(MeetingRequestResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MeetingResponseResource._unmap(response) + + @cast_models + def delete_meeting( + self, + account_id: str, + extension_id: str, + meeting_id: str, + occurrence_id: str = None, + ): + """Deletes a scheduled meeting. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + :param occurrence_id: Internal identifier of a recurrent meeting occurrence, defaults to None + :type occurrence_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + Validator(str).is_optional().validate(occurrence_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .add_query("occurrenceId", occurrence_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def end_meeting(self, account_id: str, extension_id: str, meeting_id: str): + """Ends a meeting which is in progress + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}/end", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_meeting_invitation( + self, account_id: str, extension_id: str, meeting_id: str + ) -> PublicMeetingInvitationResponse: + """Returns a Meeting Invitation by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a RingCentral meeting + :type meeting_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Meeting Invitation + :rtype: PublicMeetingInvitationResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(meeting_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/{{meetingId}}/invitation", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("meetingId", meeting_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PublicMeetingInvitationResponse._unmap(response) + + @cast_models + def read_meeting_service_info( + self, account_id: str, extension_id: str + ) -> MeetingServiceInfoResource: + """Returns information on dial-in numbers for meetings, support and international dial-in numbers URIs and meeting account information. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Meeting Service Info + :rtype: MeetingServiceInfoResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/service-info", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MeetingServiceInfoResource._unmap(response) + + @cast_models + def update_meeting_service_info( + self, + request_body: MeetingServiceInfoRequest, + account_id: str, + extension_id: str, + ) -> MeetingServiceInfoResource: + """Updates personal meeting identifier. + + :param request_body: The request body. + :type request_body: MeetingServiceInfoRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Meeting Service Info + :rtype: MeetingServiceInfoResource + """ + + Validator(MeetingServiceInfoRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting/service-info", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MeetingServiceInfoResource._unmap(response) + + @cast_models + def read_assisted_users( + self, account_id: str, extension_id: str + ) -> AssistedUsersResource: + """Returns assisted users information. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Assisted User Info + :rtype: AssistedUsersResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meetings-configuration/assisted", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AssistedUsersResource._unmap(response) + + @cast_models + def read_assistants(self, account_id: str, extension_id: str) -> AssistantsResource: + """Returns assistants information. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK: Assistants Info + :rtype: AssistantsResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meetings-configuration/assistants", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AssistantsResource._unmap(response) + + @cast_models + def list_user_meeting_recordings( + self, + account_id: str, + extension_id: str, + meeting_id: str = None, + meeting_start_time_from: str = None, + meeting_start_time_to: str = None, + page: int = None, + per_page: int = None, + ) -> ListMeetingRecordingsResponse: + """Returns the list of meetings recordings for the current user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param meeting_id: Internal identifier of a meeting. Either `meetingId` or `meetingStartTime`/`meetingEndTime` can be specified, defaults to None + :type meeting_id: str, optional + :param meeting_start_time_from: Recordings of meetings started after the time specified will be returned. Either `meetingId` or `meetingStartTime`/`meetingEndTime` can be specified, defaults to None + :type meeting_start_time_from: str, optional + :param meeting_start_time_to: Recordings of meetings started before the time specified will be returned. The default value is current time. Either `meetingId` or `meetingStartTime`/`meetingEndTime` can be specified, defaults to None + :type meeting_start_time_to: str, optional + :param page: Page number, defaults to None + :type page: int, optional + :param per_page: Number of items per page. The `max` value is supported to indicate the maximum size - 300, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: ListMeetingRecordingsResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(meeting_id) + Validator(str).is_optional().validate(meeting_start_time_from) + Validator(str).is_optional().validate(meeting_start_time_to) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().max(300).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/meeting-recordings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("meetingId", meeting_id) + .add_query("meetingStartTimeFrom", meeting_start_time_from) + .add_query("meetingStartTimeTo", meeting_start_time_to) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ListMeetingRecordingsResponse._unmap(response) diff --git a/src/ring_central/services/regional_settings.py b/src/ring_central/services/regional_settings.py new file mode 100644 index 00000000..25fd8662 --- /dev/null +++ b/src/ring_central/services/regional_settings.py @@ -0,0 +1,366 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.list_locations_order_by import ListLocationsOrderBy +from ..models.language_list import LanguageList +from ..models.language_info import LanguageInfo +from ..models.get_timezone_list_response import GetTimezoneListResponse +from ..models.get_timezone_info_response import GetTimezoneInfoResponse +from ..models.get_state_list_response import GetStateListResponse +from ..models.get_state_info_response import GetStateInfoResponse +from ..models.get_location_list_response import GetLocationListResponse +from ..models.country_list_dictionary_model import CountryListDictionaryModel +from ..models.country_info_dictionary_model import CountryInfoDictionaryModel + + +class RegionalSettingsService(BaseService): + + @cast_models + def list_states( + self, + all_countries: bool = None, + country_id: int = None, + page: int = None, + per_page: int = None, + with_phone_numbers: bool = None, + ) -> GetStateListResponse: + """Returns all states of a certain country. + + :param all_countries: If set to `true` then states of all countries are returned and + `countryId` is ignored, even if specified. If the value is empty + then the parameter is ignored, defaults to None + :type all_countries: bool, optional + :param country_id: Internal identifier of a country, defaults to None + :type country_id: int, optional + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param with_phone_numbers: If `true` the list of states with phone numbers available for + buying is returned, defaults to None + :type with_phone_numbers: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: States list + :rtype: GetStateListResponse + """ + + Validator(bool).is_optional().validate(all_countries) + Validator(int).is_optional().validate(country_id) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(bool).is_optional().validate(with_phone_numbers) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/state", + self.get_default_headers(), + ) + .add_query("allCountries", all_countries) + .add_query("countryId", country_id) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("withPhoneNumbers", with_phone_numbers) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetStateListResponse._unmap(response) + + @cast_models + def read_state(self, state_id: int) -> GetStateInfoResponse: + """Returns information on a specific state by ID. + + :param state_id: Internal identifier of a state + :type state_id: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: State information + :rtype: GetStateInfoResponse + """ + + Validator(int).validate(state_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/state/{{stateId}}", + self.get_default_headers(), + ) + .add_path("stateId", state_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetStateInfoResponse._unmap(response) + + @cast_models + def list_locations( + self, + order_by: ListLocationsOrderBy = None, + page: int = None, + per_page: int = None, + state_id: str = None, + with_nxx: bool = None, + ) -> GetLocationListResponse: + """Returns all available locations for a certain state. + + :param order_by: Sorts results by the property specified, defaults to None + :type order_by: ListLocationsOrderBy, optional + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param state_id: Internal identifier of a state, defaults to None + :type state_id: str, optional + :param with_nxx: Specifies if `nxx` codes are returned, defaults to None + :type with_nxx: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Location list + :rtype: GetLocationListResponse + """ + + Validator(ListLocationsOrderBy).is_optional().validate(order_by) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(str).is_optional().validate(state_id) + Validator(bool).is_optional().validate(with_nxx) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/location", + self.get_default_headers(), + ) + .add_query("orderBy", order_by) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("stateId", state_id) + .add_query("withNxx", with_nxx) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetLocationListResponse._unmap(response) + + @cast_models + def list_languages(self) -> LanguageList: + """Returns information about the supported languages. + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Language list + :rtype: LanguageList + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/language", + self.get_default_headers(), + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return LanguageList._unmap(response) + + @cast_models + def read_language(self, language_id: int) -> LanguageInfo: + """Returns a language by ID. + + :param language_id: Internal identifier of a language + :type language_id: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Language information + :rtype: LanguageInfo + """ + + Validator(int).validate(language_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/language/{{languageId}}", + self.get_default_headers(), + ) + .add_path("languageId", language_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return LanguageInfo._unmap(response) + + @cast_models + def list_timezones( + self, page: int = None, per_page: int = None + ) -> GetTimezoneListResponse: + """Returns all available timezones. + + :param page: Indicates a page number to retrieve. Only positive number values + are allowed. Default value is '1', defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items). If not specified, the value is '100' by default, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Timezones list + :rtype: GetTimezoneListResponse + """ + + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/timezone", + self.get_default_headers(), + ) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetTimezoneListResponse._unmap(response) + + @cast_models + def read_timezone(self, timezone_id: int) -> GetTimezoneInfoResponse: + """Returns information on a certain timezone. + + :param timezone_id: Internal identifier of a timezone + :type timezone_id: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Timezone information + :rtype: GetTimezoneInfoResponse + """ + + Validator(int).validate(timezone_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/timezone/{{timezoneId}}", + self.get_default_headers(), + ) + .add_path("timezoneId", timezone_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetTimezoneInfoResponse._unmap(response) + + @cast_models + def list_countries( + self, + login_allowed: bool = None, + signup_allowed: bool = None, + number_selling: bool = None, + page: int = None, + per_page: int = None, + free_softphone_line: bool = None, + ) -> CountryListDictionaryModel: + """Returns all countries available for calling. + + :param login_allowed: Specifies whether the logging-in with the phone numbers of this country + is enabled or not, defaults to None + :type login_allowed: bool, optional + :param signup_allowed: Indicates whether a signup/billing is allowed for a country. If + not specified all countries are returned (according to other + specified filters if any), defaults to None + :type signup_allowed: bool, optional + :param number_selling: Specifies if RingCentral sells phone numbers of this country, defaults to None + :type number_selling: bool, optional + :param page: Indicates a page number to retrieve. Only positive number values + are accepted, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + :param free_softphone_line: Specifies if free phone line for softphone is available for a + country or not, defaults to None + :type free_softphone_line: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Country list + :rtype: CountryListDictionaryModel + """ + + Validator(bool).is_optional().validate(login_allowed) + Validator(bool).is_optional().validate(signup_allowed) + Validator(bool).is_optional().validate(number_selling) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + Validator(bool).is_optional().validate(free_softphone_line) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/country", + self.get_default_headers(), + ) + .add_query("loginAllowed", login_allowed) + .add_query("signupAllowed", signup_allowed) + .add_query("numberSelling", number_selling) + .add_query("page", page) + .add_query("perPage", per_page) + .add_query("freeSoftphoneLine", free_softphone_line) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CountryListDictionaryModel._unmap(response) + + @cast_models + def read_country(self, country_id: int) -> CountryInfoDictionaryModel: + """Returns information on a specific country. + + :param country_id: Internal identifier of a country + :type country_id: int + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Country information + :rtype: CountryInfoDictionaryModel + """ + + Validator(int).validate(country_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/country/{{countryId}}", + self.get_default_headers(), + ) + .add_path("countryId", country_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return CountryInfoDictionaryModel._unmap(response) diff --git a/src/ring_central/services/registrants.py b/src/ring_central/services/registrants.py new file mode 100644 index 00000000..fd8171ee --- /dev/null +++ b/src/ring_central/services/registrants.py @@ -0,0 +1,189 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.registrant_model_with_questionnaire import ( + RegistrantModelWithQuestionnaire, +) +from ..models.registrant_model_response_post_with_questionnaire import ( + RegistrantModelResponsePostWithQuestionnaire, +) +from ..models.registrant_list_resource import RegistrantListResource +from ..models.registrant_base_model_with_questionnaire import ( + RegistrantBaseModelWithQuestionnaire, +) + + +class RegistrantsService(BaseService): + + @cast_models + def rcw_reg_list_registrants( + self, + session_id: str, + per_page: int = None, + page_token: str = None, + include_questionnaire: bool = None, + ) -> RegistrantListResource: + """Returns the list of Registrants ordered by "id" ascending. + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + :param session_id: Identifier of the Session. + :type session_id: str + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + :param include_questionnaire: Indicates if registrant's "questionnaire" should be returned, defaults to None + :type include_questionnaire: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RegistrantListResource + """ + + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + Validator(bool).is_optional().validate(include_questionnaire) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}/registrants", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .add_query("includeQuestionnaire", include_questionnaire, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RegistrantListResource._unmap(response) + + @cast_models + def rcw_reg_create_registrant( + self, request_body: RegistrantBaseModelWithQuestionnaire, session_id: str + ) -> RegistrantModelResponsePostWithQuestionnaire: + """Creates a new Registrant for a given session. + + Registration MUST be open for the session for this call to succeed (otherwise it should return HTTP 403). + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + :param request_body: The request body. + :type request_body: RegistrantBaseModelWithQuestionnaire + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response, new Registrant is created + :rtype: RegistrantModelResponsePostWithQuestionnaire + """ + + Validator(RegistrantBaseModelWithQuestionnaire).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}/registrants", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return RegistrantModelResponsePostWithQuestionnaire._unmap(response) + + @cast_models + def rcw_reg_get_registrant( + self, session_id: str, registrant_id: str, include_questionnaire: bool = None + ) -> RegistrantModelWithQuestionnaire: + """Returns a Registrant by ID. + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + :param session_id: Identifier of the Session. + :type session_id: str + :param registrant_id: Identifier of the Session Registrant + :type registrant_id: str + :param include_questionnaire: Indicates if registrant's "questionnaire" should be returned, defaults to None + :type include_questionnaire: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RegistrantModelWithQuestionnaire + """ + + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(registrant_id) + Validator(bool).is_optional().validate(include_questionnaire) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}/registrants/{{registrantId}}", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .add_path("registrantId", registrant_id) + .add_query("includeQuestionnaire", include_questionnaire, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RegistrantModelWithQuestionnaire._unmap(response) + + @cast_models + def rcw_reg_delete_registrant(self, session_id: str, registrant_id: str): + """Deletes a Registrant by ID. + + Session must not be in finished state (otherwise it should return HTTP 403). + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + :param session_id: Identifier of the Session. + :type session_id: str + :param registrant_id: Identifier of the Session Registrant + :type registrant_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(session_id) + Validator(str).min_length(1).max_length(20).validate(registrant_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}/registrants/{{registrantId}}", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .add_path("registrantId", registrant_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/registration_management.py b/src/ring_central/services/registration_management.py new file mode 100644 index 00000000..99617e06 --- /dev/null +++ b/src/ring_central/services/registration_management.py @@ -0,0 +1,84 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.reg_session_model import RegSessionModel + + +class RegistrationManagementService(BaseService): + + @cast_models + def rcw_reg_get_session(self, session_id: str) -> RegSessionModel: + """Returns a registration Session information by ID. + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RegSessionModel + """ + + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RegSessionModel._unmap(response) + + @cast_models + def rcw_reg_update_session( + self, request_body: RegSessionModel, session_id: str + ) -> RegSessionModel: + """Updates a Session by ID. + + This is a PARTIAL update (PATCH), client may call it providing only attributes which are to be changed. + + A caller must be an authorized user: either a host of the webinar or an IT Admin: + a user from host's account with "WebinarSettings" permission. + + If a session record with given ID doesn't exist on Registration Service side the API should return HTTP 404. + + :param request_body: The request body. + :type request_body: RegSessionModel + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: RegSessionModel + """ + + Validator(RegSessionModel).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/registration/v1/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("sessionId", session_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return RegSessionModel._unmap(response) diff --git a/src/ring_central/services/ring_out.py b/src/ring_central/services/ring_out.py new file mode 100644 index 00000000..45568dab --- /dev/null +++ b/src/ring_central/services/ring_out.py @@ -0,0 +1,130 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.make_ring_out_request import MakeRingOutRequest +from ..models.get_ring_out_status_response import GetRingOutStatusResponse + + +class RingOutService(BaseService): + + @cast_models + def create_ring_out_call( + self, request_body: MakeRingOutRequest, account_id: str, extension_id: str + ) -> GetRingOutStatusResponse: + """Makes a 2-legged RingOut call. + + :param request_body: The request body. + :type request_body: MakeRingOutRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Ring out call information + :rtype: GetRingOutStatusResponse + """ + + Validator(MakeRingOutRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/ring-out", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetRingOutStatusResponse._unmap(response) + + @cast_models + def read_ring_out_call_status( + self, account_id: str, extension_id: str, ringout_id: str + ) -> GetRingOutStatusResponse: + """Returns a status of a 2-legged RingOut call. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param ringout_id: Internal identifier of a RingOut call + :type ringout_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: RingOut call status information + :rtype: GetRingOutStatusResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(ringout_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/ring-out/{{ringoutId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("ringoutId", ringout_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetRingOutStatusResponse._unmap(response) + + @cast_models + def delete_ring_out_call(self, account_id: str, extension_id: str, ringout_id: str): + """Cancels a 2-legged RingOut call. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param ringout_id: Internal identifier of a RingOut call + :type ringout_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(ringout_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/ring-out/{{ringoutId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("ringoutId", ringout_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/role_management.py b/src/ring_central/services/role_management.py new file mode 100644 index 00000000..c3aae146 --- /dev/null +++ b/src/ring_central/services/role_management.py @@ -0,0 +1,603 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.roles_collection_resource import RolesCollectionResource +from ..models.role_resource import RoleResource +from ..models.extension_with_roles_collection_resource import ( + ExtensionWithRolesCollectionResource, +) +from ..models.default_user_role_request import DefaultUserRoleRequest +from ..models.default_user_role import DefaultUserRole +from ..models.bulk_role_assign_resource import BulkRoleAssignResource +from ..models.assigned_roles_resource import AssignedRolesResource + + +class RoleManagementService(BaseService): + + @cast_models + def list_assigned_roles( + self, account_id: str, show_hidden: bool = None + ) -> ExtensionWithRolesCollectionResource: + """Returns a list of roles assigned to the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param show_hidden: Specifies if hidden roles are shown or not, defaults to None + :type show_hidden: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of roles assigned to an account + :rtype: ExtensionWithRolesCollectionResource + """ + + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(show_hidden) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/assigned-role", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("showHidden", show_hidden) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ExtensionWithRolesCollectionResource._unmap(response) + + @cast_models + def list_user_roles( + self, + account_id: str, + custom: bool = None, + page: int = None, + per_page: int = None, + ) -> RolesCollectionResource: + """Returns a list of account user roles. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param custom: Specifies whether to return custom roles or predefined roles only. + If not specified, all roles are returned, defaults to None + :type custom: bool, optional + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of account user roles + :rtype: RolesCollectionResource + """ + + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(custom) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("custom", custom) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RolesCollectionResource._unmap(response) + + @cast_models + def create_custom_role(self, request_body: RoleResource, account_id: str): + """Creates a custom user role. + + :param request_body: The request body. + :type request_body: RoleResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(RoleResource).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_default_role(self, account_id: str) -> DefaultUserRole: + """Returns the default user role of the current account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Default user role + :rtype: DefaultUserRole + """ + + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/default", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return DefaultUserRole._unmap(response) + + @cast_models + def update_default_user_role( + self, request_body: DefaultUserRoleRequest, account_id: str + ) -> DefaultUserRole: + """Updates the account default user role. + + :param request_body: The request body. + :type request_body: DefaultUserRoleRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated default user role + :rtype: DefaultUserRole + """ + + Validator(DefaultUserRoleRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/default", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return DefaultUserRole._unmap(response) + + @cast_models + def read_user_role( + self, role_id: str, account_id: str, advanced_permissions: bool = None + ) -> RoleResource: + """Returns a user role assigned to the current account. + + :param role_id: Internal identifier of a role + :type role_id: str + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param advanced_permissions: Specifies whether to return advanced permissions capabilities within `permissionsCapabilities` resource. + The default value is false., defaults to None + :type advanced_permissions: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User role information + :rtype: RoleResource + """ + + Validator(str).validate(role_id) + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(advanced_permissions) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/{{roleId}}", + self.get_default_headers(), + ) + .add_path("roleId", role_id) + .add_path("accountId", account_id) + .add_query("advancedPermissions", advanced_permissions) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RoleResource._unmap(response) + + @cast_models + def update_user_role( + self, request_body: RoleResource, role_id: str, account_id: str + ) -> RoleResource: + """Updates a user role assigned to the current account by ID. + + :param request_body: The request body. + :type request_body: RoleResource + :param role_id: Internal identifier of a role + :type role_id: str + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated user role information + :rtype: RoleResource + """ + + Validator(RoleResource).validate(request_body) + Validator(str).validate(role_id) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/{{roleId}}", + self.get_default_headers(), + ) + .add_path("roleId", role_id) + .add_path("accountId", account_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return RoleResource._unmap(response) + + @cast_models + def delete_custom_role( + self, role_id: str, account_id: str, validate_only: bool = None + ): + """Deletes a custom user role by ID. + + :param role_id: Internal identifier of a role + :type role_id: str + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param validate_only: Specifies that role should be validated prior to deletion, whether + it can be deleted or not, defaults to None + :type validate_only: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(role_id) + Validator(str).validate(account_id) + Validator(bool).is_optional().validate(validate_only) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/{{roleId}}", + self.get_default_headers(), + ) + .add_path("roleId", role_id) + .add_path("accountId", account_id) + .add_query("validateOnly", validate_only) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def assign_multiple_user_roles( + self, request_body: BulkRoleAssignResource, account_id: str, role_id: str + ): + """Assigns multiple user roles. + + :param request_body: The request body. + :type request_body: BulkRoleAssignResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param role_id: Internal identifier of a role + :type role_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(BulkRoleAssignResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(role_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/user-role/{{roleId}}/bulk-assign", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("roleId", role_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_of_available_for_assigning_roles( + self, account_id: str, extension_id: str, page: int = None, per_page: int = None + ) -> RolesCollectionResource: + """Returns a list of roles which can be assigned to a given extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of roles which can be assigned to a given extension + :rtype: RolesCollectionResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/assignable-roles", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RolesCollectionResource._unmap(response) + + @cast_models + def list_user_assigned_roles( + self, account_id: str, extension_id: str, show_hidden: bool = None + ) -> AssignedRolesResource: + """Returns a list of roles assigned to the current extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param show_hidden: Specifies if hidden roles are shown or not, defaults to None + :type show_hidden: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of roles assigned to an extension + :rtype: AssignedRolesResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(show_hidden) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/assigned-role", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("showHidden", show_hidden) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AssignedRolesResource._unmap(response) + + @cast_models + def update_user_assigned_roles( + self, request_body: AssignedRolesResource, account_id: str, extension_id: str + ) -> AssignedRolesResource: + """Updates a list of roles assigned to the current user. + + :param request_body: The request body. + :type request_body: AssignedRolesResource + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated list of roles assigned to an extension + :rtype: AssignedRolesResource + """ + + Validator(AssignedRolesResource).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/assigned-role", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return AssignedRolesResource._unmap(response) + + @cast_models + def assign_default_role( + self, account_id: str, extension_id: str + ) -> AssignedRolesResource: + """Assigns the default role to the currently logged-in user extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Assigned user role information + :rtype: AssignedRolesResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/assigned-role/default", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + ) + + response = self.send_request(serialized_request) + + return AssignedRolesResource._unmap(response) + + @cast_models + def list_standard_user_role( + self, + service_plan_id: str = None, + page: int = None, + per_page: int = None, + advanced_permissions: bool = None, + ) -> RolesCollectionResource: + """Returns a list of standard user roles. + + :param service_plan_id: Internal identifier of a service plan., defaults to None + :type service_plan_id: str, optional + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param advanced_permissions: Specifies whether to return advanced permissions capabilities within `permissionsCapabilities` resource. + The default value is false., defaults to None + :type advanced_permissions: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of standard user roles + :rtype: RolesCollectionResource + """ + + Validator(str).is_optional().validate(service_plan_id) + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(bool).is_optional().validate(advanced_permissions) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/user-role", + self.get_default_headers(), + ) + .add_query("servicePlanId", service_plan_id) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("advancedPermissions", advanced_permissions) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RolesCollectionResource._unmap(response) + + @cast_models + def read_standard_user_role(self, role_id: str) -> RoleResource: + """Returns a standard user role by ID. + + :param role_id: Internal identifier of a role + :type role_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Standard user role information + :rtype: RoleResource + """ + + Validator(str).validate(role_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/user-role/{{roleId}}", + self.get_default_headers(), + ) + .add_path("roleId", role_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return RoleResource._unmap(response) diff --git a/src/ring_central/services/scim.py b/src/ring_central/services/scim.py new file mode 100644 index 00000000..7722565a --- /dev/null +++ b/src/ring_central/services/scim.py @@ -0,0 +1,362 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.scim_user_search_response import ScimUserSearchResponse +from ..models.scim_user_response import ScimUserResponse +from ..models.scim_user_patch import ScimUserPatch +from ..models.scim_user import ScimUser +from ..models.scim_search_request import ScimSearchRequest +from ..models.scim_schema_search_response import ScimSchemaSearchResponse +from ..models.scim_schema_response import ScimSchemaResponse +from ..models.scim_resource_type_search_response import ScimResourceTypeSearchResponse +from ..models.scim_resource_type_response import ScimResourceTypeResponse +from ..models.scim_provider_config import ScimProviderConfig + + +class ScimService(BaseService): + + @cast_models + def scim_list_schemas2(self) -> ScimSchemaSearchResponse: + """Returns the list of schemas + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimSchemaSearchResponse + """ + + serialized_request = ( + Serializer(f"{self.base_url}/scim/v2/Schemas", self.get_default_headers()) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimSchemaSearchResponse._unmap(response) + + @cast_models + def scim_get_schema2(self, uri: str) -> ScimSchemaResponse: + """Returns SCIM schema + + :param uri: Schema URI + :type uri: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimSchemaResponse + """ + + Validator(str).validate(uri) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Schemas/{{uri}}", self.get_default_headers() + ) + .add_path("uri", uri) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimSchemaResponse._unmap(response) + + @cast_models + def scim_search_via_get2( + self, filter: str = None, start_index: int = None, count: int = None + ) -> ScimUserSearchResponse: + """Returns the list of users satisfying search criteria + + :param filter: Only support 'userName' or 'email' filter expressions for now, defaults to None + :type filter: str, optional + :param start_index: Start index (1-based), defaults to None + :type start_index: int, optional + :param count: Page size, defaults to None + :type count: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserSearchResponse + """ + + Validator(str).is_optional().validate(filter) + Validator(int).is_optional().validate(start_index) + Validator(int).is_optional().validate(count) + + serialized_request = ( + Serializer(f"{self.base_url}/scim/v2/Users", self.get_default_headers()) + .add_query("filter", filter) + .add_query("startIndex", start_index) + .add_query("count", count) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimUserSearchResponse._unmap(response) + + @cast_models + def scim_create_user2(self, request_body: ScimUser) -> ScimUserResponse: + """Creates a new user + + :param request_body: The request body. + :type request_body: ScimUser + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserResponse + """ + + Validator(ScimUser).validate(request_body) + + serialized_request = ( + Serializer(f"{self.base_url}/scim/v2/Users", self.get_default_headers()) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ScimUserResponse._unmap(response) + + @cast_models + def scim_search_via_post2( + self, request_body: ScimSearchRequest + ) -> ScimUserSearchResponse: + """Returns the list of users satisfying search criteria + + :param request_body: The request body. + :type request_body: ScimSearchRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserSearchResponse + """ + + Validator(ScimSearchRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Users/.search", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ScimUserSearchResponse._unmap(response) + + @cast_models + def scim_get_user2(self, scim_user_id: str) -> ScimUserResponse: + """Returns a user by ID + + :param scim_user_id: User ID + :type scim_user_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserResponse + """ + + Validator(str).validate(scim_user_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Users/{{scimUserId}}", + self.get_default_headers(), + ) + .add_path("scimUserId", scim_user_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimUserResponse._unmap(response) + + @cast_models + def scim_update_user2( + self, request_body: ScimUser, scim_user_id: str + ) -> ScimUserResponse: + """Updates a user + + :param request_body: The request body. + :type request_body: ScimUser + :param scim_user_id: User ID + :type scim_user_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserResponse + """ + + Validator(ScimUser).validate(request_body) + Validator(str).validate(scim_user_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Users/{{scimUserId}}", + self.get_default_headers(), + ) + .add_path("scimUserId", scim_user_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ScimUserResponse._unmap(response) + + @cast_models + def scim_patch_user2( + self, request_body: ScimUserPatch, scim_user_id: str + ) -> ScimUserResponse: + """Updates a user (partial update) + + :param request_body: The request body. + :type request_body: ScimUserPatch + :param scim_user_id: User ID + :type scim_user_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimUserResponse + """ + + Validator(ScimUserPatch).validate(request_body) + Validator(str).validate(scim_user_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Users/{{scimUserId}}", + self.get_default_headers(), + ) + .add_path("scimUserId", scim_user_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ScimUserResponse._unmap(response) + + @cast_models + def scim_delete_user2(self, scim_user_id: str): + """Deletes a user + + :param scim_user_id: User ID + :type scim_user_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(scim_user_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/Users/{{scimUserId}}", + self.get_default_headers(), + ) + .add_path("scimUserId", scim_user_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def scim_get_provider_config2(self) -> ScimProviderConfig: + """Returns SCIM service provider configuration + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimProviderConfig + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/ServiceProviderConfig", + self.get_default_headers(), + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimProviderConfig._unmap(response) + + @cast_models + def scim_list_resource_types2(self) -> ScimResourceTypeSearchResponse: + """Returns the list of supported SCIM resource types + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimResourceTypeSearchResponse + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/ResourceTypes", self.get_default_headers() + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimResourceTypeSearchResponse._unmap(response) + + @cast_models + def scim_get_resource_type2(self, type_: str) -> ScimResourceTypeResponse: + """Returns resource type by ID + + :param type_: Resource type + :type type_: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: ScimResourceTypeResponse + """ + + Validator(str).validate(type_) + + serialized_request = ( + Serializer( + f"{self.base_url}/scim/v2/ResourceTypes/{{type}}", + self.get_default_headers(), + ) + .add_path("type", type_) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ScimResourceTypeResponse._unmap(response) diff --git a/src/ring_central/services/site_administration.py b/src/ring_central/services/site_administration.py new file mode 100644 index 00000000..87ee4a9a --- /dev/null +++ b/src/ring_central/services/site_administration.py @@ -0,0 +1,93 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.business_site_collection_resource import BusinessSiteCollectionResource +from ..models.business_site_collection_request import BusinessSiteCollectionRequest + + +class SiteAdministrationService(BaseService): + + @cast_models + def list_administered_sites( + self, account_id: str, extension_id: str + ) -> BusinessSiteCollectionResource: + """Returns a list of sites administered by the current user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of user administered sites + :rtype: BusinessSiteCollectionResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/administered-sites", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return BusinessSiteCollectionResource._unmap(response) + + @cast_models + def update_user_administered_sites( + self, + request_body: BusinessSiteCollectionRequest, + account_id: str, + extension_id: str, + ) -> BusinessSiteCollectionResource: + """Updates the sites administered by the current user. + Please note: Only IDs of records are used for update. + + :param request_body: The request body. + :type request_body: BusinessSiteCollectionRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated list of user administered sites + :rtype: BusinessSiteCollectionResource + """ + + Validator(BusinessSiteCollectionRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/administered-sites", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BusinessSiteCollectionResource._unmap(response) diff --git a/src/ring_central/services/sms.py b/src/ring_central/services/sms.py new file mode 100644 index 00000000..fbb1bc10 --- /dev/null +++ b/src/ring_central/services/sms.py @@ -0,0 +1,101 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.get_sms_message_info_response import GetSmsMessageInfoResponse +from ..models.create_sms_message import CreateSmsMessage +from ..models.create_mms_message import CreateMmsMessage + + +class SmsService(BaseService): + + @cast_models + def create_sms_message( + self, request_body: CreateSmsMessage, account_id: str, extension_id: str + ) -> GetSmsMessageInfoResponse: + """Creates and sends a new text message or multiple messages. You can send SMS + messages simultaneously to different recipients up to 40 requests per minute; + this limitation is relevant for all client applications. Sending and receiving + SMS is available for Toll-Free Numbers within the USA. You can send up to + 10 attachments in a single MMS message; the size of all attachments linked + is limited up to 1500000 bytes. + + :param request_body: The request body. + :type request_body: CreateSmsMessage + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Message information + :rtype: GetSmsMessageInfoResponse + """ + + Validator(CreateSmsMessage).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/sms", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetSmsMessageInfoResponse._unmap(response) + + @cast_models + def create_mms( + self, request_body: dict, account_id: str, extension_id: str + ) -> GetSmsMessageInfoResponse: + """Creates and sends a new media message or multiple messages. Sending MMS + messages simultaneously to different recipients is limited up to 50 + requests per minute; relevant for all client applications. + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: MMS message (envelope and content) + :rtype: GetSmsMessageInfoResponse + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/mms", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return GetSmsMessageInfoResponse._unmap(response) diff --git a/src/ring_central/services/sms_templates.py b/src/ring_central/services/sms_templates.py new file mode 100644 index 00000000..fa2da970 --- /dev/null +++ b/src/ring_central/services/sms_templates.py @@ -0,0 +1,417 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.visibility_type import VisibilityType +from ..models.utils.cast_models import cast_models +from ..models.message_templates_list_response import MessageTemplatesListResponse +from ..models.message_template_response import MessageTemplateResponse +from ..models.message_template_request import MessageTemplateRequest + + +class SmsTemplatesService(BaseService): + + @cast_models + def list_company_message_templates( + self, account_id: str, site_ids: List[str] = None + ) -> MessageTemplatesListResponse: + """Returns a list of company text message templates. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param site_ids: Site ID(s) to filter company message templates, associated with particular sites + By default the value is all - templates with all sites will be returned, defaults to None + :type site_ids: List[str], optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of company text message templates + :rtype: MessageTemplatesListResponse + """ + + Validator(str).validate(account_id) + Validator(str).is_array().is_optional().validate(site_ids) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-templates", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_query("siteIds", site_ids) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageTemplatesListResponse._unmap(response) + + @cast_models + def create_company_message_template( + self, request_body: MessageTemplateRequest, account_id: str + ) -> MessageTemplateResponse: + """Creates a new text message template on a company level. Maximum number of company templates is 50. + + :param request_body: The request body. + :type request_body: MessageTemplateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created company text message template + :rtype: MessageTemplateResponse + """ + + Validator(MessageTemplateRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-templates", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def read_company_message_template( + self, account_id: str, template_id: str + ) -> MessageTemplateResponse: + """Returns a company text message template by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Company text message template + :rtype: MessageTemplateResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("templateId", template_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def update_company_message_template( + self, request_body: MessageTemplateRequest, account_id: str, template_id: str + ) -> MessageTemplateResponse: + """Updates a company text message template. + + :param request_body: The request body. + :type request_body: MessageTemplateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated company text message template + :rtype: MessageTemplateResponse + """ + + Validator(MessageTemplateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("templateId", template_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def delete_company_message_template(self, account_id: str, template_id: str): + """Deletes a company text message template. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("templateId", template_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_user_message_templates( + self, + account_id: str, + extension_id: str, + site_ids: List[str] = None, + scope: VisibilityType = None, + ) -> MessageTemplatesListResponse: + """Returns a list of user's personal text message templates. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param site_ids: Site ID(s) to filter user message templates, associated with particular sites. + By default the value is all - templates with all sites will be returned, defaults to None + :type site_ids: List[str], optional + :param scope: Message templates scope. By default the value is all - both Personal and Company templates will be returned, defaults to None + :type scope: VisibilityType, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of user text message templates + :rtype: MessageTemplatesListResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_array().is_optional().validate(site_ids) + Validator(VisibilityType).is_optional().validate(scope) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store-templates", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("siteIds", site_ids) + .add_query("scope", scope) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageTemplatesListResponse._unmap(response) + + @cast_models + def create_user_message_template( + self, request_body: MessageTemplateRequest, account_id: str, extension_id: str + ) -> MessageTemplateResponse: + """Creates a user personal text message template. + Maximum number of personal templates is 25 per user. + Max length of the `body` property is 1000 symbols (2-byte UTF-16 encoded). + + :param request_body: The request body. + :type request_body: MessageTemplateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created personal text message template + :rtype: MessageTemplateResponse + """ + + Validator(MessageTemplateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store-templates", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def read_user_message_template( + self, account_id: str, extension_id: str, template_id: str + ) -> MessageTemplateResponse: + """Returns a user personal text message template by ID. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User personal text message template + :rtype: MessageTemplateResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("templateId", template_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def update_user_message_template( + self, + request_body: MessageTemplateRequest, + account_id: str, + extension_id: str, + template_id: str, + ) -> MessageTemplateResponse: + """Updates a user personal text message template. + + :param request_body: The request body. + :type request_body: MessageTemplateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated user personal text message template + :rtype: MessageTemplateResponse + """ + + Validator(MessageTemplateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("templateId", template_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return MessageTemplateResponse._unmap(response) + + @cast_models + def delete_user_message_template( + self, account_id: str, extension_id: str, template_id: str + ): + """Deletes a user personal text message template. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param template_id: Internal identifier of a text message template + :type template_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).validate(template_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/message-store-templates/{{templateId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("templateId", template_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/status.py b/src/ring_central/services/status.py new file mode 100644 index 00000000..88abb45c --- /dev/null +++ b/src/ring_central/services/status.py @@ -0,0 +1,39 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.job_status_response import JobStatusResponse, JobStatusResponseGuard + + +class StatusService(BaseService): + + @cast_models + def cai_job_status_get(self, job_id: str) -> JobStatusResponse: + """Returns async task status by Job ID + + :param job_id: The job id to which status will be fetched + :type job_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: JobStatusResponse + """ + + Validator(str).validate(job_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/status/v1/jobs/{{jobId}}", + self.get_default_headers(), + ) + .add_path("jobId", job_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return JobStatusResponseGuard.return_one_of(response) diff --git a/src/ring_central/services/subscriptions.py b/src/ring_central/services/subscriptions.py new file mode 100644 index 00000000..336537d9 --- /dev/null +++ b/src/ring_central/services/subscriptions.py @@ -0,0 +1,233 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_subscription_request import UpdateSubscriptionRequest +from ..models.subscription_list_resource import SubscriptionListResource +from ..models.subscription_info import SubscriptionInfo +from ..models.create_subscription_request import CreateSubscriptionRequest + + +class SubscriptionsService(BaseService): + + @cast_models + def list_subscriptions(self) -> SubscriptionListResource: + """Returns a list of subscriptions created by the user for the current authorized client application. + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionListResource + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription", self.get_default_headers() + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SubscriptionListResource._unmap(response) + + @cast_models + def create_subscription( + self, request_body: CreateSubscriptionRequest + ) -> SubscriptionInfo: + """This API allows client applications to register a new subscription so that it + can be notified of events when they occur on the platform. + + A subscription relates to a set of events that a client application would like + to be informed of and the delivery channel by which they will be notified of + those events. How subscriptions are established depends upon the notification + channel the client application would like to use to receive the event + notification. For example, to create a webhook a developer would create a + subscription via a REST API call, while specifying a list of events or "event + filters" to be notified of, a transport type of `WebHook`, and the address or + URL to which they would like the webhook delivered. + + However, developers wishing to subscribe to a set of events via a WebSocket + channel, would first connect to the WebSocket gateway, and then issue their + subscription request over the WebSocket itself, as opposed to making a REST + API call to this endpoint. + + While the protocol for establishing a subscription may vary depending upon + the delivery channel for that subscription, the schemas used for representing + a subscription are the same across all delivery modes. + + Subscriptions are currently limited to 20 subscriptions per user/extension (for particular application). + + RingCentral currently supports the following delivery modes for event subscriptions: + + * [WebHook](https://developers.ringcentral.com/guide/notifications/webhooks/quick-start) - to receive event notifications as an HTTP POST to a given URL + * [WebSocket](https://developers.ringcentral.com/guide/notifications/websockets/quick-start) - to receive real-time events over a persistent WebSocket connection + * [PubNub](https://developers.ringcentral.com/guide/notifications/push-notifications/quick-start) (deprecated) - to receive a push notification sent directly to a client application + + Developers should be aware that the PubNub delivery mode is currently + deprecated and will be removed in 2024. Developers are encouraged to + [migrate their client applications to use WebSockets](https://developers.ringcentral.com/guide/notifications/websockets/migration/) + instead. + + :param request_body: The request body. + :type request_body: CreateSubscriptionRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(CreateSubscriptionRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def read_subscription(self, subscription_id: str) -> SubscriptionInfo: + """Returns the existing subscription by ID. + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def update_subscription( + self, subscription_id: str, request_body: UpdateSubscriptionRequest = None + ) -> SubscriptionInfo: + """Updates the existing subscription. The client application can extend or narrow + the list of events for which it receives notifications within the current subscription. + If event filters are specified, calling this method modifies them for the + existing subscription. The method also allows one to set an expiration time for the + subscription itself. + + If parameters other than `events` and `expiresIn` are specified in the request they will be ignored. + If the request body is empty then the specified subscription will be renewed without any + event filter modifications and using the default expiration time. + + If the request is sent with empty body, it just renews a subscription + (so it is an equivalent of the `POST /restapi/v1.0/subscription/{subscriptionId}/renew`). + + Please note that `WebSocket` subscriptions cannot be updated via HTTP interface. + + :param request_body: The request body., defaults to None + :type request_body: UpdateSubscriptionRequest, optional + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(UpdateSubscriptionRequest).is_optional().validate(request_body) + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def delete_subscription(self, subscription_id: str): + """Cancels the existing subscription. + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def renew_subscription(self, subscription_id: str) -> SubscriptionInfo: + """Renews the existing subscription (this request comes with empty body). + + Please note that `WebSocket` subscriptions are renewed automatically while websocket session is alive. + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Subscription renewed successfully + :rtype: SubscriptionInfo + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/subscription/{{subscriptionId}}/renew", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) diff --git a/src/ring_central/services/tasks.py b/src/ring_central/services/tasks.py new file mode 100644 index 00000000..9b5ab468 --- /dev/null +++ b/src/ring_central/services/tasks.py @@ -0,0 +1,255 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.tm_update_task_request import TmUpdateTaskRequest +from ..models.tm_task_list import TmTaskList +from ..models.tm_task_info import TmTaskInfo +from ..models.tm_create_task_request import TmCreateTaskRequest +from ..models.tm_complete_task_request import TmCompleteTaskRequest +from ..models.list_chat_tasks_new_status import ListChatTasksNewStatus +from ..models.assignment_status import AssignmentStatus +from ..models.assignee_status import AssigneeStatus + + +class TasksService(BaseService): + + @cast_models + def read_task_new(self, task_id: str) -> TmTaskInfo: + """Returns information about the specified task(s) by ID(s). + + :param task_id: Task identifier or comma separated list of task IDs + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmTaskInfo + """ + + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("taskId", task_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmTaskInfo._unmap(response) + + @cast_models + def patch_task_new( + self, task_id: str, request_body: TmUpdateTaskRequest = None + ) -> TmTaskList: + """Updates the specified task by ID. + + :param request_body: The request body., defaults to None + :type request_body: TmUpdateTaskRequest, optional + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmTaskList + """ + + Validator(TmUpdateTaskRequest).is_optional().validate(request_body) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("taskId", task_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmTaskList._unmap(response) + + @cast_models + def delete_task_new(self, task_id: str): + """Deletes the specified task. + + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/tasks/{{taskId}}", + self.get_default_headers(), + ) + .add_path("taskId", task_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def complete_task_new(self, request_body: TmCompleteTaskRequest, task_id: str): + """Completes a task in the specified chat. + + :param request_body: The request body. + :type request_body: TmCompleteTaskRequest + :param task_id: Internal identifier of a task + :type task_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(TmCompleteTaskRequest).validate(request_body) + Validator(str).validate(task_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/tasks/{{taskId}}/complete", + self.get_default_headers(), + ) + .add_path("taskId", task_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_chat_tasks_new( + self, + chat_id: str, + creation_time_to: str = None, + creation_time_from: str = None, + creator_id: List[str] = None, + status: List[ListChatTasksNewStatus] = None, + assignment_status: AssignmentStatus = None, + assignee_id: List[str] = None, + assignee_status: AssigneeStatus = None, + page_token: str = None, + record_count: int = None, + ) -> TmTaskList: + """Returns the list of tasks of the specified chat. + + :param chat_id: Internal identifier of a chat + :type chat_id: str + :param creation_time_to: The end datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format including timezone, e.g. 2019-03-10T18:23:45Z, defaults to None + :type creation_time_to: str, optional + :param creation_time_from: The start datetime for resulting records in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format including timezone, e.g. 2016-02-23T00:00:00, defaults to None + :type creation_time_from: str, optional + :param creator_id: Internal identifier of a task creator, defaults to None + :type creator_id: List[str], optional + :param status: Task execution status, defaults to None + :type status: List[ListChatTasksNewStatus], optional + :param assignment_status: Task assignment status, defaults to None + :type assignment_status: AssignmentStatus, optional + :param assignee_id: Internal identifier of a task assignee, defaults to None + :type assignee_id: List[str], optional + :param assignee_status: Task execution status by assignee(-s) specified in assigneeId, defaults to None + :type assignee_status: AssigneeStatus, optional + :param page_token: Token of the current page. If token is omitted then the first + page should be returned, defaults to None + :type page_token: str, optional + :param record_count: Number of records to be returned per screen, defaults to None + :type record_count: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmTaskList + """ + + Validator(str).validate(chat_id) + Validator(str).is_optional().validate(creation_time_to) + Validator(str).is_optional().validate(creation_time_from) + Validator(str).is_array().is_optional().validate(creator_id) + Validator(ListChatTasksNewStatus).is_array().is_optional().validate(status) + Validator(AssignmentStatus).is_optional().validate(assignment_status) + Validator(str).is_array().is_optional().validate(assignee_id) + Validator(AssigneeStatus).is_optional().validate(assignee_status) + Validator(str).is_optional().validate(page_token) + Validator(int).is_optional().min(1).max(250).validate(record_count) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/tasks", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .add_query("creationTimeTo", creation_time_to) + .add_query("creationTimeFrom", creation_time_from) + .add_query("creatorId", creator_id, explode=False) + .add_query("status", status, explode=False) + .add_query("assignmentStatus", assignment_status) + .add_query("assigneeId", assignee_id, explode=False) + .add_query("assigneeStatus", assignee_status) + .add_query("pageToken", page_token) + .add_query("recordCount", record_count) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmTaskList._unmap(response) + + @cast_models + def create_task_new( + self, request_body: TmCreateTaskRequest, chat_id: str + ) -> TmTaskInfo: + """Creates a task in the specified chat. + + :param request_body: The request body. + :type request_body: TmCreateTaskRequest + :param chat_id: Internal identifier of a chat + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task information + :rtype: TmTaskInfo + """ + + Validator(TmCreateTaskRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/chats/{{chatId}}/tasks", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmTaskInfo._unmap(response) diff --git a/src/ring_central/services/teams.py b/src/ring_central/services/teams.py new file mode 100644 index 00000000..cedbeb24 --- /dev/null +++ b/src/ring_central/services/teams.py @@ -0,0 +1,399 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_everyone_team_request import UpdateEveryoneTeamRequest +from ..models.tm_update_team_request import TmUpdateTeamRequest +from ..models.tm_team_list import TmTeamList +from ..models.tm_team_info import TmTeamInfo +from ..models.tm_remove_team_members_request import TmRemoveTeamMembersRequest +from ..models.tm_create_team_request import TmCreateTeamRequest +from ..models.tm_add_team_members_request import TmAddTeamMembersRequest +from ..models.everyone_team_info import EveryoneTeamInfo + + +class TeamsService(BaseService): + + @cast_models + def read_glip_everyone_new(self) -> EveryoneTeamInfo: + """Returns information about "Everyone" chat (a company level chat which includes all employees). + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: EveryoneTeamInfo + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/everyone", + self.get_default_headers(), + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return EveryoneTeamInfo._unmap(response) + + @cast_models + def patch_glip_everyone_new( + self, request_body: UpdateEveryoneTeamRequest = None + ) -> EveryoneTeamInfo: + """Updates "Everyone" chat information. + + :param request_body: The request body., defaults to None + :type request_body: UpdateEveryoneTeamRequest, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: EveryoneTeamInfo + """ + + Validator(UpdateEveryoneTeamRequest).is_optional().validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/everyone", + self.get_default_headers(), + ) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return EveryoneTeamInfo._unmap(response) + + @cast_models + def list_glip_teams_new( + self, record_count: int = None, page_token: str = None + ) -> TmTeamList: + """Returns the list of teams where the user is a member (both archived and active) combined with a list of public teams that can be joined by the current user. All records in response are sorted by creation time of a chat in ascending order. A team is a chat between 2 and more (unlimited number) participants assigned with specific name. + + :param record_count: Number of teams to be fetched by one request. The maximum value is 250, by default - 30, defaults to None + :type record_count: int, optional + :param page_token: Pagination token., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: OK + :rtype: TmTeamList + """ + + Validator(int).is_optional().max(250).validate(record_count) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams", self.get_default_headers() + ) + .add_query("recordCount", record_count) + .add_query("pageToken", page_token) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmTeamList._unmap(response) + + @cast_models + def create_glip_team_new(self, request_body: TmCreateTeamRequest) -> TmTeamInfo: + """Creates a team, and adds a list of people to the team. + + :param request_body: The request body. + :type request_body: TmCreateTeamRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Created + :rtype: TmTeamInfo + """ + + Validator(TmCreateTeamRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams", self.get_default_headers() + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmTeamInfo._unmap(response) + + @cast_models + def read_glip_team_new(self, chat_id: str) -> TmTeamInfo: + """Returns information about the specified team. + + :param chat_id: Internal identifier of a team to be returned. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmTeamInfo + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return TmTeamInfo._unmap(response) + + @cast_models + def patch_glip_team_new( + self, request_body: TmUpdateTeamRequest, chat_id: str + ) -> TmTeamInfo: + """Updates the name and description of the specified team. + + :param request_body: The request body. + :type request_body: TmUpdateTeamRequest + :param chat_id: Internal identifier of a team to be updated. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: TmTeamInfo + """ + + Validator(TmUpdateTeamRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return TmTeamInfo._unmap(response) + + @cast_models + def delete_glip_team_new(self, chat_id: str): + """Deletes the specified team. + + :param chat_id: Internal identifier of a team. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def remove_glip_team_members_new( + self, request_body: TmRemoveTeamMembersRequest, chat_id: str + ): + """Removes members from the specified team. + + :param request_body: The request body. + :type request_body: TmRemoveTeamMembersRequest + :param chat_id: Internal identifier of a team to remove members from. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(TmRemoveTeamMembersRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/remove", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def join_glip_team_new(self, chat_id: str): + """Adds the current user to the specified team. + + :param chat_id: Internal identifier of a team to be joined. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/join", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def archive_glip_team_new(self, chat_id: str): + """Changes the status of the specified team to 'Archived'. + + :param chat_id: Internal identifier of a team to be archived. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/archive", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def unarchive_glip_team_new(self, chat_id: str): + """Changes the status of the specified team to 'Active'. + + :param chat_id: Internal identifier of a team to be made active. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/unarchive", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def leave_glip_team_new(self, chat_id: str): + """Removes the current user from the specified team. + + :param chat_id: Internal identifier of a team to be left. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/leave", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def add_glip_team_members_new( + self, request_body: TmAddTeamMembersRequest, chat_id: str + ): + """Adds members to the specified team. + + :param request_body: The request body. + :type request_body: TmAddTeamMembersRequest + :param chat_id: Internal identifier of a team to add members to. + :type chat_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(TmAddTeamMembersRequest).validate(request_body) + Validator(str).validate(chat_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/team-messaging/v1/teams/{{chatId}}/add", + self.get_default_headers(), + ) + .add_path("chatId", chat_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return response diff --git a/src/ring_central/services/text.py b/src/ring_central/services/text.py new file mode 100644 index 00000000..046fcf05 --- /dev/null +++ b/src/ring_central/services/text.py @@ -0,0 +1,83 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.summary_input import SummaryInput +from ..models.punctuate_input import PunctuateInput +from ..models.cai_async_api_response import CaiAsyncApiResponse + + +class TextService(BaseService): + + @cast_models + def cai_summarize( + self, request_body: SummaryInput, webhook: str + ) -> CaiAsyncApiResponse: + """Returns Conversational Summarization to the webhook URI for segmented transcript of audios + with start, end, speakerId, text(alphanumeric and punctuations). + + :param request_body: The request body. + :type request_body: SummaryInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(SummaryInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/text/v1/async/summarize", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) + + @cast_models + def cai_punctuate( + self, request_body: PunctuateInput, webhook: str + ) -> CaiAsyncApiResponse: + """Returns Smart Punctuation to the provided webhook URI. + + :param request_body: The request body. + :type request_body: PunctuateInput + :param webhook: The webhook URI to which the job response will be returned + :type webhook: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Task accepted for processing. + :rtype: CaiAsyncApiResponse + """ + + Validator(PunctuateInput).validate(request_body) + Validator(str).validate(webhook) + + serialized_request = ( + Serializer( + f"{self.base_url}/ai/text/v1/async/punctuate", + self.get_default_headers(), + ) + .add_query("webhook", webhook) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return CaiAsyncApiResponse._unmap(response) diff --git a/src/ring_central/services/user_permissions.py b/src/ring_central/services/user_permissions.py new file mode 100644 index 00000000..e48afa69 --- /dev/null +++ b/src/ring_central/services/user_permissions.py @@ -0,0 +1,256 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.permission_resource import PermissionResource +from ..models.permission_collection_resource import PermissionCollectionResource +from ..models.permission_category_resource import PermissionCategoryResource +from ..models.permission_category_collection_resource import ( + PermissionCategoryCollectionResource, +) +from ..models.auth_profile_resource import AuthProfileResource +from ..models.auth_profile_check_resource import AuthProfileCheckResource + + +class UserPermissionsService(BaseService): + + @cast_models + def read_authorization_profile( + self, account_id: str, extension_id: str, target_extension_id: str = None + ) -> AuthProfileResource: + """Returns a list of user permissions granted at authorization procedure. + Please note: Some permissions may be restricted by extension type. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param target_extension_id: target_extension_id, defaults to None + :type target_extension_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of user permissions + :rtype: AuthProfileResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(target_extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/authz-profile", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("targetExtensionId", target_extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AuthProfileResource._unmap(response) + + @cast_models + def check_user_permission( + self, + account_id: str, + extension_id: str, + permission_id: str = None, + target_extension_id: str = None, + ) -> AuthProfileCheckResource: + """Checks if a certain user permission is activated for a particular extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param permission_id: permission_id, defaults to None + :type permission_id: str, optional + :param target_extension_id: target_extension_id, defaults to None + :type target_extension_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Authorization profile resource + :rtype: AuthProfileCheckResource + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(permission_id) + Validator(str).is_optional().validate(target_extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/authz-profile/check", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("permissionId", permission_id) + .add_query("targetExtensionId", target_extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return AuthProfileCheckResource._unmap(response) + + @cast_models + def list_permissions( + self, + page: int = None, + per_page: int = None, + assignable: bool = None, + service_plan_id: str = None, + ) -> PermissionCollectionResource: + """Returns a list of extension user permissions. + + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param assignable: Specifies whether to return only assignable permissions, defaults to None + :type assignable: bool, optional + :param service_plan_id: Internal identifier of a service plan, defaults to None + :type service_plan_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of user permissions + :rtype: PermissionCollectionResource + """ + + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(bool).is_optional().validate(assignable) + Validator(str).is_optional().validate(service_plan_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/permission", + self.get_default_headers(), + ) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("assignable", assignable) + .add_query("servicePlanId", service_plan_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PermissionCollectionResource._unmap(response) + + @cast_models + def read_permission(self, permission_id: str) -> PermissionResource: + """Returns a user permission by ID. + + :param permission_id: Internal identifier of a user permission + :type permission_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Permission information + :rtype: PermissionResource + """ + + Validator(str).validate(permission_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/permission/{{permissionId}}", + self.get_default_headers(), + ) + .add_path("permissionId", permission_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PermissionResource._unmap(response) + + @cast_models + def list_permission_categories( + self, page: int = None, per_page: int = None, service_plan_id: str = None + ) -> PermissionCategoryCollectionResource: + """Returns a list of permission categories. + + :param page: The result set page number (1-indexed) to return, defaults to None + :type page: int, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param service_plan_id: Internal identifier of a service plan, defaults to None + :type service_plan_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of permission categories + :rtype: PermissionCategoryCollectionResource + """ + + Validator(int).is_optional().min(1).max(1000).validate(page) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(service_plan_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/permission-category", + self.get_default_headers(), + ) + .add_query("page", page, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("servicePlanId", service_plan_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PermissionCategoryCollectionResource._unmap(response) + + @cast_models + def read_permission_category( + self, permission_category_id: str + ) -> PermissionCategoryResource: + """Returns a permission category by ID. + + :param permission_category_id: Internal identifier of a category + :type permission_category_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Permission category + :rtype: PermissionCategoryResource + """ + + Validator(str).validate(permission_category_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/dictionary/permission-category/{{permissionCategoryId}}", + self.get_default_headers(), + ) + .add_path("permissionCategoryId", permission_category_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return PermissionCategoryResource._unmap(response) diff --git a/src/ring_central/services/user_settings.py b/src/ring_central/services/user_settings.py new file mode 100644 index 00000000..d9965da1 --- /dev/null +++ b/src/ring_central/services/user_settings.py @@ -0,0 +1,761 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_user_profile_image_request import UpdateUserProfileImageRequest +from ..models.update_conferencing_info_request import UpdateConferencingInfoRequest +from ..models.scale_size import ScaleSize +from ..models.notification_settings_update_request import ( + NotificationSettingsUpdateRequest, +) +from ..models.notification_settings import NotificationSettings +from ..models.get_extension_info_response import GetExtensionInfoResponse +from ..models.get_extension_grant_list_response import GetExtensionGrantListResponse +from ..models.get_conferencing_info_response import GetConferencingInfoResponse +from ..models.extension_update_request import ExtensionUpdateRequest +from ..models.extension_type import ExtensionType +from ..models.extension_caller_id_info_request import ExtensionCallerIdInfoRequest +from ..models.extension_caller_id_info import ExtensionCallerIdInfo +from ..models.create_user_profile_image_request import CreateUserProfileImageRequest +from ..models.content_disposition import ContentDisposition +from ..models.bulk_delete_users_response import BulkDeleteUsersResponse +from ..models.bulk_delete_users_request import BulkDeleteUsersRequest +from ..models.batch_provision_users_response import BatchProvisionUsersResponse +from ..models.batch_provision_users_request import BatchProvisionUsersRequest + + +class UserSettingsService(BaseService): + + @cast_models + def read_scaled_profile_image( + self, + account_id: str, + extension_id: str, + scale_size: ScaleSize, + content_disposition: ContentDisposition = None, + content_disposition_filename: str = None, + ) -> bytes: + """Returns the scaled profile image of an extension. + + **This API must be called via media API entry point, e.g. https://media.ringcentral.com** + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param scale_size: Dimensions of a profile image which will be returned in response. + :type scale_size: ScaleSize + :param content_disposition: Whether the content is expected to be displayed in the browser, or downloaded and saved locally, defaults to None + :type content_disposition: ContentDisposition, optional + :param content_disposition_filename: The default filename of the file to be downloaded, defaults to None + :type content_disposition_filename: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: bytes + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(ScaleSize).validate(scale_size) + Validator(ContentDisposition).is_optional().validate(content_disposition) + Validator(str).is_optional().validate(content_disposition_filename) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/profile-image/{{scaleSize}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_path("scaleSize", scale_size) + .add_query("contentDisposition", content_disposition) + .add_query("contentDispositionFilename", content_disposition_filename) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def post_batch_provision_users( + self, request_body: BatchProvisionUsersRequest, account_id: str + ) -> BatchProvisionUsersResponse: + """Creates multiple user extensions with BYOD (customer provided) devices. + If "extensionNumber" is not specified, the next available extension number will be assigned. + + :param request_body: The request body. + :type request_body: BatchProvisionUsersRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response (partial success is possible) + :rtype: BatchProvisionUsersResponse + """ + + Validator(BatchProvisionUsersRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/batch-provisioning/users", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BatchProvisionUsersResponse._unmap(response) + + @cast_models + def bulk_delete_users_v2( + self, request_body: BulkDeleteUsersRequest, account_id: str + ) -> BulkDeleteUsersResponse: + """Deletes user extension(s) and either keeps or destroys the assets - numbers and devices. + Multiple extensions can be deleted with a single API call. + + **Please note:** This API cannot be tested on Sandbox. + + :param request_body: The request body. + :type request_body: BulkDeleteUsersRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: BulkDeleteUsersResponse + """ + + Validator(BulkDeleteUsersRequest).validate(request_body) + Validator(str).validate(account_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v2/accounts/{{accountId}}/extensions", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .serialize() + .set_method("DELETE") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return BulkDeleteUsersResponse._unmap(response) + + @cast_models + def read_extension( + self, account_id: str, extension_id: str + ) -> GetExtensionInfoResponse: + """Returns basic information about a particular extension of an account. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Extension information + :rtype: GetExtensionInfoResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionInfoResponse._unmap(response) + + @cast_models + def update_extension( + self, request_body: ExtensionUpdateRequest, account_id: str, extension_id: str + ) -> GetExtensionInfoResponse: + """Updates the user settings. + + :param request_body: The request body. + :type request_body: ExtensionUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: GetExtensionInfoResponse + """ + + Validator(ExtensionUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetExtensionInfoResponse._unmap(response) + + @cast_models + def delete_extension( + self, + account_id: str, + extension_id: str, + save_phone_lines: bool = None, + save_phone_numbers: bool = None, + ): + """Deletes extension(s) by ID(s). When an extension is being deleted + the default API behavior is as follows: + + - user's direct numbers are preserved by becoming additional company numbers; + - user's digital lines (both device & associated phone number) are deleted. + + You can change this behavior using the filters: + + - create unassigned extensions for each digital line of the deleted extension by + setting the query parameter `savePhoneLines` to `true` in request path; + - remove direct numbers of the deleted extension by setting the `savePhoneNumbers` + query parameter to `false` in request path + + **Note!** Since this API is now deprecated, please use the following API method `DELETE /restapi/v2/accounts/{accountId}/extensions` for users deletion. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param save_phone_lines: save_phone_lines, defaults to None + :type save_phone_lines: bool, optional + :param save_phone_numbers: save_phone_numbers, defaults to None + :type save_phone_numbers: bool, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(bool).is_optional().validate(save_phone_lines) + Validator(bool).is_optional().validate(save_phone_numbers) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("savePhoneLines", save_phone_lines) + .add_query("savePhoneNumbers", save_phone_numbers) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def list_extension_grants( + self, + account_id: str, + extension_id: str, + extension_type: ExtensionType = None, + page: int = None, + per_page: int = None, + ) -> GetExtensionGrantListResponse: + """Returns the list of extensions with information on grants + given to the current extension regarding them. Currently the list of grants + include: picking up a call, monitoring, calling or receiving a call on behalf + of somebody, call delegation and calling paging groups. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param extension_type: Type of extension to be returned. Multiple values are supported. + Please note that legacy 'Department' extension type corresponds + to 'Call Queue' extensions in modern RingCentral product terminology, defaults to None + :type extension_type: ExtensionType, optional + :param page: Indicates a page number to retrieve. Only positive number values + are allowed, defaults to None + :type page: int, optional + :param per_page: Indicates a page size (number of items), defaults to None + :type per_page: int, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of extension grants + :rtype: GetExtensionGrantListResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(ExtensionType).is_optional().validate(extension_type) + Validator(int).is_optional().validate(page) + Validator(int).is_optional().validate(per_page) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/grant", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("extensionType", extension_type) + .add_query("page", page) + .add_query("perPage", per_page) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetExtensionGrantListResponse._unmap(response) + + @cast_models + def read_conferencing_settings( + self, account_id: str, extension_id: str, country_id: str = None + ) -> GetConferencingInfoResponse: + """Returns information on Free Conference Calling (FCC) feature + for a given extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + :param country_id: Internal identifier of a country. If not specified, the response + is returned for the brand country, defaults to None + :type country_id: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Success + :rtype: GetConferencingInfoResponse + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + Validator(str).is_optional().validate(country_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/conferencing", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .add_query("countryId", country_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return GetConferencingInfoResponse._unmap(response) + + @cast_models + def update_conferencing_settings( + self, + request_body: UpdateConferencingInfoRequest, + account_id: str, + extension_id: str, + ) -> GetConferencingInfoResponse: + """Updates the default conferencing number for the current extension. + The number can be selected from conferencing numbers of the current extension. + Updates the setting, allowing participants join the conference before host. + + :param request_body: The request body. + :type request_body: UpdateConferencingInfoRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated user conferencing settings + :rtype: GetConferencingInfoResponse + """ + + Validator(UpdateConferencingInfoRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/conferencing", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return GetConferencingInfoResponse._unmap(response) + + @cast_models + def read_user_profile_image_legacy( + self, account_id: str, extension_id: str + ) -> bytes: + """Returns a profile image of an extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User Profile Image (Media Data) + :rtype: bytes + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/profile-image", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def create_user_profile_image( + self, request_body: dict, account_id: str, extension_id: str + ): + """Uploads the extension profile image. + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/profile-image", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("POST") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def update_user_profile_image( + self, request_body: dict, account_id: str, extension_id: str + ): + """Updates the extension profile image. + + :param request_body: The request body. + :type request_body: dict + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(dict).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/profile-image", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body, "multipart/form-data") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def delete_user_profile_image(self, account_id: str, extension_id: str): + """Deletes the user profile image. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/profile-image", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def read_extension_caller_id( + self, account_id: str, extension_id: str + ) -> ExtensionCallerIdInfo: + """Returns information on an outbound caller ID of an extension. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Caller ID information + :rtype: ExtensionCallerIdInfo + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-id", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return ExtensionCallerIdInfo._unmap(response) + + @cast_models + def update_extension_caller_id( + self, + request_body: ExtensionCallerIdInfoRequest, + account_id: str, + extension_id: str, + ) -> ExtensionCallerIdInfo: + """Updates outbound caller ID information of an extension. + + :param request_body: The request body. + :type request_body: ExtensionCallerIdInfoRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated caller ID information + :rtype: ExtensionCallerIdInfo + """ + + Validator(ExtensionCallerIdInfoRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/caller-id", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return ExtensionCallerIdInfo._unmap(response) + + @cast_models + def read_notification_settings( + self, account_id: str, extension_id: str + ) -> NotificationSettings: + """Returns notification settings for the current extension. + + Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Notification settings + :rtype: NotificationSettings + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/notification-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return NotificationSettings._unmap(response) + + @cast_models + def update_notification_settings( + self, + request_body: NotificationSettingsUpdateRequest, + account_id: str, + extension_id: str, + ) -> NotificationSettings: + """Updates notification settings for the current extension. + Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740) + + :param request_body: The request body. + :type request_body: NotificationSettingsUpdateRequest + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Updated notification settings + :rtype: NotificationSettings + """ + + Validator(NotificationSettingsUpdateRequest).validate(request_body) + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/notification-settings", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return NotificationSettings._unmap(response) diff --git a/src/ring_central/services/utils/base_service.py b/src/ring_central/services/utils/base_service.py new file mode 100644 index 00000000..c62eef0c --- /dev/null +++ b/src/ring_central/services/utils/base_service.py @@ -0,0 +1,86 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import Any, Dict +from enum import Enum + +from .default_headers import DefaultHeaders, DefaultHeadersKeys +from ...net.transport.request import Request +from ...net.request_chain.request_chain import RequestChain +from ...net.request_chain.handlers.hook_handler import HookHandler +from ...net.request_chain.handlers.http_handler import HttpHandler +from ...net.headers.access_token_auth import AccessTokenAuth +from ...net.request_chain.handlers.retry_handler import RetryHandler + + +class BaseService: + """ + A base class for services providing common functionality. + + :ivar str base_url: The base URL for the service. + :ivar dict _default_headers: A dictionary of default headers. + """ + + def __init__(self, base_url: str) -> None: + """ + Initializes a BaseService instance. + + :param str base_url: The base URL for the service. Defaults to None. + """ + self.base_url = base_url + self._default_headers = DefaultHeaders() + + self._request_handler = self._get_request_handler() + + def set_access_token(self, access_token: str): + """ + Sets the access token for the service. + """ + self._default_headers.set_header( + DefaultHeadersKeys.ACCESS_AUTH, AccessTokenAuth(access_token) + ) + + return self + + def set_base_url(self, base_url: str): + """ + Sets the base URL for the service. + + :param str base_url: The base URL to be set. + """ + self.base_url = base_url + + return self + + def send_request(self, request: Request) -> dict: + """ + Sends the given request. + + :param Request request: The request to be sent. + :return: The response data. + :rtype: dict + """ + response = self._request_handler.send(request) + return response.body + + def get_default_headers(self) -> list: + """ + Get the default headers. + + :return: A list of the default headers. + :rtype: list + """ + return self._default_headers.get_headers() + + def _get_request_handler(self) -> RequestChain: + """ + Get the request chain. + + :return: The request chain. + :rtype: RequestChain + """ + return ( + RequestChain() + .add_handler(RetryHandler()) + .add_handler(HookHandler()) + .add_handler(HttpHandler()) + ) diff --git a/src/ring_central/services/utils/default_headers.py b/src/ring_central/services/utils/default_headers.py new file mode 100644 index 00000000..992bb574 --- /dev/null +++ b/src/ring_central/services/utils/default_headers.py @@ -0,0 +1,59 @@ +# This file was generated by liblab | https://liblab.com/ + +from enum import Enum +from typing import Any, Dict + +from ...net.headers.base_header import BaseHeader + + +class DefaultHeadersKeys(Enum): + """ + An enumeration of default headers. + + :ivar str ACCESS_AUTH: The access token authentication header. + :ivar str BASIC_AUTH: The basic authentication header. + :ivar str API_KEY_AUTH: The API key authentication header. + """ + + ACCESS_AUTH = "access_token_auth" + BASIC_AUTH = "basic_auth" + API_KEY_AUTH = "api_key_auth" + + +class DefaultHeaders: + """ + A class to manage default headers. + + :ivar Dict[str, BaseHeader] _default_headers: The default headers. + """ + + def __init__(self): + self._default_headers: Dict[str, BaseHeader] = {} + + def set_header(self, key: DefaultHeadersKeys, value: BaseHeader) -> None: + """ + Set a default header. + + :param DefaultHeadersKeys key: The key of the header to set. + :param Any value: The value to set for the header. + """ + self._default_headers[key.value] = value + + def get_header(self, key: DefaultHeadersKeys) -> BaseHeader: + """ + Get a default header. + + :param DefaultHeadersKeys key: The key of the header to get. + :return: The value of the header. + :rtype: Any + """ + return self._default_headers[key.value] + + def get_headers(self) -> list: + """ + Get the default headers. + + :return: A list of the default headers. + :rtype: list + """ + return list(self._default_headers.values()) diff --git a/src/ring_central/services/utils/validator.py b/src/ring_central/services/utils/validator.py new file mode 100644 index 00000000..e886e74c --- /dev/null +++ b/src/ring_central/services/utils/validator.py @@ -0,0 +1,218 @@ +# This file was generated by liblab | https://liblab.com/ + +import re +import operator +from typing import Union, Any, Type, Pattern, get_args +from ...models.base import OneOfBaseModel + + +class Validator: + """ + A simple validator class for validating the type and pattern of a value. + + :ivar Type[Any] _type: The expected type for the value. + :ivar bool _is_optional: Flag indicating whether the value is optional. + :ivar bool _is_array: Flag indicating whether the value is an array. + :ivar Pattern[str] _pattern: The regular expression pattern for validating the value. + :ivar int _min: The minimum value for validating the value. + :ivar int _max: The maximum value for validating the value. + """ + + def __init__(self, _type: Type[Any] = None): + """ + Initializes a Validator instance. + + :param Type[Any] _type: The expected type for the value. Defaults to None. + """ + self._type: Type[Any] = _type + self._is_optional: bool = False + self._is_array: bool = False + self._pattern: Pattern[str] = None + self._min_length: int = None + self._max_length: int = None + self._min: int = None + self._min_exclusive: bool = False + self._max: int = None + self._max_exclusive: bool = False + + def is_array(self) -> "Validator": + """ + Marks the value as an array. + + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._is_array = True + return self + + def is_optional(self) -> "Validator": + """ + Marks the value as optional. + + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._is_optional = True + return self + + def pattern(self, pattern: str) -> "Validator": + """ + Specifies a regular expression pattern for validating the value. + + :param str pattern: The regular expression pattern. + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._pattern = re.compile(pattern) + return self + + def min(self, min: int, exclusive=False) -> "Validator": + """ + Specifies a minimum value for validating the value. + + :param int min: The minimum value to be validated against. + :param bool exclusive: (optional) If set to True, the minimum value is not inclusive. + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._min = min + self._min_exclusive = exclusive + return self + + def max(self, max: int, exclusive=False) -> "Validator": + """ + Specifies a maximum value for validating the value. + + :param int max: The maximum value. + :param bool exclusive: (optional) If set to True, the maximum value is not inclusive. + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._max = max + self._max_exclusive = exclusive + return self + + def min_length(self, min_length: int) -> "Validator": + """ + Specifies a minimum length for validating the value. + + :param int min_length: The minimum length to be validated against. + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._min_length = min_length + return self + + def max_length(self, max_length: int) -> "Validator": + """ + Specifies a maximum length for validating the value. + + :param int max_length: The maximum length. + :return: The Validator instance for method chaining. + :rtype: Validator + """ + self._max_length = max_length + return self + + def validate(self, value: Any) -> None: + """ + Validates the provided value based on the specified criteria. + + :param Any value: The input that needs to be checked + :raises ValueError: If the value does not meet the specified validation criteria. + """ + if not self._type: + raise TypeError("Invalid type: No type specified") + if self._is_optional and value is None: + return + + self._validate_type(value) + self._validate_rules(value) + + def _validate_type(self, value: Any) -> None: + """ + Validates the type of the value. + + :param Any value: The input that needs to be checked + :raises ValueError: If the value does not meet the expected type. + """ + if self._is_one_of_type(self._type): + self._validate_one_of_type(value) + elif self._is_array: + self._validate_array_type(value) + elif not self._match_type(value): + raise TypeError(f"Invalid type: Expected {self._type}, got {type(value)}") + + def _validate_one_of_type(self, value: Any) -> None: + """ + Validates oneOf model type. + + :param Any value: The input that needs to be checked + :raises ValueError: If the value does not match the oneOf rules. + """ + class_list = {arg.__name__: arg for arg in get_args(self._type) if arg.__name__} + OneOfBaseModel.class_list = class_list + OneOfBaseModel.return_one_of(value) + + def _validate_array_type(self, value: Any) -> None: + """ + Validates the type of an array value. + + :param Any value: The input that needs to be checked + :raises ValueError: If the array items do not match the expected type. + """ + if any(self._match_type(v) is False for v in value): + raise TypeError(f"Invalid type: Expected {self._type}, got {type(value)}") + + def _match_type(self, value: Any) -> bool: + """ + Checks if the value matches the expected type. + + :param Any value: The input that needs to be checked + :raises ValueError: If the value does not match the expected type. + """ + is_numeric = self._type is float and isinstance(value, int) + if isinstance(value, self._type) or is_numeric: + return True + return False + + def _validate_rules(self, value: Any) -> None: + """ + Validate the rules specified for the value. + + :param Any value: The input that needs to be validated + :raises ValueError: If the value does not meet the specified validation criteria. + """ + min_operator = operator.lt if self._min_exclusive else operator.le + max_operator = operator.gt if self._max_exclusive else operator.ge + + if self._min is not None and not min_operator(self._min, value): + raise ValueError( + f"Invalid value: {value} is {'less than or equal to' if self._min_exclusive else 'less than'} {self._min}" + ) + if self._max is not None and not max_operator(self._max, value): + raise ValueError( + f"Invalid value: {value} is {'greater than or equal to' if self._max_exclusive else 'greater than'} {self._max}" + ) + if self._min_length is not None and len(value) < self._min_length: + raise ValueError( + f"Invalid value: the length of {value} is less than {self._min_length}" + ) + if self._max_length is not None and len(value) > self._max_length: + raise ValueError( + f"Invalid value: the length of {value} is greater than {self._max_length}" + ) + if self._pattern and not self._pattern.match(str(value)): + raise ValueError( + f"Invalid value: {value} does not match pattern {self._pattern}" + ) + + def _is_one_of_type(self, cls_type): + """ + Checks if the provided type is a Union type. + + :param Type[Any] cls_type: The type to be checked. + :return: True if the type is a Union type, False otherwise. + :rtype: bool + """ + return hasattr(cls_type, "__origin__") and cls_type.__origin__ is Union diff --git a/src/ring_central/services/video_configuration.py b/src/ring_central/services/video_configuration.py new file mode 100644 index 00000000..fafe537f --- /dev/null +++ b/src/ring_central/services/video_configuration.py @@ -0,0 +1,47 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.user_video_configuration import UserVideoConfiguration + + +class VideoConfigurationService(BaseService): + + @cast_models + def read_user_video_configuration( + self, account_id: str, extension_id: str + ) -> UserVideoConfiguration: + """Returns information about video configuration settings of the current user. + + :param account_id: Internal identifier of the RingCentral account + (can be set to "~" to indicate that the account associated with current authorization session should be used) + :type account_id: str + :param extension_id: Internal identifier of the RingCentral extension/user + (can be set to "~" to indicate that the extension associated with current authorization session should be used) + :type extension_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: User Video Configuration + :rtype: UserVideoConfiguration + """ + + Validator(str).validate(account_id) + Validator(str).validate(extension_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/restapi/v1.0/account/{{accountId}}/extension/{{extensionId}}/video-configuration", + self.get_default_headers(), + ) + .add_path("accountId", account_id) + .add_path("extensionId", extension_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return UserVideoConfiguration._unmap(response) diff --git a/src/ring_central/services/webinar_subscriptions.py b/src/ring_central/services/webinar_subscriptions.py new file mode 100644 index 00000000..fe0acda2 --- /dev/null +++ b/src/ring_central/services/webinar_subscriptions.py @@ -0,0 +1,196 @@ +# This file was generated by liblab | https://liblab.com/ + +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.utils.cast_models import cast_models +from ..models.update_subscription_request import UpdateSubscriptionRequest +from ..models.subscription_list_resource import SubscriptionListResource +from ..models.subscription_info import SubscriptionInfo +from ..models.create_webhook_subscription_request import ( + CreateWebhookSubscriptionRequest, +) + + +class WebinarSubscriptionsService(BaseService): + + @cast_models + def rcw_n11s_list_subscriptions(self) -> SubscriptionListResource: + """Returns a list of webinar subscriptions created by the user for the current authorized client application. + + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: List of Subscriptions + :rtype: SubscriptionListResource + """ + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions", + self.get_default_headers(), + ) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SubscriptionListResource._unmap(response) + + @cast_models + def rcw_n11s_create_subscription( + self, request_body: CreateWebhookSubscriptionRequest + ) -> SubscriptionInfo: + """Creates a new webinar subscription for the current authorized user / client application. + + :param request_body: The request body. + :type request_body: CreateWebhookSubscriptionRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(CreateWebhookSubscriptionRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def rcw_n11s_get_subscription(self, subscription_id: str) -> SubscriptionInfo: + """Returns the webinar subscription by ID + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def rcw_n11s_update_subscription( + self, request_body: UpdateSubscriptionRequest, subscription_id: str + ) -> SubscriptionInfo: + """Updates the existing subscription. The client application can extend/narrow + the list of events for which it receives notifications within this subscription. + If event filters are specified, calling this method modifies them for the + existing subscription. The method also allows setting the subscription expiration time. + If other than `events` and `expiresIn` parameters are passed in the request they will be ignored. + If the request body is empty then the specified subscription will be just renewed without any + event filter modifications and with default expiration time. + + :param request_body: The request body. + :type request_body: UpdateSubscriptionRequest + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: SubscriptionInfo + """ + + Validator(UpdateSubscriptionRequest).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("PUT") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) + + @cast_models + def rcw_n11s_delete_subscription(self, subscription_id: str): + """Cancels the existing webinar subscription. + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions/{{subscriptionId}}", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def rcw_n11s_renew_subscription(self, subscription_id: str) -> SubscriptionInfo: + """Renews the existing webinar subscription. + + :param subscription_id: Internal identifier of a subscription + :type subscription_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Subscription renewed successfully + :rtype: SubscriptionInfo + """ + + Validator(str).min_length(1).max_length(20).validate(subscription_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/notifications/v1/subscriptions/{{subscriptionId}}/renew", + self.get_default_headers(), + ) + .add_path("subscriptionId", subscription_id) + .serialize() + .set_method("POST") + ) + + response = self.send_request(serialized_request) + + return SubscriptionInfo._unmap(response) diff --git a/src/ring_central/services/webinars_and_sessions.py b/src/ring_central/services/webinars_and_sessions.py new file mode 100644 index 00000000..825893d9 --- /dev/null +++ b/src/ring_central/services/webinars_and_sessions.py @@ -0,0 +1,453 @@ +# This file was generated by liblab | https://liblab.com/ + +from typing import List +from .utils.validator import Validator +from .utils.base_service import BaseService +from ..net.transport.serializer import Serializer +from ..models.webinar_list_resource import WebinarListResource +from ..models.webinar_creation_request import WebinarCreationRequest +from ..models.webinar_base_model import WebinarBaseModel +from ..models.wcs_webinar_resource import WcsWebinarResource +from ..models.wcs_session_with_locale_code_model import WcsSessionWithLocaleCodeModel +from ..models.wcs_session_status_model import WcsSessionStatusModel +from ..models.wcs_session_resource import WcsSessionResource +from ..models.wcs_session_global_list_resource import WcsSessionGlobalListResource +from ..models.utils.cast_models import cast_models + + +class WebinarsAndSessionsService(BaseService): + + @cast_models + def rcw_config_list_webinars( + self, creation_time_from: str, per_page: int = None, page_token: str = None + ) -> WebinarListResource: + """Returns the list of Webinars hosted by a current authorized user sorted by 'scheduledStartTime' or 'creationTime' in the ascending order. + + :param creation_time_from: The beginning of the time window by 'creationTime' . + :type creation_time_from: str + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WebinarListResource + """ + + Validator(str).validate(creation_time_from) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars", + self.get_default_headers(), + ) + .add_query("creationTimeFrom", creation_time_from, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WebinarListResource._unmap(response) + + @cast_models + def rcw_config_create_webinar( + self, request_body: WebinarCreationRequest + ) -> WcsWebinarResource: + """Creates a new webinar. + + If "host" parameter is NOT passed then the current authorized user will become a Host. + If "host" parameter is passed then the caller must be a company administrator and have "WebinarSettings" permission. + "host.linkedUser.accountId" must be the same as authorized user's account ID. + + The webinar settings which are not mandated at account level or are unlocked can be + specified. All other settings are defaulted according to account policy. + + :param request_body: The request body. + :type request_body: WebinarCreationRequest + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response, new Webinar is created + :rtype: WcsWebinarResource + """ + + Validator(WebinarCreationRequest).validate(request_body) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars", + self.get_default_headers(), + ) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WcsWebinarResource._unmap(response) + + @cast_models + def rcw_config_get_webinar(self, webinar_id: str) -> WcsWebinarResource: + """Returns a Webinar information by ID. + Some webinar settings are returned basing on webinar-level overrides, other - from default settings defined at account level. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsWebinarResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WcsWebinarResource._unmap(response) + + @cast_models + def rcw_config_update_webinar( + self, request_body: WebinarBaseModel, webinar_id: str + ) -> WcsWebinarResource: + """Updates a Webinar. The payload may contain just changed fields of a Webinar resource (it is a partial update): + - host cannot be changed, and host user information cannot be updated; + - only the settings which are not mandated at account level or are unlocked can be + changed; + - in order to reset a webinar password it should be passed as an empty string; + - "registrationStatus" cannot be changed. + + :param request_body: The request body. + :type request_body: WebinarBaseModel + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsWebinarResource + """ + + Validator(WebinarBaseModel).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(webinar_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WcsWebinarResource._unmap(response) + + @cast_models + def rcw_config_delete_webinar(self, webinar_id: str): + """Deletes a Webinar by ID. All child objects (Sessions, Invitees) will be also deleted. + It is disallowed to delete a Webinar which has at least one Session in 'Active' or 'Finished' state. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def rcw_config_create_session( + self, request_body: WcsSessionWithLocaleCodeModel, webinar_id: str + ) -> WcsSessionResource: + """Creates a new Session for a given Webinar + + :param request_body: The request body. + :type request_body: WcsSessionWithLocaleCodeModel + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response, new Session is created + :rtype: WcsSessionResource + """ + + Validator(WcsSessionWithLocaleCodeModel).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(webinar_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .serialize() + .set_method("POST") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WcsSessionResource._unmap(response) + + @cast_models + def rcw_config_get_session( + self, webinar_id: str, session_id: str + ) -> WcsSessionResource: + """Returns a Webinar Session by ID. + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsSessionResource + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WcsSessionResource._unmap(response) + + @cast_models + def rcw_config_update_session( + self, + request_body: WcsSessionWithLocaleCodeModel, + webinar_id: str, + session_id: str, + ) -> WcsSessionResource: + """Updates a Webinar Session. The payload may contain certain attributes from the Session resource + (it is a partial update). Changing the 'status' field usually invokes certain workflow actions. + Updating a Session in 'Active' or 'Finished' status is prohibited. + Some status transitions (for example, to 'Active" or 'Finished') may be prohibited. + + :param request_body: The request body. + :type request_body: WcsSessionWithLocaleCodeModel + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsSessionResource + """ + + Validator(WcsSessionWithLocaleCodeModel).validate(request_body) + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("PATCH") + .set_body(request_body) + ) + + response = self.send_request(serialized_request) + + return WcsSessionResource._unmap(response) + + @cast_models + def rcw_config_delete_session(self, webinar_id: str, session_id: str): + """Deletes a Webinar Session. All child objects (Invitees) will be also deleted. + It is disallowed to delete a Session which is in 'Active' or 'Finished' state + + :param webinar_id: Identifier of the Webinar. + :type webinar_id: str + :param session_id: Identifier of the Session. + :type session_id: str + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + """ + + Validator(str).min_length(1).max_length(20).validate(webinar_id) + Validator(str).min_length(1).max_length(20).validate(session_id) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/webinars/{{webinarId}}/sessions/{{sessionId}}", + self.get_default_headers(), + ) + .add_path("webinarId", webinar_id) + .add_path("sessionId", session_id) + .serialize() + .set_method("DELETE") + ) + + response = self.send_request(serialized_request) + + return response + + @cast_models + def rcw_config_list_all_company_sessions( + self, + end_time_from: str, + status: WcsSessionStatusModel = None, + host_user_id: List[str] = None, + per_page: int = None, + page_token: str = None, + ) -> WcsSessionGlobalListResource: + """Returns the list of Webinar Sessions hosted by all company users or particular user(s) sorted by + 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending ordered. + The user must have "WebinarSettings" permission granted otherwise the API returns HTTP 403. + + :param end_time_from: The beginning of the time window by 'endTime' (it is calculated as scheduledStartTime+scheduledDuration) + :type end_time_from: str + :param status: Filter to return only webinar sessions in certain status. Multiple values are supported., defaults to None + :type status: WcsSessionStatusModel, optional + :param host_user_id: Identifier of the user who hosts a webinar (if omitted, webinars hosted by all company users will be returned), defaults to None + :type host_user_id: List[str], optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsSessionGlobalListResource + """ + + Validator(str).validate(end_time_from) + Validator(WcsSessionStatusModel).is_optional().validate(status) + Validator(str).is_array().is_optional().validate(host_user_id) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/company/sessions", + self.get_default_headers(), + ) + .add_query("status", status) + .add_query("endTimeFrom", end_time_from, explode=False) + .add_query("hostUserId", host_user_id, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WcsSessionGlobalListResource._unmap(response) + + @cast_models + def rcw_config_list_all_sessions( + self, + end_time_from: str, + name_fragment: str = None, + status: WcsSessionStatusModel = None, + per_page: int = None, + page_token: str = None, + ) -> WcsSessionGlobalListResource: + """Returns the list of Webinar Sessions hosted by a current authorized user sorted by + 'scheduledStartTime' or 'creationTime' (if 'scheduledStartTime' is not set) in the ascending order + + :param end_time_from: The beginning of the time window by 'endTime' (it is calculated as scheduledStartTime+scheduledDuration) + :type end_time_from: str + :param name_fragment: Filter to return only webinar sessions containing particular substring within their names, defaults to None + :type name_fragment: str, optional + :param status: Filter to return only webinar sessions in certain status. Multiple values are supported., defaults to None + :type status: WcsSessionStatusModel, optional + :param per_page: The number of items per page. If provided value in the request + is greater than a maximum, the maximum value is applied, defaults to None + :type per_page: int, optional + :param page_token: The token indicating the particular page of the result set to be retrieved. + If omitted the first page will be returned., defaults to None + :type page_token: str, optional + ... + :raises RequestError: Raised when a request fails, with optional HTTP status code and details. + ... + :return: Successful response + :rtype: WcsSessionGlobalListResource + """ + + Validator(str).validate(end_time_from) + Validator(str).is_optional().validate(name_fragment) + Validator(WcsSessionStatusModel).is_optional().validate(status) + Validator(int).is_optional().min(1).max(1000).validate(per_page) + Validator(str).is_optional().validate(page_token) + + serialized_request = ( + Serializer( + f"{self.base_url}/webinar/configuration/v1/sessions", + self.get_default_headers(), + ) + .add_query("nameFragment", name_fragment) + .add_query("status", status) + .add_query("endTimeFrom", end_time_from, explode=False) + .add_query("perPage", per_page, explode=False) + .add_query("pageToken", page_token, explode=False) + .serialize() + .set_method("GET") + ) + + response = self.send_request(serialized_request) + + return WcsSessionGlobalListResource._unmap(response)